From 5d15164521a9343a5ff3860c97f36eae8386d674 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 24 十二月 2025 15:36:53 +0800
Subject: [PATCH] 调试
---
.vs/前端2/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm | 0
.vs/前端2/CopilotIndices/17.14.878.3237/CodeChunks.db-shm | 0
pages/index.vue | 2
unpackage/dist/dev/app-plus/app-view.js | 746 ++++++++++---------
.vs/slnx.sqlite | 0
pages/moldRecord.vue | 117 +-
components/mold.vue | 466 ++++++++++++
store/index.js | 8
unpackage/dist/dev/app-plus/app-service.js | 916 ++++++++++++------------
9 files changed, 1,381 insertions(+), 874 deletions(-)
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
index 91045de..ab21b2e 100644
--- a/.vs/slnx.sqlite
+++ b/.vs/slnx.sqlite
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm"
index e7d07e6..2a4d03f 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm"
index 879f17f..2fe0441 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm"
Binary files differ
diff --git a/components/mold.vue b/components/mold.vue
index 6f3e30b..ff12f7e 100644
--- a/components/mold.vue
+++ b/components/mold.vue
@@ -46,9 +46,75 @@
</view> <!-- 杩欓噷闂悎 top-section-grid -->
<!-- 鎿嶄綔鎸夐挳 - 绉诲嚭 top-section-grid -->
<view class="button-row">
- <button class="save-btn" @click="handleUpTool" :disabled="submitting || loadingForm">涓婂垁鎻愪氦(=璋冩満寮�濮�)</button>
+ <button class="save-btn" @click="handleUpTool" :disabled="submitting || loadingForm">涓婂垁鎻愪氦</button>
<button class="save-btn" @click="handleDownTool" :disabled="submitting || loadingForm">涓嬪垁鎻愪氦</button>
<button class="cancel-btn" @click="cancel" :disabled="submitting || loadingForm">娓呯┖鍒�鍏烽�夋嫨</button>
+ </view>
+
+ <!-- 鏂板锛氳皟鏈烘暟鎹緭鍏ュ尯鍩� -->
+ <view class="tiaoji-section">
+ <view class="tiaoji-row">
+ <!-- 褰撳墠璋冩満甯堝倕 -->
+ <view class="current-user-section">
+ <text>褰撳墠璋冩満甯堝倕锛�</text>
+ <text class="current-user-name">{{ tiaojiStaffDisplay || '鏈�夋嫨' }}</text>
+ <button class="select-user-btn" @click="isTiaojiUserSelectShow = true">閫変汉</button>
+ </view>
+
+ <!-- 璋冩満鑹搧鏁� -->
+ <view class="tiaoji-input-section">
+ <text>璋冩満鑹搧鏁帮細</text>
+ <input v-model="tiaojiOkQty" class="inp tiaoji-input" type="number" placeholder="璇疯緭鍏ユ暟閲�" />
+ </view>
+
+ <!-- 璋冩満涓嶈壇鍝佹暟 -->
+ <view class="tiaoji-input-section">
+ <text>璋冩満涓嶈壇鍝佹暟锛�</text>
+ <input v-model="tiaojiBadQty" class="inp tiaoji-input" type="number" placeholder="璇疯緭鍏ユ暟閲�" />
+ </view>
+
+ <!-- 閫佹鍛煎彨鎸夐挳 -->
+ <view class="tiaoji-submit-section">
+ <button class="details-btn" @click="handleInspectionCall">閫佹鍛煎彨</button>
+ </view>
+ </view>
+ </view>
+
+ <!-- 閫夋嫨璋冩満甯堝倕寮圭獥 -->
+ <view v-if="isTiaojiUserSelectShow" class="overlay">
+ <view class="popup user-select-popup">
+ <!-- 鎼滅储鏍� -->
+ <view class="user-search-bar">
+ <input v-model.trim="tiaojiUserSearch"
+ type="text"
+ class="user-search-input"
+ placeholder="杈撳叆宸ュ彿鎴栧鍚嶆悳绱�"
+ @keydown.enter.prevent />
+ <button v-if="tiaojiUserSearch" class="user-search-clear" @click="tiaojiUserSearch=''">娓呯┖</button>
+ <view class="user-search-info">
+ 鍖归厤锛歿{ filteredTiaojiUsers.length }} / {{ tiaojiUsers.length }}
+ </view>
+ </view>
+ <view class="user-list-scroll">
+ <template v-if="filteredTiaojiUsers.length">
+ <view class="user-list-grid">
+ <button v-for="(u, index) in filteredTiaojiUsers"
+ :key="index"
+ :class="['user-list-btn', {'selected': u===tiaojiStaffNo}]"
+ @click="selectTiaojiUser(u)">
+ <span class="user-code">{{ u.split(':')[0] }}</span>
+ <span class="user-name">{{ u.split(':')[1] }}</span>
+ </button>
+ </view>
+ </template>
+ <view v-else class="no-user-result">
+ 鏈壘鍒板尮閰嶄汉鍛�
+ </view>
+ </view>
+ <view class="user-popup-footer">
+ <button class="clean-btn wide-btn" @click="isTiaojiUserSelectShow = false">鍏抽棴</button>
+ </view>
+ </view>
</view>
<!-- 鍒�鍏风洰褰曞脊绐� -->
@@ -81,8 +147,8 @@
</view>
</view>
- <!-- 鍒�鍏蜂娇鐢ㄨ褰曡〃鏍� -->
- <view class="table-section">
+ <!-- 闅愯棌鍒�鍏蜂娇鐢ㄨ褰曡〃鏍� -->
+ <view v-if="false" class="table-section">
<table class="styled-table">
<thead>
<tr>
@@ -208,12 +274,36 @@
isDirty: false, // 琛ㄥ崟鏄惁鏈夋湭淇濆瓨鍙樻洿
autoSaveIntervalMs: 5 * 60 * 1000, // 榛樿 5 鍒嗛挓
autoSaveEnabled: true,
- autoSaveActionName: 'handleUpTool' // 鑷姩瑙﹀彂鐨勬柟娉曞悕锛屽彲鏀逛负鑷畾涔変繚瀛樻柟娉�
+ autoSaveActionName: 'handleUpTool', // 鑷姩瑙﹀彂鐨勬柟娉曞悕锛屽彲鏀逛负鑷畾涔変繚瀛樻柟娉�
+
+ // 鏂板锛氳皟鏈虹浉鍏冲瓧娈�
+ isTiaojiUserSelectShow: false, // 璋冩満甯堝倕閫夋嫨寮圭獥
+ tiaojiStaffNo: '', // 褰撳墠閫変腑鐨勮皟鏈哄笀鍌�(鏍煎紡: 宸ュ彿:濮撳悕)
+ tiaojiOkQty: '', // 璋冩満鑹搧鏁�
+ tiaojiBadQty: '', // 璋冩満涓嶈壇鍝佹暟
+ tiaojiUsers: [], // 璋冩満甯堝倕鍒楄〃
+ tiaojiUserSearch: '', // 鎼滅储鍏抽敭璇�
+
+ // 鏂板锛氭姤璇曚骇鏁版墍闇�瀛楁
+ orderId: null, // 宸ュ崟ID
+ order: {} // 宸ュ崟鏁版嵁
};
},
computed: {
totalPages() {
return Math.max(1, Math.ceil(this.total / this.pageSize) || 1);
+ },
+ // 鏂板锛氳皟鏈哄笀鍌呮樉绀哄悕绉�
+ tiaojiStaffDisplay() {
+ if (!this.tiaojiStaffNo) return '';
+ const segs = this.tiaojiStaffNo.split(':');
+ return segs.length > 1 ? `${segs[0]} ${segs[1]}` : this.tiaojiStaffNo;
+ },
+ // 鏂板锛氳繃婊ゅ悗鐨勮皟鏈哄笀鍌呭垪琛�
+ filteredTiaojiUsers() {
+ if (!this.tiaojiUserSearch) return this.tiaojiUsers;
+ const kw = this.tiaojiUserSearch.trim().toLowerCase();
+ return this.tiaojiUsers.filter(u => u.toLowerCase().includes(kw));
}
},
watch: {
@@ -660,6 +750,11 @@
});
if (res.status === 0 && Array.isArray(res.data?.tbBillList) && res.data.tbBillList.length > 0) {
const order = res.data.tbBillList[0];
+
+ // 鏂板锛氫繚瀛樺伐鍗曟暟鎹紝鐢ㄤ簬鎶ヨ瘯浜ф暟
+ this.order = order;
+ this.orderId = order.id || order.ID || order.orderId || null;
+
this.selectedToolNo = order.cutterId || order.cutteR_ID || '';
this.toolName = order.cutterName || order.cutteR_NAME || '';
this.toolModel = order.cutterModel || order.cutteR_MODEL || '';
@@ -674,10 +769,14 @@
}
} else {
this.workOrderCurrentCjNum = null;
+ this.order = {};
+ this.orderId = null;
}
} catch (e) {
console.warn('鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', e);
this.workOrderCurrentCjNum = null;
+ this.order = {};
+ this.orderId = null;
}
},
formatDateTime(dateTimeStr) {
@@ -702,12 +801,102 @@
} catch {
return String(dateTimeStr);
}
+ },
+
+ // 鏂板锛氶�夋嫨璋冩満甯堝倕
+ selectTiaojiUser(u) {
+ this.tiaojiStaffNo = u;
+ this.isTiaojiUserSelectShow = false;
+ this.tiaojiUserSearch = '';
+ },
+
+ // 鏂板锛氶�佹鍛煎彨 + 鎶ヨ瘯浜ф暟
+ async handleInspectionCall() {
+ // 楠岃瘉蹇呭~椤�
+ if (!this.tiaojiStaffNo) {
+ this.$showMessage('璇烽�夋嫨璋冩満甯堝倕');
+ return;
+ }
+
+ const okQty = Number(this.tiaojiOkQty);
+ const badQty = Number(this.tiaojiBadQty);
+
+ if (isNaN(okQty) || okQty < 0) {
+ this.$showMessage('璇疯緭鍏ユ湁鏁堢殑璋冩満鑹搧鏁�');
+ return;
+ }
+
+ if (isNaN(badQty) || badQty < 0) {
+ this.$showMessage('璇疯緭鍏ユ湁鏁堢殑璋冩満涓嶈壇鍝佹暟');
+ return;
+ }
+
+ const staffNo = this.tiaojiStaffNo.split(':')[0];
+ const totalQty = okQty + badQty; // 璇曚骇鎬绘暟 = 鑹搧鏁� + 涓嶈壇鍝佹暟
+
+ // 璋冪敤鎶ヨ瘯浜ф暟鎺ュ彛(浣跨敤鎶ュ伐鐣岄潰鐨勬帴鍙�)
+ const payload = {
+ orderNo: this.workOrderNo,
+ orderId: this.orderId, // 闇�瑕佷粠宸ュ崟鏁版嵁涓幏鍙�
+ bf: totalQty, // 璇曚骇鎬绘暟
+ staffNo: staffNo,
+ initCjNum: this.order?.initCjNum || 0,
+ currentCjNum: this.order?.currentCjNum || 0,
+ type: 'tiaoji', // 鏍囪瘑涓鸿皟鏈烘姤宸�
+ tiaojiOkQty: okQty, // 鏂板:鑹搧鏁�
+ tiaojiBadQty: badQty // 鏂板:涓嶈壇鍝佹暟
+ };
+
+ try {
+ this.submitting = true;
+ // 璋冪敤鎶ュ伐鐣岄潰鐨勬姤璇曚骇鏁版帴鍙�
+ const res = await this.$post({
+ url: '/MesInvItemBarcodes/AddBFToBarcodes',
+ data: payload
+ });
+
+ if (res.status == 1) {
+ this.$showMessage(res.message);
+ return;
+ }
+
+ this.$showMessage('璋冩満鎶ュ伐鎴愬姛');
+ // 娓呯┖杈撳叆
+ this.tiaojiOkQty = '';
+ this.tiaojiBadQty = '';
+ // 鍒锋柊鏁版嵁
+ await this.fetchFormData();
+ await this.fetchDefaultToolFromWorkOrder();
+ } catch (err) {
+ console.error('璋冩満鎶ュ伐閿欒:', err);
+ this.$showMessage('璋冩満鎶ュ伐澶辫触锛岃妫�鏌ョ綉缁�');
+ } finally {
+ this.submitting = false;
+ }
+ },
+
+ // 鏂板锛氳幏鍙栬皟鏈哄笀鍌呭垪琛�
+ async fetchTiaojiStaff() {
+ try {
+ const res = await this.$post({
+ url: '/MesStaff/GetAllXS0101BYtj' // 涓庢姤宸ョ晫闈娇鐢ㄧ浉鍚屾帴鍙�
+ });
+ if (res.status === 0 && res.data && res.data.tbBillList) {
+ const staff = res.data.tbBillList;
+ this.tiaojiUsers = staff.map(s => s.staffNo + ':' + s.staffName);
+ }
+ } catch (err) {
+ console.error('鑾峰彇璋冩満甯堝倕鍒楄〃澶辫触:', err);
+ }
}
},
mounted() {
this.fetchTools('');
this.machineNo = uni.getStorageSync('machineNo') || '';
this.workOrderNo = uni.getStorageSync('daa001') || '';
+
+ // 鏂板锛氳幏鍙栬皟鏈哄笀鍌呭垪琛�
+ this.fetchTiaojiStaff();
if (this.machineNo && this.workOrderNo) {
this.fetchFormData().then(async () => {
@@ -1217,4 +1406,273 @@
margin-right: 16px;
flex: none !important; /* 鍏抽敭锛氬交搴曠姝lex鎷変几 */
}
+
+ /* 鏂板锛氳皟鏈哄尯鍩熸牱寮� */
+ .tiaoji-section {
+ width: 100%;
+ margin: 2vh 0;
+ padding: 20px;
+ background: #f8f9fa;
+ border-radius: 8px;
+ border: 1px solid #e9ecef;
+ }
+
+ .tiaoji-row {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: 20px;
+ }
+
+ /* 褰撳墠璋冩満甯堝倕鍖哄煙 - 涓庢姤宸ョ晫闈繚鎸佷竴鑷� */
+ .current-user-section {
+ display: flex;
+ align-items: center;
+ font-size: 22px;
+ border: 1.5px solid #f00;
+ border-radius: 10px;
+ padding: 14px 22px;
+ background: #fff;
+ gap: 14px;
+ flex: 0 0 auto;
+ }
+
+ .current-user-name {
+ font-weight: bold;
+ font-size: 22px;
+ }
+
+ /* 閫変汉鎸夐挳 - 钃濊壊涓婚锛屼笌鎶ュ伐鐣岄潰淇濇寔涓�鑷� */
+ .select-user-btn {
+ background: #00a2e9;
+ color: #fff;
+ border: none;
+ padding: 12px 22px;
+ border-radius: 12px;
+ font-size: 22px;
+ cursor: pointer;
+ transition: background 0.15s;
+ height: 66px;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .select-user-btn:hover {
+ background: #008ac2;
+ }
+
+ /* 璋冩満鏁伴噺杈撳叆鍖哄煙 */
+ .tiaoji-input-section {
+ display: flex;
+ align-items: center;
+ gap: 14px;
+ font-size: 22px;
+ }
+
+ .tiaoji-input {
+ width: 200px;
+ max-width: 100%;
+ height: 66px;
+ border: 2px solid #808080;
+ font-size: 28px;
+ text-align: center;
+ border-radius: 8px;
+ box-sizing: border-box;
+ }
+
+ /* 閫佹鍛煎彨鎸夐挳 - 涓庢姤宸ョ晫闈㈢殑纭鎻愪氦鎸夐挳淇濇寔涓�鑷� */
+ .details-btn {
+ padding: 12px 34px;
+ background: #00a2e9;
+ color: #fff;
+ font-size: 32px;
+ border: none;
+ cursor: pointer;
+ border-radius: 12px;
+ height: 66px;
+ min-width: 180px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ line-height: 1.1;
+ box-sizing: border-box;
+ transition: background 0.15s;
+ }
+
+ .details-btn:hover {
+ background: #008ac2;
+ }
+
+ .details-btn:disabled {
+ opacity: 0.6;
+ cursor: not-allowed;
+ background: #bae7ff;
+ }
+
+ .tiaoji-submit-section {
+ display: flex;
+ align-items: center;
+ }
+
+ /* 閫変汉寮圭獥鏍峰紡 - 涓庢姤宸ョ晫闈繚鎸佷竴鑷� */
+ .overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0,0,0,.45);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ z-index: 1000;
+ }
+
+ .user-select-popup {
+ background: #fff;
+ width: 1600px;
+ max-width: 99vw;
+ min-width: 1000px;
+ height: auto;
+ min-height: 520px;
+ padding: 0;
+ display: flex;
+ flex-direction: column;
+ font-size: 32px;
+ border-radius: 12px;
+ box-shadow: 0 8px 32px rgba(0,0,0,0.12);
+ z-index: 1001;
+ }
+
+ .user-search-bar {
+ display: flex;
+ align-items: center;
+ gap: 18px;
+ padding: 24px 64px 0 64px;
+ background: #fff;
+ flex-wrap: wrap;
+ }
+
+ .user-search-input {
+ flex: 1 1 260px;
+ padding: 16px 20px;
+ font-size: 28px;
+ border: 1px solid #bbb;
+ border-radius: 8px;
+ outline: none;
+ height: 54px;
+ }
+
+ .user-search-input:focus {
+ border-color: #007aff;
+ box-shadow: 0 0 0 2px rgba(0,122,255,.15);
+ }
+
+ .user-search-clear {
+ padding: 12px 28px;
+ background: #ff9f43;
+ color: #fff;
+ border: none;
+ border-radius: 8px;
+ font-size: 24px;
+ cursor: pointer;
+ }
+
+ .user-search-clear:hover {
+ background: #ff8920;
+ }
+
+ .user-search-info {
+ font-size: 22px;
+ color: #555;
+ }
+
+ .user-list-scroll {
+ flex: 1 1 auto;
+ overflow-y: auto;
+ padding: 32px 64px 0 64px;
+ }
+
+ .user-list-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill,minmax(200px,1fr));
+ gap: 22px 22px;
+ }
+
+ .user-list-btn {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ gap: 2px;
+ padding: 10px 10px;
+ height: 100px;
+ font-size: 30px;
+ background: #00a2e9;
+ color: #fff;
+ border: none;
+ border-radius: 8px;
+ cursor: pointer;
+ box-sizing: border-box;
+ word-break: break-word;
+ }
+
+ .user-list-btn .user-code {
+ font-weight: 700;
+ font-size: 36px;
+ line-height: 1.1;
+ }
+
+ .user-list-btn .user-name {
+ font-size: 32px;
+ line-height: 1.1;
+ }
+
+ .user-list-btn.selected {
+ background: #0072c9;
+ box-shadow: 0 0 0 3px rgba(255,255,255,.6) inset;
+ }
+
+ .user-list-btn:hover {
+ background: #008ed0;
+ }
+
+ .no-user-result {
+ padding: 40px 0;
+ text-align: center;
+ font-size: 28px;
+ color: #666;
+ }
+
+ .user-popup-footer {
+ flex-shrink: 0;
+ padding: 24px 64px 32px 64px;
+ background: #fff;
+ text-align: center;
+ }
+
+ .clean-btn {
+ width: 24%;
+ padding: 10px 0;
+ color: #fff;
+ font-size: 20px;
+ border: none;
+ text-align: center;
+ cursor: pointer;
+ border-radius: 0.6vw;
+ background: #007aff;
+ }
+
+ .clean-btn.wide-btn {
+ width: 30%;
+ font-size: 22px;
+ padding: 12px 0;
+ }
+
+ .clean-btn:hover {
+ background: #0062c9;
+ }
</style>
\ No newline at end of file
diff --git a/pages/index.vue b/pages/index.vue
index acfec3d..51880c1 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -462,7 +462,7 @@
getPrintInfo() {
var mac = "";
- mac = "74:24:ca:4f:b2:c3";
+ mac = "74:24:ca:4f:b7:4d";
this.$post({
url: "/DevMachine/GetDevMachineByPdaMac",
data: {
diff --git a/pages/moldRecord.vue b/pages/moldRecord.vue
index f6511d1..176ee81 100644
--- a/pages/moldRecord.vue
+++ b/pages/moldRecord.vue
@@ -6,14 +6,14 @@
</view>
<!-- 鍒�鍏蜂娇鐢ㄨ褰曡〃鏍� -->
- <view class="table-section">
+ <view class="table-section" :class="{'expanded': toolExpanded}">
<view class="table-header">
<h3>涓婁笅鍒�璁板綍</h3>
<button class="expand-btn" @click="toggleExpand('tool')">
{{ toolExpanded ? '鏀惰捣' : '灞曞紑' }}
</button>
</view>
- <table class="styled-table" :class="{'expanded': toolExpanded}">
+ <table class="styled-table">
<thead>
<tr>
<th style="width:7%">鍒�鍏风紪鍙�</th>
@@ -91,7 +91,9 @@
</tr>
<tr v-if="hasMoreToolRecords && !toolExpanded">
<td colspan="12" class="more-records-tip">
- <span>杩樻湁 {{ remainingToolRecords }} 鏉¤褰曪紝鐐瑰嚮"灞曞紑"鎸夐挳鏌ョ湅鍏ㄩ儴</span>
+ <span>杩樻湁 {{ remainingToolRecords }} 鏉¤褰曪紝鐐瑰嚮</span>
+ <button class="inline-expand-btn" @click="toggleExpand('tool')">灞曞紑</button>
+ <span>鎸夐挳鏌ョ湅鍏ㄩ儴</span>
</td>
</tr>
</tbody>
@@ -99,14 +101,14 @@
</view>
<!-- 宸ュ崟棣栨璁板綍琛ㄦ牸 -->
- <view class="table-section">
+ <view class="table-section" :class="{'expanded': inspectionExpanded}">
<view class="table-header">
<h3>宸ュ崟棣栨璁板綍</h3>
<button class="expand-btn" @click="toggleExpand('inspection')">
{{ inspectionExpanded ? '鏀惰捣' : '灞曞紑' }}
</button>
</view>
- <table class="styled-table" :class="{'expanded': inspectionExpanded}">
+ <table class="styled-table">
<thead>
<tr>
<th style="width:10%">妫�楠屽崟鍙�</th>
@@ -136,7 +138,9 @@
</tr>
<tr v-if="hasMoreInspectionRecords && !inspectionExpanded">
<td colspan="10" class="more-records-tip">
- <span>杩樻湁 {{ remainingInspectionRecords }} 鏉¤褰曪紝鐐瑰嚮"灞曞紑"鎸夐挳鏌ョ湅鍏ㄩ儴</span>
+ <span>杩樻湁 {{ remainingInspectionRecords }} 鏉¤褰曪紝鐐瑰嚮</span>
+ <button class="inline-expand-btn" @click="toggleExpand('inspection')">灞曞紑</button>
+ <span>鎸夐挳鏌ョ湅鍏ㄩ儴</span>
</td>
</tr>
</tbody>
@@ -503,11 +507,13 @@
display: flex;
flex-direction: column;
margin: 0;
- overflow-x: auto;
+ overflow: auto; /* 缁熶竴婊氬姩鏉� */
width: 100%;
border: 1px solid #f0f0f0;
border-radius: 8px;
background: #fff;
+ max-height: 220px; /* 榛樿楂樺害 */
+ transition: max-height 0.3s ease;
}
.table-header {
@@ -549,57 +555,24 @@
table.styled-table {
max-width: 1800px;
width: 98vw;
- margin: 0 auto;
+ margin: 0;
border-collapse: separate;
border-spacing: 0;
border: 2px solid #bfbfbf;
background: #fff;
- overflow: hidden;
box-shadow: 0 2px 12px rgba(0,0,0,0.06);
- max-height: 180px; /* 璋冩暣楂樺害浣块〉闈㈤ケ婊� */
- display: block;
- overflow-y: hidden;
- transition: max-height 0.3s ease;
}
- table.styled-table.expanded {
- max-height: 400px; /* 灞曞紑鏃剁殑楂樺害 */
- overflow-y: auto;
- }
-
- table.styled-table thead {
- display: table;
- width: 100%;
- table-layout: fixed;
- }
-
- table.styled-table thead th {
- background: #fafafa;
- border-bottom: 2px solid #bfbfbf;
- padding: 16px 10px;
- font-weight: bold;
- text-align: center;
- font-size: 22px;
- position: sticky;
- top: 0;
- z-index: 10;
- }
-
- table.styled-table tbody {
- display: block;
- max-height: calc(180px - 50px); /* 鍑忓幓琛ㄥご楂樺害 */
- overflow-y: hidden;
- }
-
- table.styled-table.expanded tbody {
- max-height: calc(400px - 50px);
- overflow-y: auto;
- }
-
- table.styled-table tbody tr {
- display: table;
- width: 100%;
- table-layout: fixed;
+ table.styled-table thead th {
+ background: #fafafa;
+ border-bottom: 2px solid #bfbfbf;
+ padding: 16px 10px;
+ font-weight: bold;
+ text-align: center;
+ font-size: 22px;
+ position: sticky; /* 琛ㄥご缃《 */
+ top: 0;
+ z-index: 10;
}
table.styled-table tbody td {
@@ -609,6 +582,11 @@
text-align: center;
font-size: 22px;
}
+
+ /* 灞曞紑鐘舵�� - 鍙敼鍙樺鍣ㄩ珮搴� */
+ .table-section.expanded {
+ max-height: 450px; /* 灞曞紑鏃剁殑瀹瑰櫒楂樺害 */
+ }
table.styled-table tbody .left {
text-align: left;
@@ -656,11 +634,38 @@
}
.more-records-tip span {
- display: inline-block;
- padding: 5px 15px;
- background-color: #f0f0f0;
- border-radius: 4px;
- border: 1px dashed #ccc;
+ display: inline;
+ font-size: 20px;
+ color: #666;
+ }
+
+ /* 琛屽唴灞曞紑鎸夐挳鏍峰紡 - 钃濊壊 */
+ .inline-expand-btn {
+ display: inline-block;
+ padding: 2px 12px; /* 鍑忓皬鍐呰竟璺�,涓庢枃瀛楅珮搴︿竴鑷� */
+ margin: 0 6px;
+ background-color: #00A2E9; /* 钃濊壊 */
+ color: white;
+ border: none;
+ border-radius: 3px;
+ font-size: 20px; /* 涓庢彁绀烘枃瀛楀ぇ灏忎竴鑷� */
+ font-weight: 500;
+ cursor: pointer;
+ transition: all 0.3s;
+ box-shadow: 0 2px 4px rgba(0, 162, 233, 0.2);
+ vertical-align: baseline; /* 涓庢枃瀛楀熀绾垮榻� */
+ line-height: 1.2; /* 鎺у埗琛岄珮 */
+ }
+
+ .inline-expand-btn:hover {
+ background-color: #40a9ff; /* 鎮仠鏃跺彉娣� */
+ box-shadow: 0 4px 8px rgba(0, 162, 233, 0.3);
+ transform: translateY(-1px);
+ }
+
+ .inline-expand-btn:active {
+ background-color: #096dd9; /* 鐐瑰嚮鏃跺彉娣� */
+ transform: translateY(0);
}
/* 鍝嶅簲寮忚皟鏁� */
diff --git a/store/index.js b/store/index.js
index 39e926c..26ee1b0 100644
--- a/store/index.js
+++ b/store/index.js
@@ -8,11 +8,11 @@
id: 'id',
serverInfo:{//鏈嶅姟淇℃伅
networkFlag:'鍐呯綉',
- serverURLInt:'http://192.168.11.251:10054',//鏈嶅姟鍣ㄤ綋妫� 10.0.1.104:10054
- serverURL:'http://localhost:5106',//鏈湴璋冭瘯鍦板潃
+ serverURLInt: 'http://192.168.11.251:10054',//鏈嶅姟鍣ㄤ綋妫� 10.0.1.104:10054
+ serverURL: 'http://localhost:10054',//鏈湴璋冭瘯鍦板潃
//serverAPI:'http://78566b00.r1.cpolar.top/api',//澶栫綉鍦板潃
- //serverAPI:'http://192.168.0.94:8008/api', //鍐呯綉鍦板潃
- serverAPI:'http://localhost:5106/api',//鏈湴璋冭瘯鍦板潃
+ serverAPI: 'http://192.168.0.94:8008/api', //鍐呯綉鍦板潃
+ //serverAPI:'http://localhost:5106/api',//鏈湴璋冭瘯鍦板潃
}
},
mutations: {
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index 59b9be8..92a08d4 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -3549,7 +3549,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _WorkOrderStatus = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderStatus.vue */ 53));\nvar _uniTable = _interopRequireDefault(__webpack_require__(/*! ../uni_modules/uni-table/components/uni-table/uni-table.vue */ 14));\nvar _mold = _interopRequireDefault(__webpack_require__(/*! ../components/mold.vue */ 58));\nvar _machine = _interopRequireDefault(__webpack_require__(/*! ../components/machine.vue */ 63));\nvar _WorkOrderPrint = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderPrint.vue */ 68));\nvar _WorkOrder = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrder.vue */ 74));\nvar _Technology = _interopRequireDefault(__webpack_require__(/*! ../components/Technology.vue */ 79));\nvar _PDFShow = _interopRequireDefault(__webpack_require__(/*! ../components/PDFShow.vue */ 84));\nvar _PrintInit = _interopRequireDefault(__webpack_require__(/*! ../components/PrintInit.vue */ 89));\nvar _PrintTest = _interopRequireDefault(__webpack_require__(/*! ../components/PrintTest.vue */ 94));\nvar _EquipmentInspection = _interopRequireDefault(__webpack_require__(/*! ../components/EquipmentInspection.vue */ 99));\nvar _moldRecord = _interopRequireDefault(__webpack_require__(/*! ../pages/moldRecord.vue */ 115));\nvar _methods;\nvar _default = {\n components: {\n Technology: _Technology.default,\n WorkOrder: _WorkOrder.default,\n WorkOrderPrint: _WorkOrderPrint.default,\n Machine: _machine.default,\n Mold: _mold.default,\n UniTable: _uniTable.default,\n WorkOrderStatus: _WorkOrderStatus.default,\n PDFShow: _PDFShow.default,\n PrintInit: _PrintInit.default,\n PrintTest: _PrintTest.default,\n EquipmentInspection: _EquipmentInspection.default,\n MoldRecord: _moldRecord.default\n },\n data: function data() {\n var _ref;\n return _ref = {\n orderStatus: '',\n // 榛樿鍏ㄩ儴\n currentTab: 7,\n productCode: '',\n // 浜у搧缂栫爜\n productSpec: '',\n // 浜у搧瑙勬牸\n\n machineList: [],\n machine: [],\n engineeringNoList: [],\n engineeringNoMapList: [],\n engineeringNo: '',\n machineNo: '',\n machineName: '',\n tableData: [],\n isShowTableData: []\n }, (0, _defineProperty2.default)(_ref, \"orderStatus\", '寮�宸�'), (0, _defineProperty2.default)(_ref, \"selectedOrder\", ''), (0, _defineProperty2.default)(_ref, \"orderId\", 0), (0, _defineProperty2.default)(_ref, \"selectedIndexs\", []), (0, _defineProperty2.default)(_ref, \"isShow\", false), (0, _defineProperty2.default)(_ref, \"autoRedirectTimer\", null), (0, _defineProperty2.default)(_ref, \"autoRedirectTime\", 5 * 60 * 1000), _ref;\n },\n created: function created() {\n //璋冭瘯浣跨敤鐨勪唬鐮乗n // this.machineNo = uni.getStorageSync('machineNo');\n // this.machineName = uni.getStorageSync('machineName');\n //\n // if (this.machineNo) {\n // this.getWomdaaIsShow();\n // }\n\n uni.clearStorageSync();\n this.checkForUpdate();\n\n //宸ユ帶鏈轰娇鐢ㄧ殑浠g爜\n this.getPrintInfo();\n },\n onLoad: function onLoad(options) {\n this.getMachineList();\n },\n onShow: function onShow() {\n this.refresh();\n this.resetAutoRedirectTimer();\n },\n methods: (_methods = {\n onRowClick: function onRowClick(index) {\n this.selectedIndexs = [index]; // 鍗曢�塡n // 鎵嬪姩瑙﹀彂 selectionChange 浠ュ悓姝ュ閫夋\n this.selectionChange({\n detail: {\n index: index\n }\n });\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n },\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n resetAutoRedirectTimer: function resetAutoRedirectTimer() {\n var _this = this;\n // 娓呴櫎鐜版湁鐨勫畾鏃跺櫒\n if (this.autoRedirectTimer) {\n clearTimeout(this.autoRedirectTimer);\n this.autoRedirectTimer = null;\n }\n\n // 闄や簡涓婚〉(0)銆佸伐鍗曢�夋嫨椤�(7)銆佺敓浜ф姤宸ラ〉(4)涔嬪鐨勯〉闈㈡墠璁剧疆鑷姩璺宠浆\n if (this.currentTab !== 0 && this.currentTab !== 7 && this.currentTab !== 4) {\n this.autoRedirectTimer = setTimeout(function () {\n // 璺宠浆鍥炰富椤礬n _this.currentTab = 0;\n // 鏄剧ず鎻愮ず淇℃伅\n uni.showToast({\n title: '椤甸潰瓒呮椂锛岃嚜鍔ㄨ繑鍥炰富椤�',\n icon: 'none',\n duration: 2000\n });\n }, this.autoRedirectTime);\n }\n },\n checkForUpdate: function checkForUpdate() {\n var _this2 = this;\n this.$post({\n url: \"/DevMachine/getAppUpgradeInfo\",\n data: {}\n }).then(function (res) {\n var newVersion = res.data.version;\n var currentVersion = uni.getSystemInfoSync(); // 鑾峰彇褰撳墠 APK 鐗堟湰鍙穃n\n if (newVersion > currentVersion.appVersion) {\n uni.showModal({\n title: \"鍙戠幇鏂扮増鏈琝",\n content: \"鏄惁涓嬭浇鏈�鏂扮増鏈�?\",\n success: function success(modalRes) {\n if (modalRes.confirm) {\n _this2.downloadNewApk(res.data.apkUrl);\n }\n }\n });\n //this.downloadNewApk(res.data.apkUrl);\n _this2.updateChecked = true; // 鏍囪鏇存柊宸叉鏌ヨ繃\n // // 濡傛灉鏈夋柊鐗堟湰锛屽紑濮嬩笅杞絓n //download(res.data.apkUrl);\n }\n });\n },\n downloadNewApk: function downloadNewApk(apkUrl) {\n uni.showToast({\n title: \"寮�濮嬩笅杞芥洿鏂�...\",\n icon: \"none\",\n duration: 2000\n });\n uni.downloadFile({\n url: apkUrl,\n success: function success(res) {\n if (res.statusCode === 200) {\n plus.runtime.install(res.tempFilePath, {\n force: true\n }, function () {\n __f__(\"log\", \"瀹夎鎴愬姛锛岄噸鍚簲鐢╘", \" at pages/index.vue:437\");\n //plus.runtime.restart();\n //plus.runtime.quit();\n // uni.navigateBack()\n }, function (e) {\n __f__(\"error\", \"瀹夎澶辫触:\", e, \" at pages/index.vue:442\");\n });\n }\n },\n fail: function fail(err) {\n __f__(\"error\", \"涓嬭浇澶辫触:\", err, \" at pages/index.vue:447\");\n uni.showToast({\n title: \"涓嬭浇澶辫触锛岃妫�鏌ョ綉缁淺",\n icon: \"none\",\n duration: 2000\n });\n }\n });\n },\n refresh: function refresh() {\n this.getMachineList();\n this.getPrintInfo();\n this.getWomdaaIsShow();\n },\n getPrintInfo: function getPrintInfo() {\n var _this3 = this;\n var mac = \"\";\n mac = \"74:24:ca:4f:b2:c3\";\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this3.machineNo = devMachine.machineNo;\n _this3.machineName = \"璋冭瘯妯″紡锛歕" + _this3.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this3.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n __f__(\"log\", devMachine.printMac, \" at pages/index.vue:479\");\n _this3.getWomdaaIsShow();\n });\n return;\n\n // \t\t\tif (plus.os.name == \"Android\") {\n // \t\t\t\t//鑾峰彇鎵嬫満MAC鍦板潃\n // \t\t\t\tvar Context = plus.android.importClass(\"android.content.Context\");\n // \t\t\t\tvar WifiManager = plus.android.importClass(\"android.net.wifi.WifiManager\");\n // \t\t\t\tvar wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);\n // \t\t\t\tvar WifiInfo = plus.android.importClass(\"android.net.wifi.WifiInfo\");\n // \t\t\t\tvar wifiInfo = wifiManager.getConnectionInfo();\n // \t\t\t\tmac = wifiInfo.getMacAddress();\n\n // \t\t\t\t//濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃\n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\tmac = this.getMacNew();\n // \t\t\t\t}\n // \t\t\t\t//濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛榎n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\treturn;\n // \t\t\t\t}\n // \t\t\t\tuni.setStorageSync('pdaMac', mac);\n\n // \t\t\t\tthis.$post({\n // \t\t\t\t\turl: \"/DevMachine/GetDevMachineByPdaMac\",\n // \t\t\t\t\tdata: {\n // \t\t\t\t\t\tpdaMac: mac,\n // \t\t\t\t\t}\n // \t\t\t\t}).then(res => {\n // \t\t\t\t\tlet devMachine = res.data.tbBillList;\n // \t\t\t\t\tthis.machineNo = devMachine.machineNo;\n // \t\t\t\t\tthis.machineName = \"褰撳墠鏈哄彴锛歕" + this.machineNo + \"鍙烽娇杞満\";\n\n // \t\t\t\t\tuni.setStorageSync('machineNo', this.machineNo);\n // \t\t\t\t\tuni.setStorageSync('printMac', devMachine.printMac);\n\n // \t\t\t\t\tthis.getWomdaaIsShow();\n\n // \t\t\t\t});\n // \t\t\t}\n },\n save: function save() {\n var _this4 = this;\n var data = this.selectedItems();\n if (data.length === 0) {\n this.$showMessage(\"璇烽�夋嫨涓�涓伐鍗昞");\n return;\n }\n if (data.length > 1) {\n this.$showMessage(\"涓�娆″彧鑳介�夊彇涓�涓伐鍗昞");\n return;\n }\n\n //let firstValue = data[0][\"moldId\"]; // 鑾峰彇绗竴涓璞$殑鎸囧畾灞炴�у�糪n\n //// 浣跨敤 every 鏂规硶妫�鏌ユ墍鏈夊璞$殑璇ュ睘鎬у�兼槸鍚︿竴鑷碶n //let flag = data.every(item => item[\"moldId\"] === firstValue);\n //if (!flag) {\n //\tthis.$showMessage(\"閫夊彇鐨刓" + data.length + \"涓伐鍗曚腑鐨勬ā鍏风紪鍙蜂笉涓�鑷碶");\n //\treturn;\n //}\n\n var orderSelect = [];\n data.forEach(function (s) {\n var entity = {\n orderId: s.id,\n orderNo: s.daa001\n };\n orderSelect.push(entity);\n });\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/MesOrderSelect/Add\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate,\n item: orderSelect\n }\n }).then(function (res) {\n if (res.data.tbBillList) {\n _this4.getWomdaaIsShow();\n uni.showToast({\n title: '淇濆瓨宸ュ崟鎴愬姛',\n //title: '灏嗘敞濉戞満寮�鍚堟ā鏁版竻0',\n //灏嗗�艰缃负 success 鎴栬�呯洿鎺ヤ笉鐢ㄥ啓icon杩欎釜鍙傛暟\n icon: 'success',\n //鏄剧ず鎸佺画鏃堕棿涓� 5绉抃n duration: 5000\n });\n }\n _this4.isShow = false;\n });\n },\n getMacNew: function getMacNew() {\n var str = \"\";\n try {\n if (plus.os.name == \"Android\") {\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var networkInterface = NetworkInterface.getByName(\"wlan0\");\n var bytes = networkInterface.getHardwareAddress();\n\n //灏哹yte[] 杞崲鎴� String\n for (var i = 0; i < bytes.length; i++) {\n var tmp = \"\";\n var num = bytes[i];\n if (num < 0) {\n tmp = (255 + num + 1).toString(16);\n } else {\n tmp = num.toString(16);\n }\n if (tmp.length == 1) {\n tmp = \"0\" + tmp;\n }\n str += i == 0 ? tmp : \":\" + tmp;\n }\n }\n } catch (err) {\n str = \"02:00:00:00:00:00\";\n }\n return str;\n },\n cancel: function cancel() {\n var _this5 = this;\n if (!this.machineNo) {\n return;\n }\n\n // 鐩存帴鐢� flag 鍒ゆ柇\n if (this.hasBindedCutterFlag) {\n uni.showToast({\n title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘娓呯┖閲嶉��',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n var editDate = this.formatDate(new Date());\n this.selectedIndexs = [];\n this.$post({\n url: \"/MesOrderSelect/Remove\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n if (res.data.tbBillList > 0) {\n _this5.isShowTableData = [];\n }\n });\n },\n formatDate: function formatDate(date) {\n var year = date.getFullYear(); // 鑾峰彇骞翠唤\n var month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆禱n var day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆禱n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day); // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆\n },\n selectionChange: function selectionChange(e) {\n // 鍗曢�夌洿鎺ヨ祴鍊糪n this.selectedIndexs = [e.detail.index];\n },\n selectedItems: function selectedItems() {\n var _this6 = this;\n return this.selectedIndexs.map(function (i) {\n return _this6.tableData[i];\n });\n },\n changeTab: function changeTab(index) {\n this.currentTab = index;\n // 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂癨n if (index === 7) {\n this.refresh();\n }\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n __f__(\"log\", index, \" at pages/index.vue:665\");\n },\n onMachineChange: function onMachineChange(event) {\n this.machineName = event;\n this.machineNo = this.machine[this.machineList.indexOf(event)].machineNo;\n uni.clearStorageSync();\n uni.setStorageSync('machineNo', this.machineNo);\n uni.setStorageSync('machineName', this.machineName);\n this.getWomdaaIsShow();\n },\n onEngineeringNoChange: function onEngineeringNoChange(event) {\n var orde = this.engineeringNoList[this.engineeringNoMapList.indexOf(event)];\n this.engineeringNo = orde.moldId;\n this.getWomdaa();\n },\n getMachineList: function getMachineList() {\n var _this7 = this;\n this.$post({\n url: \"/MesMachine/GetInjectionMachine\"\n }).then(function (res) {\n _this7.machine = res.data.tbBillList;\n _this7.machineList = _this7.machine.map(function (s) {\n return s.machineName;\n });\n });\n },\n //鑾峰彇琛ㄦ牸鐨勬暟鎹簮\n getWomdaaIsShow: function getWomdaaIsShow() {\n var _this8 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this8.isShowTableData = res.data.tbBillList;\n\n // 鍙垽鏂涓�鏉★紙鍙厑璁镐竴鏉″伐鍗曪級\n var order = _this8.isShowTableData[0];\n var hasBindedCutter = false;\n if (order) {\n hasBindedCutter = order.outToolId && order.outToolId.toString().trim() !== '' || order.outToolCode && order.outToolCode.trim() !== '' || order.outToolName && order.outToolName.trim() !== '';\n }\n // 瀛樺偍鍒� data 鍙橀噺\n _this8.hasBindedCutterFlag = hasBindedCutter;\n if (_this8.isShowTableData.length == 1) {\n uni.setStorageSync('daa001', _this8.isShowTableData[0].daa001);\n uni.setStorageSync('id', _this8.isShowTableData[0].id);\n }\n });\n },\n isShowTab: function isShowTab() {\n if (this.isShowTableData.length > 0) {\n uni.showToast({\n title: '宸叉湁姝e湪鎿嶄綔鐨勫伐鍗曪紝涓嶈兘鍐嶆閫夋嫨',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n this.isShow = true;\n // 榛樿閫変腑鈥滃緟寮�宸モ�漒n this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';\n this.tableData = [];\n // 涓嬫媺妗嗗彧鏄剧ず鍚堝苟鍚庣殑鐘舵�佸拰鍏跺畠鐘舵�乗n this.engineeringNoMapList = ['寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�', '寮�宸�', '瀹屽伐'];\n // 榛樿鏄剧ず鈥滃緟寮�宸モ�濆伐鍗昞n this.getWomdaaByStatus();\n }\n }, (0, _defineProperty2.default)(_methods, \"onEngineeringNoChange\", function onEngineeringNoChange(status) {\n this.engineeringNo = status;\n this.getWomdaaByStatus();\n }), (0, _defineProperty2.default)(_methods, \"getWomdaa\", function getWomdaa() {\n var _this9 = this;\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/Womdaa/GetWomdaasByMachine\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n _this9.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"getWomdaaByStatus\", function getWomdaaByStatus() {\n var _this10 = this;\n var editDate = this.formatDate(new Date());\n var statusArr = [];\n if (this.engineeringNo === '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�') {\n statusArr = ['寰呭紑宸�', '鏈紑宸�', '鏆傚仠'];\n } else {\n statusArr = [this.engineeringNo];\n }\n this.$post({\n url: \"/Womdaa/GetWomdaasByEngineeringNo\",\n data: {\n machineNo: this.machineNo,\n orderStatus: statusArr,\n editDate: editDate\n }\n }).then(function (res) {\n _this10.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"toDetail\", function toDetail(item) {\n this.orderId = item.id;\n this.selectedOrder = item.daa001;\n this.productCode = item.daa002; // 浜у搧缂栫爜\n this.productSpec = item.daa004; // 浜у搧瑙勬牸\n this.currentTab = 0;\n }), _methods),\n computed: {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJUZWNobm9sb2d5IiwiV29ya09yZGVyIiwiV29ya09yZGVyUHJpbnQiLCJNYWNoaW5lIiwiTW9sZCIsIlVuaVRhYmxlIiwiV29ya09yZGVyU3RhdHVzIiwiUERGU2hvdyIsIlByaW50SW5pdCIsIlByaW50VGVzdCIsIkVxdWlwbWVudEluc3BlY3Rpb24iLCJNb2xkUmVjb3JkIiwiZGF0YSIsIm9yZGVyU3RhdHVzIiwiY3VycmVudFRhYiIsInByb2R1Y3RDb2RlIiwicHJvZHVjdFNwZWMiLCJtYWNoaW5lTGlzdCIsIm1hY2hpbmUiLCJlbmdpbmVlcmluZ05vTGlzdCIsImVuZ2luZWVyaW5nTm9NYXBMaXN0IiwiZW5naW5lZXJpbmdObyIsIm1hY2hpbmVObyIsIm1hY2hpbmVOYW1lIiwidGFibGVEYXRhIiwiaXNTaG93VGFibGVEYXRhIiwiY3JlYXRlZCIsInVuaSIsIm9uTG9hZCIsIm9uU2hvdyIsIm1ldGhvZHMiLCJvblJvd0NsaWNrIiwiZGV0YWlsIiwiaW5kZXgiLCJyZXNldEF1dG9SZWRpcmVjdFRpbWVyIiwiY2xlYXJUaW1lb3V0IiwidGl0bGUiLCJpY29uIiwiZHVyYXRpb24iLCJjaGVja0ZvclVwZGF0ZSIsInVybCIsImNvbnRlbnQiLCJzdWNjZXNzIiwiZG93bmxvYWROZXdBcGsiLCJwbHVzIiwiZm9yY2UiLCJmYWlsIiwicmVmcmVzaCIsImdldFByaW50SW5mbyIsIm1hYyIsInBkYU1hYyIsInNhdmUiLCJvcmRlcklkIiwib3JkZXJObyIsIm9yZGVyU2VsZWN0IiwiZWRpdERhdGUiLCJpdGVtIiwiZ2V0TWFjTmV3IiwidG1wIiwic3RyIiwiY2FuY2VsIiwiZm9ybWF0RGF0ZSIsInNlbGVjdGlvbkNoYW5nZSIsInNlbGVjdGVkSXRlbXMiLCJjaGFuZ2VUYWIiLCJvbk1hY2hpbmVDaGFuZ2UiLCJvbkVuZ2luZWVyaW5nTm9DaGFuZ2UiLCJnZXRNYWNoaW5lTGlzdCIsImdldFdvbWRhYUlzU2hvdyIsImhhc0JpbmRlZEN1dHRlciIsIm9yZGVyIiwiaXNTaG93VGFiIiwic3RhdHVzIiwic3RhdHVzQXJyIiwiY29tcHV0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBbVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUEsZUFFQTtFQUNBQTtJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztJQUNBQztFQUNBO0VBQ0FDO0lBQUE7SUFDQTtNQUNBQztNQUFBO01BQ0FDO01BRUFDO01BQUE7TUFDQUM7TUFBQTs7TUFFQUM7TUFFQUM7TUFFQUM7TUFDQUM7TUFDQUM7TUFFQUM7TUFDQUM7TUFFQUM7TUFDQUM7SUFBQSxzREFFQSw0REFDQSxvREFDQSwwREFFQSxtREFFQSxpRUFHQSwrREFDQTtFQUVBO0VBQ0FDO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0lBRUFDO0lBRUE7O0lBRUE7SUFDQTtFQUVBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBQztVQUFBQztRQUFBO01BQUE7TUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtRQUNBQztRQUNBO01BQ0E7O01BRUE7TUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0FSO1lBQ0FTO1lBQ0FDO1lBQ0FDO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0E1QjtNQUNBO1FBRUE7UUFDQTs7UUFFQTtVQUNBZTtZQUNBUztZQUNBSztZQUNBQztjQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtNQUNBO0lBRUE7SUFFQUM7TUFDQWhCO1FBQ0FTO1FBQ0FDO1FBQ0FDO01BQ0E7TUFFQVg7UUFDQWE7UUFDQUU7VUFDQTtZQUNBRTtjQUNBQztZQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7WUFDQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FDO1VBQ0E7VUFDQW5CO1lBQ0FTO1lBQ0FDO1lBQ0FDO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQVM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFFQUM7TUFDQTtRQUNBVDtRQUNBNUI7VUFDQXNDO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUVBdkI7UUFDQUE7UUFFQTtRQUVBO01BQ0E7TUFDQTs7TUFHQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBOztNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTs7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BRUE7TUFDQTs7TUFHQTs7TUFFQTtNQUNBO0lBQ0E7SUFDQXdCO01BQUE7TUFDQTtNQUVBO1FBQ0E7UUFDQTtNQUNBO01BRUE7UUFDQTtRQUNBO01BQ0E7O01BRUE7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBOztNQUVBO01BRUF2QztRQUNBO1VBQ0F3QztVQUNBQztRQUNBO1FBQ0FDO01BQ0E7TUFFQTtNQUVBO1FBQ0FkO1FBQ0E1QjtVQUNBVTtVQUNBaUM7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFDQTtVQUNBN0I7WUFDQVM7WUFDQTtZQUNBO1lBQ0FDO1lBQ0E7WUFDQUM7VUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUVBO0lBQ0FtQjtNQUNBO01BQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FDO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FBO1lBQ0E7WUFDQUM7VUFDQTtRQUNBO01BQ0E7UUFDQUE7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUNBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0FqQztVQUNBUztVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUVBO01BQ0E7TUFFQTtRQUNBRTtRQUNBNUI7VUFDQVU7VUFDQWlDO1FBQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQU07TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUdBQztNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUVBO01BRUE7TUFFQXRDO01BRUFBO01BQ0FBO01BRUE7SUFDQTtJQUNBdUM7TUFFQTtNQUVBO01BRUE7SUFFQTtJQUNBQztNQUFBO01BQ0E7UUFDQTNCO01BQ0E7UUFDQTtRQUNBO1VBQUE7UUFBQTtNQUNBO0lBQ0E7SUFDQTtJQUNBNEI7TUFBQTtNQUNBO1FBQ0E1QjtRQUNBNUI7VUFDQVU7UUFDQTtNQUNBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7VUFDQStDLGtCQUNBQywrREFDQUEsd0RBQ0FBO1FBQ0E7UUFDQTtRQUNBO1FBRUE7VUFDQTNDO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBRUE0QztNQUNBO1FBQ0E1QztVQUNBUztVQUNBQztVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQSw2QkFDQSxjQUNBLE1BQ0EsS0FDQTtNQUNBO01BQ0E7SUFDQTtFQUFBLG1HQUVBa0M7SUFDQTtJQUNBO0VBQ0EsOEVBQ0E7SUFBQTtJQUVBO0lBRUE7TUFDQWhDO01BQ0E1QjtRQUNBVTtRQUNBaUM7TUFDQTtJQUNBO01BQ0E7SUFDQTtFQUNBLDhGQUVBO0lBQUE7SUFDQTtJQUNBO0lBQ0E7TUFDQWtCO0lBQ0E7TUFDQUE7SUFDQTtJQUNBO01BQ0FqQztNQUNBNUI7UUFDQVU7UUFDQVQ7UUFDQTBDO01BQ0E7SUFDQTtNQUNBO0lBQ0E7RUFDQSwwRUFDQUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0EsYUFDQTtFQUNBa0I7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjUyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cclxuXHQ8dmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidGFiLWJhclwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDcgfVwiIEBjbGljaz1cImNoYW5nZVRhYig3KVwiPlxyXG5cdFx0XHRcdOW3peWNlemAieaLqVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gMCB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDApXCI+XHJcblx0XHRcdFx05Li755WM6Z2iXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItaXRlbVwiIDpjbGFzcz1cInsgYWN0aXZlOiBjdXJyZW50VGFiID09PSAyIH1cIiBAY2xpY2s9XCJjaGFuZ2VUYWIoMilcIj5cclxuXHRcdFx0XHTkuIrliIDkuIvliIBcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDMgfVwiIEBjbGljaz1cImNoYW5nZVRhYigzKVwiPlxyXG5cdFx0XHRcdOiwg+acuumAgeajgFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gMTAgfVwiIEBjbGljaz1cImNoYW5nZVRhYigxMClcIj5cclxuXHRcdFx0XHTkuIrkuIvliIAv6aaW5qOA5Y2V6K6w5b2VXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItaXRlbVwiIDpjbGFzcz1cInsgYWN0aXZlOiBjdXJyZW50VGFiID09PSA0IH1cIiBAY2xpY2s9XCJjaGFuZ2VUYWIoNClcIj5cclxuXHRcdFx0XHTnlJ/kuqfmiqXlt6VcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDEgfVwiIEBjbGljaz1cImNoYW5nZVRhYigxKVwiPlxyXG5cdFx0XHRcdOW8gOW3peWujOW3pVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gNSB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDUpXCI+XHJcblx0XHRcdFx0ZS1TT1BcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDYgfVwiIEBjbGljaz1cImNoYW5nZVRhYig2KVwiPlxyXG5cdFx0XHRcdOW3peiJuuWPguaVsFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gOSB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDkpXCI+XHJcblx0XHRcdFx06K6+5aSH54K55qOAXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDggfVwiIEBjbGljaz1cImNoYW5nZVRhYig4KVwiPlxyXG5cdFx0XHTmiZPljbDmnLrorr7nva5cclxuXHRcdDwvdmlldz4gLS0+XHJcblxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJmb250XCI+PC92aWV3PlxyXG5cdFx0PHNjcm9sbC12aWV3IGNsYXNzPVwiY29udGVudFwiPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gN1wiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDwhLS08dmlldyBjbGFzcz1cInRvcC1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwicmVmcmVzaC1idG5cIiBAY2xpY2s9XCJyZWZyZXNoXCI+5Yi35pawPC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+LS0+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0PuS4gOWPsOacuuWPsOWPquiDvemAieaLqeS4gOadoeW3peWNle+8iOWkmumAiem7mOiupOS4uuacgOWQjuS4gOadoe+8iTwvaDQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNlY3Rpb24gdG9wLXNlY3Rpb25cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvdyBhbGlnbi1yb3dcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdi1tb2RlbD1cIm1hY2hpbmVOYW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdCAgIGRpc2FibGVkPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHQgICB0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHQgICBjbGFzcz1cIm1hY2hpbmUtbmFtZS1ib3hcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwib3JkZXItbGFiZWxcIj7nrKzkuIDmraXpgInmi6nlt6XljZU6PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJwcmludC1idG5cIiBAY2xpY2s9XCJpc1Nob3dUYWJcIj7pgInmi6nlt6XljZU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AtcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJyZWZyZXNoLWJ0blwiIEBjbGljaz1cInJlZnJlc2hcIj7liLfmlrA8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICAgICAgICAgICZsdDshJm5kYXNoOyDkuK3pg6jvvJrov5DooYznirbmgIEtLT5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbiBjYXJkXCI+XHJcblx0XHRcdFx0XHRcdDx1bmktdGFibGUgYm9yZGVyIHN0cmlwZSBlbXB0eVRleHQ9XCLmmoLml6Dmm7TlpJrmlbDmja5cIiBAc2VsZWN0aW9uLWNoYW5nZT1cInNlbGVjdGlvbkNoYW5nZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx1bmktdHI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiPuW3peW6jzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cIndpZHRoOiAxNzBweDtcIj7lt6XljZXlj7c8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+5Lqn5ZOB57yW56CBPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE5MHB4O1wiPuS6p+WTgeWQjeensDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cIndpZHRoOiAxOTBweDtcIj7op4TmoLw8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7lt7LnlJ/kuqfmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7mnKrnlJ/kuqfmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7mtL7lt6XmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj7lt6XljZXmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7lt6XljZXnirbmgIE8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7miqXlt6Xkuro8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7pgInmi6k8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHQ8L3VuaS10cj5cclxuXHRcdFx0XHRcdFx0XHQ8dW5pLXRyIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpc1Nob3dUYWJsZURhdGFcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0ucHJvY05hbWVcIiAvPjwhLS3lt6Xluo8tLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDAxIH19PC9kaXY+PCEtLeW3peWNleWPty0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDIgfX08L2Rpdj48IS0t5Lqn5ZOB57yW56CBLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taW5wdXRcIj57eyBpdGVtLmRhYTAwMyB9fTwvZGl2PjwhLS3kuqflk4HlkI3np7AtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDA0IH19PC9kaXY+PCEtLeinhOagvC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxMVwiIC8+PCEtLeW3sueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIDp2YWx1ZT1cIihpdGVtLmRhYTAwOCB8fCAwKSAtIChpdGVtLmRhYTAxMSB8fCAwKVwiIC8+PCEtLeacqueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLea0vuW3peaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHQgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5kYWEwMDhcIiAvPjwhLS3lt6XljZXmlbDph48tLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5kYWEwMThcIiAvPjwhLS3lt6XljZXnirbmgIEtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5zdGFmZk5hbWVcIiAvPjwhLS3miqXlt6XkurotLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIHR5cGU9XCJkZWZhdWx0XCIgQGNsaWNrPVwidG9EZXRhaWwoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdOi9rOWIsOS4u+eVjOmdolxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHQ8L3VuaS10cj5cclxuXHRcdFx0XHRcdFx0PC91bmktdGFibGU+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ0blwiIEBjbGljaz1cImNhbmNlbFwiPua4heepuumHjemAiTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8IS0tPHRleHQgc3R5bGU9XCJjb2xvcjogcmVkO1wiPlxyXG5cdFx0XHRcdFx0XHTor7TmmI465Y+q6IO95ZCM5pe25byA5bel5LiA5Liq5bel5Y2V44CC6YCJ5oup5a6M5oiQ77yM54K55Ye75L+d5a2Y6YCJ5oup44CC57O757uf5L+d55WZ6YCJ5Lit55qE5bel5Y2V44CCXHJcblx0XHRcdFx0XHRcdOWmguaenOimgemHjemAie+8jOeCueWHu+a4heepuumHjemAieWKn+iDveOAglxyXG5cdFx0XHRcdFx0PC90ZXh0Pi0tPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gMFwiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8V29ya09yZGVyIDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIlxyXG5cdFx0XHRcdFx0XHQgICA6ZGV2aWNlTnVtYmVyPVwibWFjaGluZU5hbWVcIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSAxXCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0gICAgICAgICZsdDshJm5kYXNoOyDosIPnlKggV29ya09yZGVyU3RhdHVzIOe7hOS7tiAmbmRhc2g7Jmd0Oy0tPlxyXG5cdFx0XHRcdDxXb3JrT3JkZXJTdGF0dXMgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDJcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSAgICAgICAgJmx0OyEmbmRhc2g7IOiwg+eUqCBtb2xkIOe7hOS7tiAmbmRhc2g7Jmd0Oy0tPlxyXG5cdFx0XHRcdDxtb2xkIDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSAzXCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0gICAgICAgICZsdDshJm5kYXNoOyDosIPnlKggbW9sZCDnu4Tku7YgJm5kYXNoOyZndDstLT5cclxuXHRcdFx0XHQ8bWFjaGluZSA6b3JkZXJJZD1cIm9yZGVySWRcIiA6b3JkZXJObz1cInNlbGVjdGVkT3JkZXJcIiA6bWFjaGluZU5vPVwibWFjaGluZU5vXCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gMTBcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSDosIPnlKggbW9sZFJlY29yZCDnu4Tku7YgLS0+XHJcblx0XHRcdFx0PE1vbGRSZWNvcmQgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDRcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSAg6LCD55SoIG1vbGQg57uE5Lu2IC0tPlxyXG5cdFx0XHRcdDxXb3JrT3JkZXJQcmludCA6b3JkZXJJZD1cIm9yZGVySWRcIiA6b3JkZXJObz1cInNlbGVjdGVkT3JkZXJcIiA6bWFjaGluZU5vPVwibWFjaGluZU5vXCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gOFwiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8IS0tIOiwg+eUqCBtb2xkIOe7hOS7tiAtLT5cclxuXHRcdFx0XHQ8UHJpbnRJbml0IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA1XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDxQREZTaG93IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA2XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDxUZWNobm9sb2d5IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA5XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0g6K6+5aSH54K55qOA6KeG5Zu+IC0tPlxyXG5cdFx0XHRcdDxFcXVpcG1lbnRJbnNwZWN0aW9uIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cclxuXHJcblx0XHQ8IS0tIOW8ueeql+S4i+aLieahhuWPquaYvuekuuW3peWNleeKtuaAgSAtLT5cclxuXHRcdDx2aWV3IHYtaWY9XCJpc1Nob3dcIiBjbGFzcz1cIm92ZXJsYXlcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJwb3B1cFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuXHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuXHRcdFx0XHRcdFx0PGxhYmVsIHN0eWxlPVwiZmxvYXQ6IGxlZnQ7bWFyZ2luLXRvcDogMThweDtmb250LXNpemU6IDIycHg7XCI+54K55Ye75oyJ6ZKu562b6YCJ5bel5Y2V54q25oCBOjwvbGFiZWw+XHJcblx0XHRcdFx0XHRcdDxzdXBlcndlaS1jb21ib3ggOmNhbmRpZGF0ZXM9XCJlbmdpbmVlcmluZ05vTWFwTGlzdFwiIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCIgdi1tb2RlbD1cImVuZ2luZWVyaW5nTm9cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAc2VsZWN0PVwib25FbmdpbmVlcmluZ05vQ2hhbmdlXCIgY2xhc3M9XCJwaWNrZXJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBzdHlsZT1cInBhZGRpbmc6IDdweCA0NnB4O3dpZHRoOiA2NTBweDtcIj48L3N1cGVyd2VpLWNvbWJveD5cclxuXHRcdFx0XHRcdFx0PHNwYW4gc3R5bGU9XCJtYXJnaW4tbGVmdDogMjBweDsgY29sb3I6ICNmZjY2MDA7IGZvbnQtc2l6ZTogMThweDtcIj7lpJrpgInml7blj6rkv53nlZnmnIDlkI7kuIDmnaHlt6XljZU8L3NwYW4+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0NTBweDsgb3ZlcmZsb3c6IGF1dG87XCI+IDwhLS0g6LCD5pW06auY5bqm5Li6MzgwcHjvvIzkuLrlupXpg6jmjInpkq7nlZnlh7rmm7TlpJrnqbrpl7QgLS0+XHJcblx0XHRcdFx0XHQ8dGFibGU+XHJcblxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNlY3Rpb24gY2FyZFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx1bmktdGFibGUgcmVmPVwidGFibGVcIiB0eXBlPVwic2VsZWN0aW9uXCIgYm9yZGVyIHN0cmlwZSBlbXB0eVRleHQ9XCLmmoLml6Dmm7TlpJrmlbDmja5cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQgICBjbGFzcz1cImxhcmdlLXNlbGVjdGlvbi10YWJsZVwiIEBzZWxlY3Rpb24tY2hhbmdlPVwic2VsZWN0aW9uQ2hhbmdlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiPuW3peW6jzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPuW3peWNleWPtzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuS6p+WTgee8lueggTwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDI0MHB4O1wiPuS6p+WTgeWQjeensDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPuinhOagvDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuW3sueUn+S6p+aVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuacqueUn+S6p+aVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPua0vuW3peaVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPuW3peWNleaVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+5bel5Y2V54q25oCBPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj7miqXlt6Xkuro8L3VuaS10aD5cclxuPCEtLSBcdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwid2lkdGg6IDEyNnB4O1wiPumAieaLqTwvdW5pLXRoPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ciB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gdGFibGVEYXRhXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6a2V5PVwiaW5kZXhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDpjbGFzcz1cInsncm93LXNlbGVjdGVkJzogc2VsZWN0ZWRJbmRleHMuaW5jbHVkZXMoaW5kZXgpfVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0QGNsaWNrPVwib25Sb3dDbGljayhpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0ucHJvY05hbWVcIiAvPjwhLS3lt6Xluo8tLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDAxIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taW5wdXRcIj57eyBpdGVtLmRhYTAwMiB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDMgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDA0IH19PC9kaXY+PCEtLeinhOagvC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxMVwiIC8+PCEtLeW3sueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIDp2YWx1ZT1cIihpdGVtLmRhYTAwOCB8fCAwKSAtIChpdGVtLmRhYTAxMSB8fCAwKVwiIC8+PCEtLeacqueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLea0vuW3peaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLeW3peWNleaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxOFwiIC8+PCEtLeW3peWNleeKtuaAgS0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLnN0YWZmTmFtZVwiIC8+PCEtLeaKpeW3peS6ui0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZD5cclxuPCEtLSBcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWdyb3VwXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIHR5cGU9XCJkZWZhdWx0XCIgQGNsaWNrPVwidG9EZXRhaWwoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx06L2s5Yiw5Li755WM6Z2iXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRyPlxyXG5cdFx0XHRcdFx0XHRcdDwvdW5pLXRhYmxlPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PC90YWJsZT5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cInNhdmUtYnRuXCIgQGNsaWNrPVwic2F2ZVwiPuS/neWtmOmAieaLqTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiBAY2xpY2s9XCJpc1Nob3cgPSAhaXNTaG93XCI+5Y+W5raIPC9idXR0b24+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFdvcmtPcmRlclN0YXR1cyBmcm9tICcuLi9jb21wb25lbnRzL1dvcmtPcmRlclN0YXR1cy52dWUnOyAvLyDnoa7kv53ot6/lvoTmraPnoa5cclxuaW1wb3J0IFVuaVRhYmxlIGZyb20gXCIuLi91bmlfbW9kdWxlcy91bmktdGFibGUvY29tcG9uZW50cy91bmktdGFibGUvdW5pLXRhYmxlLnZ1ZVwiO1xyXG5pbXBvcnQgTW9sZCBmcm9tIFwiLi4vY29tcG9uZW50cy9tb2xkLnZ1ZVwiO1xyXG5pbXBvcnQgTWFjaGluZSBmcm9tIFwiLi4vY29tcG9uZW50cy9tYWNoaW5lLnZ1ZVwiO1xyXG5pbXBvcnQgV29ya09yZGVyUHJpbnQgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyUHJpbnQudnVlXCI7XHJcbmltcG9ydCBXb3JrT3JkZXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyLnZ1ZVwiO1xyXG5pbXBvcnQgVGVjaG5vbG9neSBmcm9tIFwiLi4vY29tcG9uZW50cy9UZWNobm9sb2d5LnZ1ZVwiO1xyXG5pbXBvcnQgUERGU2hvdyBmcm9tIFwiLi4vY29tcG9uZW50cy9QREZTaG93LnZ1ZVwiO1xyXG5pbXBvcnQgUHJpbnRJbml0IGZyb20gXCIuLi9jb21wb25lbnRzL1ByaW50SW5pdC52dWVcIjtcclxuaW1wb3J0IFByaW50VGVzdCBmcm9tIFwiLi4vY29tcG9uZW50cy9QcmludFRlc3QudnVlXCI7XHJcbmltcG9ydCBFcXVpcG1lbnRJbnNwZWN0aW9uIGZyb20gXCIuLi9jb21wb25lbnRzL0VxdWlwbWVudEluc3BlY3Rpb24udnVlXCI7XHJcbmltcG9ydCBNb2xkUmVjb3JkIGZyb20gXCIuLi9wYWdlcy9tb2xkUmVjb3JkLnZ1ZVwiO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRlY2hub2xvZ3ksXHJcblx0XHRcdFdvcmtPcmRlcixcclxuXHRcdFx0V29ya09yZGVyUHJpbnQsXHJcblx0XHRcdE1hY2hpbmUsXHJcblx0XHRcdE1vbGQsXHJcblx0XHRcdFVuaVRhYmxlLFxyXG5cdFx0XHRXb3JrT3JkZXJTdGF0dXMsXHJcblx0XHRcdFBERlNob3csXHJcblx0XHRcdFByaW50SW5pdCxcclxuXHRcdFx0UHJpbnRUZXN0LFxyXG5cdFx0XHRFcXVpcG1lbnRJbnNwZWN0aW9uLFxyXG5cdFx0XHRNb2xkUmVjb3JkXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyU3RhdHVzOiAnJywgLy8g6buY6K6k5YWo6YOoXHJcblx0XHRcdFx0Y3VycmVudFRhYjogNyxcclxuXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q29kZTogJycsIC8vIOS6p+WTgee8lueggVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFNwZWM6ICcnLCAvLyDkuqflk4Hop4TmoLxcclxuXHJcblx0XHRcdFx0bWFjaGluZUxpc3Q6IFtdLFxyXG5cclxuXHRcdFx0XHRtYWNoaW5lOiBbXSxcclxuXHJcblx0XHRcdFx0ZW5naW5lZXJpbmdOb0xpc3Q6IFtdLFxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nTm9NYXBMaXN0OiBbXSxcclxuXHRcdFx0XHRlbmdpbmVlcmluZ05vOiAnJyxcclxuXHJcblx0XHRcdFx0bWFjaGluZU5vOiAnJyxcclxuXHRcdFx0XHRtYWNoaW5lTmFtZTogJycsXHJcblxyXG5cdFx0XHRcdHRhYmxlRGF0YTogW10sXHJcblx0XHRcdFx0aXNTaG93VGFibGVEYXRhOiBbXSxcclxuXHJcblx0XHRcdFx0b3JkZXJTdGF0dXM6ICflvIDlt6UnLFxyXG5cdFx0XHRcdHNlbGVjdGVkT3JkZXI6ICcnLFxyXG5cdFx0XHRcdG9yZGVySWQ6IDAsXHJcblxyXG5cdFx0XHRcdHNlbGVjdGVkSW5kZXhzOiBbXSxcclxuXHJcblx0XHRcdFx0aXNTaG93OiBmYWxzZSxcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyDoh6rliqjot7Povaznm7jlhbNcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lcjogbnVsbCxcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lOiA1ICogNjAgKiAxMDAwLCAvLyA15YiG6ZKfXHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHJcblx0XHRcdC8v6LCD6K+V5L2/55So55qE5Luj56CBXHJcblx0XHRcdC8vIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKTtcclxuXHRcdFx0Ly8gdGhpcy5tYWNoaW5lTmFtZSA9IHVuaS5nZXRTdG9yYWdlU3luYygnbWFjaGluZU5hbWUnKTtcclxuXHRcdFx0Ly9cclxuXHRcdFx0Ly8gaWYgKHRoaXMubWFjaGluZU5vKSB7XHJcblx0XHRcdC8vICAgdGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0Ly8gfVxyXG5cclxuXHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHRcdFx0XHJcblx0XHRcdHRoaXMuY2hlY2tGb3JVcGRhdGUoKTtcclxuXHRcdFx0XHJcblx0XHRcdC8v5bel5o6n5py65L2/55So55qE5Luj56CBXHJcblx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdHRoaXMuZ2V0TWFjaGluZUxpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcbiAgICAgICAgICAgIG9uUm93Q2xpY2soaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleHMgPSBbaW5kZXhdOyAvLyDljZXpgIlcclxuICAgICAgICAgICAgICAgIC8vIOaJi+WKqOinpuWPkSBzZWxlY3Rpb25DaGFuZ2Ug5Lul5ZCM5q2l5aSN6YCJ5qGGXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZSh7IGRldGFpbDogeyBpbmRleCB9IH0pO1xyXG4gICAgICAgICAgICAgICAgLy8g6YeN572u6Ieq5Yqo6Lez6L2s6K6h5pe25ZmoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOmHjee9ruiHquWKqOi3s+i9rOiuoeaXtuWZqFxyXG4gICAgICAgICAgICByZXNldEF1dG9SZWRpcmVjdFRpbWVyKCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5riF6Zmk546w5pyJ55qE5a6a5pe25ZmoXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVkaXJlY3RUaW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9SZWRpcmVjdFRpbWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8g6Zmk5LqG5Li76aG1KDAp44CB5bel5Y2V6YCJ5oup6aG1KDcp44CB55Sf5Lqn5oql5bel6aG1KDQp5LmL5aSW55qE6aG16Z2i5omN6K6+572u6Ieq5Yqo6Lez6L2sXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiICE9PSAwICYmIHRoaXMuY3VycmVudFRhYiAhPT0gNyAmJiB0aGlzLmN1cnJlbnRUYWIgIT09IDQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOi3s+i9rOWbnuS4u+mhtVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmmL7npLrmj5DnpLrkv6Hmga9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mhtemdoui2heaXtu+8jOiHquWKqOi/lOWbnuS4u+mhtScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmF1dG9SZWRpcmVjdFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHRjaGVja0ZvclVwZGF0ZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9nZXRBcHBVcGdyYWRlSW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YToge31cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGxldCBuZXdWZXJzaW9uID0gcmVzLmRhdGEudmVyc2lvbjtcclxuXHRcdFx0XHRcdGxldCBjdXJyZW50VmVyc2lvbiA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpOyAvLyDojrflj5blvZPliY0gQVBLIOeJiOacrOWPt1xyXG5cdFx0XHRcdFx0IFxyXG5cdFx0XHRcdFx0aWYgKG5ld1ZlcnNpb24gPiBjdXJyZW50VmVyc2lvbi5hcHBWZXJzaW9uKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBcIuWPkeeOsOaWsOeJiOacrFwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwi5piv5ZCm5LiL6L295pyA5paw54mI5pysP1wiLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChtb2RhbFJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG1vZGFsUmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vdGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNoZWNrZWQgPSB0cnVlOyAvLyDmoIforrDmm7TmlrDlt7Lmo4Dmn6Xov4dcclxuXHRcdFx0XHRcdFx0Ly8gICAgICAvLyDlpoLmnpzmnInmlrDniYjmnKzvvIzlvIDlp4vkuIvovb1cclxuXHRcdFx0XHRcdFx0Ly9kb3dubG9hZChyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHRkb3dubG9hZE5ld0FwayhhcGtVcmwpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIuW8gOWni+S4i+i9veabtOaWsC4uLlwiLFxyXG5cdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR1bmkuZG93bmxvYWRGaWxlKHtcclxuXHRcdFx0XHRcdHVybDogYXBrVXJsLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHBsdXMucnVudGltZS5pbnN0YWxsKHJlcy50ZW1wRmlsZVBhdGgsIHtcclxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fSwgZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWuieijheaIkOWKn++8jOmHjeWQr+W6lOeUqFwiKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnF1aXQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdFx0XHRcdH0sIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCLlronoo4XlpLHotKU6XCIsIGUpO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwi5LiL6L295aSx6LSlOlwiLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLkuIvovb3lpLHotKXvvIzor7fmo4Dmn6XnvZHnu5xcIixcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdHJlZnJlc2goKSB7XHJcblx0XHRcdFx0dGhpcy5nZXRNYWNoaW5lTGlzdCgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0UHJpbnRJbmZvKCkge1xyXG5cdFx0XHRcdHZhciBtYWMgPSBcIlwiO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1hYyA9IFwiNzQ6MjQ6Y2E6NGY6YjI6YzNcIjtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hY2hpbmVOYW1lID0gXCLosIPor5XmqKHlvI/vvJpcIiArIHRoaXMubWFjaGluZU5vICsgXCLlj7fpvb/ova7mnLpcIlxyXG5cclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdC8vICBcdFx0XHRpZiAocGx1cy5vcy5uYW1lID09IFwiQW5kcm9pZFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0Ly/ojrflj5bmiYvmnLpNQUPlnLDlnYBcclxuXHQvLyAgXHRcdFx0XHR2YXIgQ29udGV4dCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQuY29udGVudC5Db250ZXh0XCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciBXaWZpTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmV0LndpZmkuV2lmaU1hbmFnZXJcIik7XHJcblx0Ly8gIFx0XHRcdFx0dmFyIHdpZmlNYW5hZ2VyID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKS5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuV0lGSV9TRVJWSUNFKTtcclxuXHQvLyAgXHRcdFx0XHR2YXIgV2lmaUluZm8gPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm5ldC53aWZpLldpZmlJbmZvXCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciB3aWZpSW5mbyA9IHdpZmlNYW5hZ2VyLmdldENvbm5lY3Rpb25JbmZvKCk7XHJcblx0Ly8gIFx0XHRcdFx0bWFjID0gd2lmaUluZm8uZ2V0TWFjQWRkcmVzcygpO1xyXG5cdFx0XHRcdFx0XHJcblx0Ly8gIFx0XHRcdFx0Ly/lpoLmnpxtYWPkuLrigJwwMjowMDowMDowMDowMDowMOKAne+8jOWImeWPr+iDveaYr+WuieWNkzYuMOS7peS4iueJiOacrO+8jOWImeS9v+eUqOWPpuS4gOenjeaWueazleiOt+WPlm1hY+WcsOWdgFxyXG5cdC8vICBcdFx0XHRcdGlmIChtYWMgPT0gXCIwMjowMDowMDowMDowMDowMFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0XHRtYWMgPSB0aGlzLmdldE1hY05ldygpO1xyXG5cdC8vICBcdFx0XHRcdH1cclxuXHQvLyAgXHRcdFx0XHQvL+WmguaenG1hY+S9v+eUqOaWsOaWueazleS+neeEtuaYr+KAnDAyOjAwOjAwOjAwOjAwOjAw4oCd5YiZ5LiN6L+b6KGM5L+d5a2YXHJcblx0Ly8gIFx0XHRcdFx0aWYgKG1hYyA9PSBcIjAyOjAwOjAwOjAwOjAwOjAwXCIpIHtcclxuXHQvLyAgXHRcdFx0XHRcdHJldHVybjtcclxuXHQvLyAgXHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwZGFNYWMnLCBtYWMpO1xyXG5cclxuXHQvLyAgXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHQvLyAgXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHQvLyAgXHRcdFx0XHRcdGRhdGE6IHtcclxuXHQvLyAgXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0Ly8gIFx0XHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdC8vICBcdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuXHQvLyAgXHRcdFx0XHRcdHRoaXMubWFjaGluZU5hbWUgPSBcIuW9k+WJjeacuuWPsO+8mlwiICsgdGhpcy5tYWNoaW5lTm8gKyBcIuWPt+m9v+i9ruaculwiO1xyXG5cclxuXHQvLyAgXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdC8vICBcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG4gXHJcblxyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHJcblx0Ly8gIFx0XHRcdFx0fSk7XHJcblx0Ly8gIFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2ZSgpIHtcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG5cclxuXHRcdFx0XHRpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShcIuivt+mAieaLqeS4gOS4quW3peWNlVwiKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5LiA5qyh5Y+q6IO96YCJ5Y+W5LiA5Liq5bel5Y2VXCIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly9sZXQgZmlyc3RWYWx1ZSA9IGRhdGFbMF1bXCJtb2xkSWRcIl07IC8vIOiOt+WPluesrOS4gOS4quWvueixoeeahOaMh+WumuWxnuaAp+WAvFxyXG5cclxuXHRcdFx0XHQvLy8vIOS9v+eUqCBldmVyeSDmlrnms5Xmo4Dmn6XmiYDmnInlr7nosaHnmoTor6XlsZ7mgKflgLzmmK/lkKbkuIDoh7RcclxuXHRcdFx0XHQvL2xldCBmbGFnID0gZGF0YS5ldmVyeShpdGVtID0+IGl0ZW1bXCJtb2xkSWRcIl0gPT09IGZpcnN0VmFsdWUpO1xyXG5cdFx0XHRcdC8vaWYgKCFmbGFnKSB7XHJcblx0XHRcdFx0Ly9cdHRoaXMuJHNob3dNZXNzYWdlKFwi6YCJ5Y+W55qEXCIgKyBkYXRhLmxlbmd0aCArIFwi5Liq5bel5Y2V5Lit55qE5qih5YW357yW5Y+35LiN5LiA6Ie0XCIpO1xyXG5cdFx0XHRcdC8vXHRyZXR1cm47XHJcblx0XHRcdFx0Ly99XHJcblxyXG5cdFx0XHRcdGxldCBvcmRlclNlbGVjdCA9IFtdO1xyXG5cclxuXHRcdFx0XHRkYXRhLmZvckVhY2gocyA9PiB7XHJcblx0XHRcdFx0XHRsZXQgZW50aXR5ID0ge1xyXG5cdFx0XHRcdFx0XHRvcmRlcklkOiBzLmlkLFxyXG5cdFx0XHRcdFx0XHRvcmRlck5vOiBzLmRhYTAwMSxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdG9yZGVyU2VsZWN0LnB1c2goZW50aXR5KTtcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0bGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG5cclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvTWVzT3JkZXJTZWxlY3QvQWRkXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcblx0XHRcdFx0XHRcdGVkaXREYXRlOiBlZGl0RGF0ZSxcclxuXHRcdFx0XHRcdFx0aXRlbTogb3JkZXJTZWxlY3RcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGEudGJCaWxsTGlzdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5bel5Y2V5oiQ5YqfJyxcclxuXHRcdFx0XHRcdFx0XHQvL3RpdGxlOiAn5bCG5rOo5aGR5py65byA5ZCI5qih5pWw5riFMCcsXHJcblx0XHRcdFx0XHRcdFx0Ly/lsIblgLzorr7nva7kuLogc3VjY2VzcyDmiJbogIXnm7TmjqXkuI3nlKjlhplpY29u6L+Z5Liq5Y+C5pWwXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdC8v5pi+56S65oyB57ut5pe26Ze05Li6IDXnp5JcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogNTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuaXNTaG93ID0gZmFsc2U7XHJcblx0XHRcdFx0fSlcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY05ldygpIHtcclxuXHRcdFx0XHR2YXIgc3RyID0gXCJcIjtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0aWYgKHBsdXMub3MubmFtZSA9PSBcIkFuZHJvaWRcIikge1xyXG5cdFx0XHRcdFx0XHR2YXIgTmV0d29ya0ludGVyZmFjZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEubmV0Lk5ldHdvcmtJbnRlcmZhY2VcIik7XHJcblx0XHRcdFx0XHRcdHZhciBuZXR3b3JrSW50ZXJmYWNlID0gTmV0d29ya0ludGVyZmFjZS5nZXRCeU5hbWUoXCJ3bGFuMFwiKTtcclxuXHRcdFx0XHRcdFx0dmFyIGJ5dGVzID0gbmV0d29ya0ludGVyZmFjZS5nZXRIYXJkd2FyZUFkZHJlc3MoKTtcclxuXHRcdFx0XHJcblx0XHRcdFx0XHRcdC8v5bCGYnl0ZVtdIOi9rOaNouaIkCBTdHJpbmdcclxuXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdHZhciB0bXAgPSBcIlwiO1xyXG5cdFx0XHRcdFx0XHRcdHZhciBudW0gPSBieXRlc1tpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAobnVtIDwgMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gKDI1NSArIG51bSArIDEpLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRtcC5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gXCIwXCIgKyB0bXA7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHN0ciArPSAoaSA9PSAwKSA/ICh0bXApIDogKFwiOlwiICsgdG1wKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRcdFx0c3RyID0gXCIwMjowMDowMDowMDowMDowMFwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0XHR9LFxyXG5cclxuICAgICAgICAgICAgY2FuY2VsKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDnm7TmjqXnlKggZmxhZyDliKTmlq1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc0JpbmRlZEN1dHRlckZsYWcpIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflvZPliY3lt6XljZXlt7Lnu5HlrprliIDlhbfvvIzkuI3og73muIXnqbrph43pgIknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhzID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9NZXNPcmRlclNlbGVjdC9SZW1vdmVcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXREYXRlOiBlZGl0RGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnRiQmlsbExpc3QgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTaG93VGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG5cdFx0XHRmb3JtYXREYXRlKGRhdGUpIHtcclxuXHRcdFx0XHRsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsgLy8g6I635Y+W5bm05Lu9XHJcblx0XHRcdFx0bGV0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaciOS7veW5tuihpembtlxyXG5cdFx0XHRcdGxldCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaXpeacn+W5tuihpembtlxyXG5cdFx0XHRcdHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gOyAvLyDov5Tlm57moLzlvI/ljJblkI7nmoTlrZfnrKbkuLJcclxuXHRcdFx0fSxcclxuXHRcdFx0c2VsZWN0aW9uQ2hhbmdlKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWNlemAieebtOaOpei1i+WAvFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4cyA9IFtlLmRldGFpbC5pbmRleF07XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZWxlY3RlZEl0ZW1zKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXhzLm1hcChpID0+IHRoaXMudGFibGVEYXRhW2ldKVxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGNoYW5nZVRhYihpbmRleCkge1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IGluZGV4O1xyXG5cdFx0XHRcdC8vIOW9k+WIh+aNouWIsOW3peWNlemAieaLqemhtemdoihpbmRleCA9PT0gNynml7boh6rliqjliLfmlrBcclxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDcpIHtcclxuXHRcdFx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDph43nva7oh6rliqjot7PovazorqHml7blmahcclxuXHRcdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhpbmRleCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTWFjaGluZUNoYW5nZShldmVudCkge1xyXG5cclxuXHRcdFx0XHR0aGlzLm1hY2hpbmVOYW1lID0gZXZlbnQ7XHJcblxyXG5cdFx0XHRcdHRoaXMubWFjaGluZU5vID0gdGhpcy5tYWNoaW5lW3RoaXMubWFjaGluZUxpc3QuaW5kZXhPZihldmVudCldLm1hY2hpbmVObztcclxuXHJcblx0XHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nLCB0aGlzLm1hY2hpbmVObyk7XHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTmFtZScsIHRoaXMubWFjaGluZU5hbWUpO1xyXG5cclxuXHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkVuZ2luZWVyaW5nTm9DaGFuZ2UoZXZlbnQpIHtcclxuXHJcblx0XHRcdFx0bGV0IG9yZGUgPSB0aGlzLmVuZ2luZWVyaW5nTm9MaXN0W3RoaXMuZW5naW5lZXJpbmdOb01hcExpc3QuaW5kZXhPZihldmVudCldO1xyXG5cclxuXHRcdFx0XHR0aGlzLmVuZ2luZWVyaW5nTm8gPSBvcmRlLm1vbGRJZDtcclxuXHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWEoKTtcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY2hpbmVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9NZXNNYWNoaW5lL0dldEluamVjdGlvbk1hY2hpbmVcIixcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLm1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTGlzdCA9IHRoaXMubWFjaGluZS5tYXAocyA9PiBzLm1hY2hpbmVOYW1lKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4gICAgICAgICAgICAvL+iOt+WPluihqOagvOeahOaVsOaNrua6kFxyXG4gICAgICAgICAgICBnZXRXb21kYWFJc1Nob3coKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2hvd1RhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWPquWIpOaWreesrOS4gOadoe+8iOWPquWFgeiuuOS4gOadoeW3peWNle+8iVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pc1Nob3dUYWJsZURhdGFbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0JpbmRlZEN1dHRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kZWRDdXR0ZXIgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xJZCAmJiBvcmRlci5vdXRUb29sSWQudG9TdHJpbmcoKS50cmltKCkgIT09ICcnKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xDb2RlICYmIG9yZGVyLm91dFRvb2xDb2RlLnRyaW0oKSAhPT0gJycpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIub3V0VG9vbE5hbWUgJiYgb3JkZXIub3V0VG9vbE5hbWUudHJpbSgpICE9PSAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWtmOWCqOWIsCBkYXRhIOWPmOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQmluZGVkQ3V0dGVyRmxhZyA9IGhhc0JpbmRlZEN1dHRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG93VGFibGVEYXRhLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnZGFhMDAxJywgdGhpcy5pc1Nob3dUYWJsZURhdGFbMF0uZGFhMDAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdpZCcsIHRoaXMuaXNTaG93VGFibGVEYXRhWzBdLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGlzU2hvd1RhYigpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd1RhYmxlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5bey5pyJ5q2j5Zyo5pON5L2c55qE5bel5Y2V77yM5LiN6IO95YaN5qyh6YCJ5oupJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8g6buY6K6k6YCJ5Lit4oCc5b6F5byA5bel4oCdXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZWVyaW5nTm8gPSAn5b6F5byA5bel44CB5pyq5byA5bel44CB5pqC5YGcJztcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyDkuIvmi4nmoYblj6rmmL7npLrlkIjlubblkI7nmoTnirbmgIHlkozlhbblroPnirbmgIFcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdOb01hcExpc3QgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W8gOW3pScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+WujOW3pSdcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICAvLyDpu5jorqTmmL7npLrigJzlvoXlvIDlt6XigJ3lt6XljZVcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g5LiL5ouJ5qGG6YCJ5Lit5ZCO77yM5oyJ54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIG9uRW5naW5lZXJpbmdOb0NoYW5nZShzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdObyA9IHN0YXR1cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuXHRcdFx0Z2V0V29tZGFhKCkge1xyXG5cclxuXHRcdFx0XHRsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5TWFjaGluZVwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG5cdFx0XHRcdFx0XHRlZGl0RGF0ZTogZWRpdERhdGVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgLy8g5oyJ5bel5Y2V54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIGdldFdvbWRhYUJ5U3RhdHVzKCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXR1c0FyciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZW5naW5lZXJpbmdObyA9PT0gJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNBcnIgPSBbJ+W+heW8gOW3pScsICfmnKrlvIDlt6UnLCAn5pqC5YGcJ107XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0FyciA9IFt0aGlzLmVuZ2luZWVyaW5nTm9dO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5RW5naW5lZXJpbmdOb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJTdGF0dXM6IHN0YXR1c0FycixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERhdGU6IGVkaXREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHR0b0RldGFpbChpdGVtKSB7XHJcblx0XHRcdFx0dGhpcy5vcmRlcklkID0gaXRlbS5pZDtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkT3JkZXIgPSBpdGVtLmRhYTAwMTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdENvZGUgPSBpdGVtLmRhYTAwMjsgLy8g5Lqn5ZOB57yW56CBXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RTcGVjID0gaXRlbS5kYWEwMDQ7IC8vIOS6p+WTgeinhOagvFxyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IDA7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge31cclxuXHR9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG5cclxuICAgIDpkZWVwKC5jaGVja2JveCksXHJcbiAgICA6ZGVlcCguY2hlY2tib3hfX2lubmVyKSB7XHJcbiAgICAgICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBtaW4td2lkdGg6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBtaW4taGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRhYmxlLWxheW91dDogYXV0byAhaW1wb3J0YW50OyAvLyDorqnooajmoLzoh6rliqjliIbphY3lrr3luqZcclxuICAgIH1cclxuXHJcbiAgICAucm93LXNlbGVjdGVkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBmM2ZmICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG5cdC5mb250IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0fVxyXG5cclxuXHJcblx0Lyog5LiK6YOo5Yy65Z+f5qC35byP77yM5bemNzAlIOWPszMwJSAqL1xyXG5cdC50b3Atc2VjdGlvbiB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0cGFkZGluZzogMjBweCAxMHB4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG5cdFx0Lyog5aKe5Yqg5LiK5LiL55qEcGFkZGluZyAqL1xyXG5cdH1cclxuXHJcblx0LnJpZ2h0LXNpZGUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcclxuXHRcdHBhZGRpbmc6IDE2cHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRib3JkZXItcmFkaXVzOiA4cHg7XHJcblx0XHR3aWR0aDogMjUlO1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdH1cclxuXHJcblx0LmZvcm0tcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxLjJ2aDtcclxuXHR9XHJcblxyXG5cdC5mb3JtLWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDMwJTtcclxuXHR9XHJcblxyXG5cdC5pbnAge1xyXG5cdFx0d2lkdGg6IDkwJTtcclxuXHRcdHBhZGRpbmc6IDRweDtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0XHRtYXJnaW4tdG9wOiA0cHg7XHJcblx0fVxyXG5cclxuXHQuc3RhdHVzLWJsb2NrIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtYmxvY2sgcCB7XHJcblx0XHRtYXJnaW46IDhweCAwO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHQubGVmdC1zaWRlIHtcclxuXHRcdHdpZHRoOiA2NSU7XHJcblx0fVxyXG5cclxuXHQudGFibGUtcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRwYWRkaW5nOiA4cHg7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHQudGFibGUtY2VsbCB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0Lyog5Y2h54mH5qC35byPICovXHJcbiAgICAuY2FyZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICAgICAgcGFkZGluZzogMDsgLy8g5Y676Zmk5aSa5L2Z5YaF6L656LedXHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7IC8vIOWhq+a7oeeItuWuueWZqFxyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4vKiAgICAvLy5jb250ZW50IHtcclxuICAgIC8vICAgIGZsZXg6IDE7XHJcbiAgICAvLyAgICBwYWRkaW5nOiAxdmggMXZ3OyAvLyDkv53or4HmlbTkvZPmnInlt6blj7PnlZnnmb1cclxuICAgIC8vICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgLy8gICAgZm9udC1zaXplOiAxLjV2dztcclxuICAgIC8vfSovXHJcblxyXG5cdC8qIOWNoeeJh+agh+mimOWcqOW3puS4iuinkiAqL1xyXG5cdC5jYXJkLWhlYWRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IC0xMHB4O1xyXG5cdFx0bGVmdDogMTZweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcblx0XHRwYWRkaW5nOiAycHggOHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0fVxyXG5cclxuXHQvKiDkuK3pg6jljLrln5/vvIzmr4/ooYwz5Liq5a2X5q61ICovXHJcblx0LnN0YXR1cy1yb3csXHJcblx0LmNoZWNrLXJvdyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtcm93IGxhYmVsLFxyXG5cdC5jaGVjay1yb3cgbGFiZWwge1xyXG5cdFx0d2lkdGg6IDMwJTtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtcm93IGlucHV0LFxyXG5cdC5jaGVjay1yb3cgaW5wdXQge1xyXG5cdFx0d2lkdGg6IDY1JTtcclxuXHR9XHJcblxyXG5cdC8v5Z+656GA5qC35byPXHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHR9XHJcblxyXG5cdC50YWItYmFyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcblx0XHRwYWRkaW5nOiAxdmg7XHJcblx0XHRwYWRkaW5nLXRvcDogMzBweDtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuXHJcblx0LnRvcC1yaWdodCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDEwcHg7XHJcblx0XHRyaWdodDogNTBweDtcclxuXHRcdHotaW5kZXg6IDEwMDA7XHJcblx0fVxyXG5cclxuXHQucmVmcmVzaC1idG4ge1xyXG5cdFx0cGFkZGluZzogMTBweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG5cclxuXHQudGFiLWl0ZW0ge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1yaWdodDogMC41dnc7XHJcblx0XHRwYWRkaW5nOiAxdmg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAwLjV2dztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XHJcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGNvbG9yIDAuM3M7XHJcblx0XHRib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG5cdH1cclxuXHJcblx0LnRhYi1pdGVtLmFjdGl2ZSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YWZmO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmb250LXdlaWdodDogNjAwO1xyXG5cdFx0Ym94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMTIyLCAyNTUsIDAuMyk7XHJcblx0fVxyXG5cclxuXHQuY29udGVudCB7XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0cGFkZGluZzogMXZoIDF2dztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdH1cclxuXHJcbiAgICAucGlja2VyIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzJweCAhaW1wb3J0YW50OyAvLyDlvLrliLblpKflrZfkvZPvvIzpgILphY3kvY7lr4bluqZcclxuICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OyAvLyDorqnpgInmi6nmoYbpq5jluqbkuZ/lj5jlpKdcclxuICAgICAgICBsaW5lLWhlaWdodDogNjBweDtcclxuICAgICAgICBwYWRkaW5nOiA1LjVweCAxcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgLy8g6L+Z6YeM5pS55Li66JOd6ImyXHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwN2FmZjsgLy8g6L655qGG5Lmf5pS55Li66JOd6ImyXHJcbiAgICAgICAgY29sb3I6ICMwMDdhZmY7IC8vIOWtl+S9k+minOiJsuaUueS4uueZveiJsu+8jOS/neivgeWPr+ivu+aAp1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XHJcbiAgICB9XHJcblxyXG4gICAgLnRoIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgaGVpZ2h0OiA2dmg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzU1NTtcclxuICAgICAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyog5Li76KGo5qC86L655qGG5qC35byPICovXHJcbiAgICB1bmktdGFibGUge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkMDAgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnVuaS10aCwgLnVuaS10ZCB7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzU1NSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHotaW5kZXg6IDEgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1pbnB1dCB7XHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICBtYXgtd2lkdGg6IDE4MHB4O1xyXG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIOiuvue9ruiDjOaZr+S4uumAj+aYjiAqL1xyXG4gICAgfVxyXG5cclxuXHQvKiDlupXpg6jkv53lrZjlkozlj5bmtojmjInpkq4gKi9cclxuICAgIC5ib3R0b20tc2VjdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAydmg7XHJcbiAgICAgICAgcGFkZGluZzogMnZoIDF2dztcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OyAvLyDlh4/lsI/pobbpg6jovrnot53vvIznoa7kv53mjInpkq7lnKjlvLnnqpflhoXmraPnoa7mmL7npLpcclxuICAgIH1cclxuXHJcblx0LnNhdmUtYnRuLFxyXG5cdC5jYW5jZWwtYnRuIHtcclxuXHRcdHdpZHRoOiA0OCU7XHJcblx0XHRwYWRkaW5nOiAxLjV2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMGEyZTk7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdFx0Ym94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG5cdH1cclxuXHRcclxuXHQuY2FuY2VsLWJ0biB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBMkU5O1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdH1cclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHotaW5kZXg6IDIwMDA7IC8vIOWinuWKoHotaW5kZXjvvIznoa7kv53lvLnnqpflnKjliLfmlrDmjInpkq7kuYvkuIpcclxuICAgIH1cclxuXHJcbiAgICAucG9wdXAge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgcGFkZGluZzogMnZoIDJ2aCA4dmggMnZoOyAvLyDlop7liqDlupXpg6jlhoXovrnot53vvIzkuLrmjInpkq7nlZnlh7rnqbrpl7RcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgICAgICB3aWR0aDogOTAuMTZ2dzsgLy8g5Y6f5p2l55qEOTh2d+e8qeWwjzglICg5OHZ3ICogMC45MilcclxuICAgICAgICBoZWlnaHQ6IDY4dmg7IC8vIOWOn+adpeeahDg1dmjnvKnlsI8yMCUgKDg1dmggKiAwLjgpXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZ2dztcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyDnoa7kv53lhoXovrnot53kuI3lvbHlk43mgLvlsLrlr7hcclxuICAgIH1cclxuXHJcblx0LnByaW50LWJ0biB7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdG1hcmdpbi10b3A6IDRweDtcclxuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwQTJFOTtcclxuXHRcdHBhZGRpbmc6IDBweCA5MHB4O1xyXG5cdFx0Ym9yZGVyOiAycHggc29saWQgIzAwQTJFOTtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDAuOHZ3O1xyXG5cdH1cclxuXHJcbiAgICAubWFjaGluZS1uYW1lLWJveCB7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwN2FmZjsgLyog6JOd6Imy6L655qGGICovXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzNweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjhweDsgLyog5LiK5LiLMjBweO+8jOW3puWPszQ4cHjvvIzlop7liqDlhoXovrnot50gKi9cclxuICAgICAgICB3aWR0aDogMzAwcHg7IC8qIOabtOWuve+8jOS/neivgeWGheWuueWujOaVtOaYvuekuiAqL1xyXG4gICAgICAgIGhlaWdodDogNzBweDsgLyog5aKe5Yqg6auY5bqmICovXHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGNvbG9yOiAjMjIyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4vKiAgICAvL3YtZGVlcCAuY2hlY2tib3gge1xyXG4gICAgLy8gICAgcGFkZGluZzogMTAgMTBweDtcclxuICAgIC8vICAgIHdpZHRoOiAyNnB4O1xyXG4gICAgLy8gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xyXG4gICAgLy8gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIC8vICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAvLyAgICBjb2xvcjogIzMzMztcclxuICAgIC8vICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAvLyAgICBib3JkZXItYm90dG9tOiAxcHggI2ViZWVmNSBzb2xpZDtcclxuICAgIC8vICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIC8vfSovXHJcblxyXG4gICAgLnBvcHVwIC5jYXJkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IC8vIOWOn+adpTI1MHB477yM5pS55Li6NDBweO+8jOepuueZveaYjuaYvuWHj+WwkVxyXG4gICAgfVxyXG5cclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxOTIwcHgpIHtcclxuXHRcdC50YWItaXRlbSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdH1cclxuXHJcblx0XHQuY29udGVudCB7XHJcblx0XHRcdHBhZGRpbmc6IDF2dztcclxuXHRcdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5mb3JtLWlucHV0IHtcclxuXHRcdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgICAudW5pLXRkLFxyXG4gICAgdGQge1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgLy8g5YWB6K646Ieq5Yqo5o2i6KGMXHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsICFpbXBvcnRhbnQ7IC8vIOWNleivjS/kuK3mlofpg73og73mlq3ooYxcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40OyAvLyDooYzpq5jpgILlvZPvvIzkvr/kuo7lpJrooYzmmL7npLpcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8vIOWxheS4reaYvuekuu+8iOWmgumcgOW3puWvuem9kOWPr+aUueS4uiBsZWZ077yJXHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8g5Z6C55u05bGF5LitXHJcbiAgICAgICAgbWF4LXdpZHRoOiAxODBweDsgLy8g5L+d5oyB5Y2V5YWD5qC85pyA5aSn5a695bqmXHJcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgLy8g5YW85a655oCn5pu05aW9XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIOiuvue9ruiDjOaZr+S4uumAj+aYjiAqL1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOW8ueeql+WGheihqOagvOagt+W8j+S4jueUn+S6p+aKpeW3pemhtemdouWOhuWPsuaKpeW3peiusOW9leihqOagvOS4gOiHtFxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgLnVuaS10aCxcclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIC51bmktdGQge1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyog6K6+572u6IOM5pmv5Li66YCP5piOICovXHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzU1NSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAucG9wdXAgLmxhcmdlLXNlbGVjdGlvbi10YWJsZSAudW5pLXRoIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qIOW8ueeql+ihqOagvOWkluahhue6vyAqL1xyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkMDAgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0LWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDE1MHB4OyAvLyDljp/mnaXnmoQ3MCUgKDE4MHB4ICogMC43KVxyXG4gICAgICAgIGhlaWdodDogNzVweDsgLy8g5Y6f5p2l55qENjUlICg4MHB4ICogMC42NSlcclxuICAgICAgICBmb250LXNpemU6IDIycHg7IC8vIOWtl+S9k+S5n+eVpeWkp1xyXG4gICAgICAgIC8vZm9udC13ZWlnaHQ6IDIwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMEEyRTk7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgIH1cclxuXHJcbiAgICAudG9wLXNlY3Rpb24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tcm93LmFsaWduLXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLm1hY2hpbmUtbmFtZS1ib3gge1xyXG4gICAgICAgIGZsZXg6IDEgMSA0NSU7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWdyb3VwIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZmxleDogMSAxIDQ1JTtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm9yZGVyLWxhYmVsIHtcclxuICAgICAgICBmb250LWZhbWlseTogZmFudGFzeTtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnByaW50LWJ0biB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAudG9wLXJpZ2h0IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAtMzBweDsgLy8g5b6A5LiK56e7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgIH1cclxuXHJcbi8qIOaUvuWkp+ihqOWktOWSjOihqOagvOWGheWuueWtl+S9kyAqL1xyXG4gICAgLnRoLFxyXG4gICAgLnVuaS10aCxcclxuICAgIHRoIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgLnRoLFxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgLnVuaS10aCxcclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIHRoIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcblx0Lyog6ZKI5a+5MTI4MHg4MDDnmoTlubPmnb/kvb/nlKjlqpLkvZPmn6Xor6Lov5vooYzpgILphY0gKi9cclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTIwcHgpIHtcclxuXHRcdC5yaWdodC1zaWRlIHtcclxuXHRcdFx0d2lkdGg6IDMwJTtcclxuXHRcdH1cclxuXHJcblx0XHQuc2F2ZS1idG4sXHJcblx0XHQuY2FuY2VsLWJ0biB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdH1cclxuXHJcblx0XHQuaW5wIHtcclxuXHRcdFx0d2lkdGg6IDg1JTtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zdGF0dXMtYmxvY2sgcCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdH1cclxuXHJcblx0XHQudW5pLXRyLFxyXG5cdFx0LnVuaS10ZCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _WorkOrderStatus = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderStatus.vue */ 53));\nvar _uniTable = _interopRequireDefault(__webpack_require__(/*! ../uni_modules/uni-table/components/uni-table/uni-table.vue */ 14));\nvar _mold = _interopRequireDefault(__webpack_require__(/*! ../components/mold.vue */ 58));\nvar _machine = _interopRequireDefault(__webpack_require__(/*! ../components/machine.vue */ 63));\nvar _WorkOrderPrint = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderPrint.vue */ 68));\nvar _WorkOrder = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrder.vue */ 74));\nvar _Technology = _interopRequireDefault(__webpack_require__(/*! ../components/Technology.vue */ 79));\nvar _PDFShow = _interopRequireDefault(__webpack_require__(/*! ../components/PDFShow.vue */ 84));\nvar _PrintInit = _interopRequireDefault(__webpack_require__(/*! ../components/PrintInit.vue */ 89));\nvar _PrintTest = _interopRequireDefault(__webpack_require__(/*! ../components/PrintTest.vue */ 94));\nvar _EquipmentInspection = _interopRequireDefault(__webpack_require__(/*! ../components/EquipmentInspection.vue */ 99));\nvar _moldRecord = _interopRequireDefault(__webpack_require__(/*! ../pages/moldRecord.vue */ 115));\nvar _methods;\nvar _default = {\n components: {\n Technology: _Technology.default,\n WorkOrder: _WorkOrder.default,\n WorkOrderPrint: _WorkOrderPrint.default,\n Machine: _machine.default,\n Mold: _mold.default,\n UniTable: _uniTable.default,\n WorkOrderStatus: _WorkOrderStatus.default,\n PDFShow: _PDFShow.default,\n PrintInit: _PrintInit.default,\n PrintTest: _PrintTest.default,\n EquipmentInspection: _EquipmentInspection.default,\n MoldRecord: _moldRecord.default\n },\n data: function data() {\n var _ref;\n return _ref = {\n orderStatus: '',\n // 榛樿鍏ㄩ儴\n currentTab: 7,\n productCode: '',\n // 浜у搧缂栫爜\n productSpec: '',\n // 浜у搧瑙勬牸\n\n machineList: [],\n machine: [],\n engineeringNoList: [],\n engineeringNoMapList: [],\n engineeringNo: '',\n machineNo: '',\n machineName: '',\n tableData: [],\n isShowTableData: []\n }, (0, _defineProperty2.default)(_ref, \"orderStatus\", '寮�宸�'), (0, _defineProperty2.default)(_ref, \"selectedOrder\", ''), (0, _defineProperty2.default)(_ref, \"orderId\", 0), (0, _defineProperty2.default)(_ref, \"selectedIndexs\", []), (0, _defineProperty2.default)(_ref, \"isShow\", false), (0, _defineProperty2.default)(_ref, \"autoRedirectTimer\", null), (0, _defineProperty2.default)(_ref, \"autoRedirectTime\", 5 * 60 * 1000), _ref;\n },\n created: function created() {\n //璋冭瘯浣跨敤鐨勪唬鐮乗n // this.machineNo = uni.getStorageSync('machineNo');\n // this.machineName = uni.getStorageSync('machineName');\n //\n // if (this.machineNo) {\n // this.getWomdaaIsShow();\n // }\n\n uni.clearStorageSync();\n this.checkForUpdate();\n\n //宸ユ帶鏈轰娇鐢ㄧ殑浠g爜\n this.getPrintInfo();\n },\n onLoad: function onLoad(options) {\n this.getMachineList();\n },\n onShow: function onShow() {\n this.refresh();\n this.resetAutoRedirectTimer();\n },\n methods: (_methods = {\n onRowClick: function onRowClick(index) {\n this.selectedIndexs = [index]; // 鍗曢�塡n // 鎵嬪姩瑙﹀彂 selectionChange 浠ュ悓姝ュ閫夋\n this.selectionChange({\n detail: {\n index: index\n }\n });\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n },\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n resetAutoRedirectTimer: function resetAutoRedirectTimer() {\n var _this = this;\n // 娓呴櫎鐜版湁鐨勫畾鏃跺櫒\n if (this.autoRedirectTimer) {\n clearTimeout(this.autoRedirectTimer);\n this.autoRedirectTimer = null;\n }\n\n // 闄や簡涓婚〉(0)銆佸伐鍗曢�夋嫨椤�(7)銆佺敓浜ф姤宸ラ〉(4)涔嬪鐨勯〉闈㈡墠璁剧疆鑷姩璺宠浆\n if (this.currentTab !== 0 && this.currentTab !== 7 && this.currentTab !== 4) {\n this.autoRedirectTimer = setTimeout(function () {\n // 璺宠浆鍥炰富椤礬n _this.currentTab = 0;\n // 鏄剧ず鎻愮ず淇℃伅\n uni.showToast({\n title: '椤甸潰瓒呮椂锛岃嚜鍔ㄨ繑鍥炰富椤�',\n icon: 'none',\n duration: 2000\n });\n }, this.autoRedirectTime);\n }\n },\n checkForUpdate: function checkForUpdate() {\n var _this2 = this;\n this.$post({\n url: \"/DevMachine/getAppUpgradeInfo\",\n data: {}\n }).then(function (res) {\n var newVersion = res.data.version;\n var currentVersion = uni.getSystemInfoSync(); // 鑾峰彇褰撳墠 APK 鐗堟湰鍙穃n\n if (newVersion > currentVersion.appVersion) {\n uni.showModal({\n title: \"鍙戠幇鏂扮増鏈琝",\n content: \"鏄惁涓嬭浇鏈�鏂扮増鏈�?\",\n success: function success(modalRes) {\n if (modalRes.confirm) {\n _this2.downloadNewApk(res.data.apkUrl);\n }\n }\n });\n //this.downloadNewApk(res.data.apkUrl);\n _this2.updateChecked = true; // 鏍囪鏇存柊宸叉鏌ヨ繃\n // // 濡傛灉鏈夋柊鐗堟湰锛屽紑濮嬩笅杞絓n //download(res.data.apkUrl);\n }\n });\n },\n downloadNewApk: function downloadNewApk(apkUrl) {\n uni.showToast({\n title: \"寮�濮嬩笅杞芥洿鏂�...\",\n icon: \"none\",\n duration: 2000\n });\n uni.downloadFile({\n url: apkUrl,\n success: function success(res) {\n if (res.statusCode === 200) {\n plus.runtime.install(res.tempFilePath, {\n force: true\n }, function () {\n __f__(\"log\", \"瀹夎鎴愬姛锛岄噸鍚簲鐢╘", \" at pages/index.vue:437\");\n //plus.runtime.restart();\n //plus.runtime.quit();\n // uni.navigateBack()\n }, function (e) {\n __f__(\"error\", \"瀹夎澶辫触:\", e, \" at pages/index.vue:442\");\n });\n }\n },\n fail: function fail(err) {\n __f__(\"error\", \"涓嬭浇澶辫触:\", err, \" at pages/index.vue:447\");\n uni.showToast({\n title: \"涓嬭浇澶辫触锛岃妫�鏌ョ綉缁淺",\n icon: \"none\",\n duration: 2000\n });\n }\n });\n },\n refresh: function refresh() {\n this.getMachineList();\n this.getPrintInfo();\n this.getWomdaaIsShow();\n },\n getPrintInfo: function getPrintInfo() {\n var _this3 = this;\n var mac = \"\";\n mac = \"74:24:ca:4f:b7:4d\";\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this3.machineNo = devMachine.machineNo;\n _this3.machineName = \"璋冭瘯妯″紡锛歕" + _this3.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this3.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n __f__(\"log\", devMachine.printMac, \" at pages/index.vue:479\");\n _this3.getWomdaaIsShow();\n });\n return;\n\n // \t\t\tif (plus.os.name == \"Android\") {\n // \t\t\t\t//鑾峰彇鎵嬫満MAC鍦板潃\n // \t\t\t\tvar Context = plus.android.importClass(\"android.content.Context\");\n // \t\t\t\tvar WifiManager = plus.android.importClass(\"android.net.wifi.WifiManager\");\n // \t\t\t\tvar wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);\n // \t\t\t\tvar WifiInfo = plus.android.importClass(\"android.net.wifi.WifiInfo\");\n // \t\t\t\tvar wifiInfo = wifiManager.getConnectionInfo();\n // \t\t\t\tmac = wifiInfo.getMacAddress();\n\n // \t\t\t\t//濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃\n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\tmac = this.getMacNew();\n // \t\t\t\t}\n // \t\t\t\t//濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛榎n // \t\t\t\tif (mac == \"02:00:00:00:00:00\") {\n // \t\t\t\t\treturn;\n // \t\t\t\t}\n // \t\t\t\tuni.setStorageSync('pdaMac', mac);\n\n // \t\t\t\tthis.$post({\n // \t\t\t\t\turl: \"/DevMachine/GetDevMachineByPdaMac\",\n // \t\t\t\t\tdata: {\n // \t\t\t\t\t\tpdaMac: mac,\n // \t\t\t\t\t}\n // \t\t\t\t}).then(res => {\n // \t\t\t\t\tlet devMachine = res.data.tbBillList;\n // \t\t\t\t\tthis.machineNo = devMachine.machineNo;\n // \t\t\t\t\tthis.machineName = \"褰撳墠鏈哄彴锛歕" + this.machineNo + \"鍙烽娇杞満\";\n\n // \t\t\t\t\tuni.setStorageSync('machineNo', this.machineNo);\n // \t\t\t\t\tuni.setStorageSync('printMac', devMachine.printMac);\n\n // \t\t\t\t\tthis.getWomdaaIsShow();\n\n // \t\t\t\t});\n // \t\t\t}\n },\n save: function save() {\n var _this4 = this;\n var data = this.selectedItems();\n if (data.length === 0) {\n this.$showMessage(\"璇烽�夋嫨涓�涓伐鍗昞");\n return;\n }\n if (data.length > 1) {\n this.$showMessage(\"涓�娆″彧鑳介�夊彇涓�涓伐鍗昞");\n return;\n }\n\n //let firstValue = data[0][\"moldId\"]; // 鑾峰彇绗竴涓璞$殑鎸囧畾灞炴�у�糪n\n //// 浣跨敤 every 鏂规硶妫�鏌ユ墍鏈夊璞$殑璇ュ睘鎬у�兼槸鍚︿竴鑷碶n //let flag = data.every(item => item[\"moldId\"] === firstValue);\n //if (!flag) {\n //\tthis.$showMessage(\"閫夊彇鐨刓" + data.length + \"涓伐鍗曚腑鐨勬ā鍏风紪鍙蜂笉涓�鑷碶");\n //\treturn;\n //}\n\n var orderSelect = [];\n data.forEach(function (s) {\n var entity = {\n orderId: s.id,\n orderNo: s.daa001\n };\n orderSelect.push(entity);\n });\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/MesOrderSelect/Add\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate,\n item: orderSelect\n }\n }).then(function (res) {\n if (res.data.tbBillList) {\n _this4.getWomdaaIsShow();\n uni.showToast({\n title: '淇濆瓨宸ュ崟鎴愬姛',\n //title: '灏嗘敞濉戞満寮�鍚堟ā鏁版竻0',\n //灏嗗�艰缃负 success 鎴栬�呯洿鎺ヤ笉鐢ㄥ啓icon杩欎釜鍙傛暟\n icon: 'success',\n //鏄剧ず鎸佺画鏃堕棿涓� 5绉抃n duration: 5000\n });\n }\n _this4.isShow = false;\n });\n },\n getMacNew: function getMacNew() {\n var str = \"\";\n try {\n if (plus.os.name == \"Android\") {\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var networkInterface = NetworkInterface.getByName(\"wlan0\");\n var bytes = networkInterface.getHardwareAddress();\n\n //灏哹yte[] 杞崲鎴� String\n for (var i = 0; i < bytes.length; i++) {\n var tmp = \"\";\n var num = bytes[i];\n if (num < 0) {\n tmp = (255 + num + 1).toString(16);\n } else {\n tmp = num.toString(16);\n }\n if (tmp.length == 1) {\n tmp = \"0\" + tmp;\n }\n str += i == 0 ? tmp : \":\" + tmp;\n }\n }\n } catch (err) {\n str = \"02:00:00:00:00:00\";\n }\n return str;\n },\n cancel: function cancel() {\n var _this5 = this;\n if (!this.machineNo) {\n return;\n }\n\n // 鐩存帴鐢� flag 鍒ゆ柇\n if (this.hasBindedCutterFlag) {\n uni.showToast({\n title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘娓呯┖閲嶉��',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n var editDate = this.formatDate(new Date());\n this.selectedIndexs = [];\n this.$post({\n url: \"/MesOrderSelect/Remove\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n if (res.data.tbBillList > 0) {\n _this5.isShowTableData = [];\n }\n });\n },\n formatDate: function formatDate(date) {\n var year = date.getFullYear(); // 鑾峰彇骞翠唤\n var month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆禱n var day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆禱n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day); // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆\n },\n selectionChange: function selectionChange(e) {\n // 鍗曢�夌洿鎺ヨ祴鍊糪n this.selectedIndexs = [e.detail.index];\n },\n selectedItems: function selectedItems() {\n var _this6 = this;\n return this.selectedIndexs.map(function (i) {\n return _this6.tableData[i];\n });\n },\n changeTab: function changeTab(index) {\n this.currentTab = index;\n // 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂癨n if (index === 7) {\n this.refresh();\n }\n // 閲嶇疆鑷姩璺宠浆璁℃椂鍣╘n this.resetAutoRedirectTimer();\n __f__(\"log\", index, \" at pages/index.vue:665\");\n },\n onMachineChange: function onMachineChange(event) {\n this.machineName = event;\n this.machineNo = this.machine[this.machineList.indexOf(event)].machineNo;\n uni.clearStorageSync();\n uni.setStorageSync('machineNo', this.machineNo);\n uni.setStorageSync('machineName', this.machineName);\n this.getWomdaaIsShow();\n },\n onEngineeringNoChange: function onEngineeringNoChange(event) {\n var orde = this.engineeringNoList[this.engineeringNoMapList.indexOf(event)];\n this.engineeringNo = orde.moldId;\n this.getWomdaa();\n },\n getMachineList: function getMachineList() {\n var _this7 = this;\n this.$post({\n url: \"/MesMachine/GetInjectionMachine\"\n }).then(function (res) {\n _this7.machine = res.data.tbBillList;\n _this7.machineList = _this7.machine.map(function (s) {\n return s.machineName;\n });\n });\n },\n //鑾峰彇琛ㄦ牸鐨勬暟鎹簮\n getWomdaaIsShow: function getWomdaaIsShow() {\n var _this8 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this8.isShowTableData = res.data.tbBillList;\n\n // 鍙垽鏂涓�鏉★紙鍙厑璁镐竴鏉″伐鍗曪級\n var order = _this8.isShowTableData[0];\n var hasBindedCutter = false;\n if (order) {\n hasBindedCutter = order.outToolId && order.outToolId.toString().trim() !== '' || order.outToolCode && order.outToolCode.trim() !== '' || order.outToolName && order.outToolName.trim() !== '';\n }\n // 瀛樺偍鍒� data 鍙橀噺\n _this8.hasBindedCutterFlag = hasBindedCutter;\n if (_this8.isShowTableData.length == 1) {\n uni.setStorageSync('daa001', _this8.isShowTableData[0].daa001);\n uni.setStorageSync('id', _this8.isShowTableData[0].id);\n }\n });\n },\n isShowTab: function isShowTab() {\n if (this.isShowTableData.length > 0) {\n uni.showToast({\n title: '宸叉湁姝e湪鎿嶄綔鐨勫伐鍗曪紝涓嶈兘鍐嶆閫夋嫨',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n this.isShow = true;\n // 榛樿閫変腑鈥滃緟寮�宸モ�漒n this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';\n this.tableData = [];\n // 涓嬫媺妗嗗彧鏄剧ず鍚堝苟鍚庣殑鐘舵�佸拰鍏跺畠鐘舵�乗n this.engineeringNoMapList = ['寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�', '寮�宸�', '瀹屽伐'];\n // 榛樿鏄剧ず鈥滃緟寮�宸モ�濆伐鍗昞n this.getWomdaaByStatus();\n }\n }, (0, _defineProperty2.default)(_methods, \"onEngineeringNoChange\", function onEngineeringNoChange(status) {\n this.engineeringNo = status;\n this.getWomdaaByStatus();\n }), (0, _defineProperty2.default)(_methods, \"getWomdaa\", function getWomdaa() {\n var _this9 = this;\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/Womdaa/GetWomdaasByMachine\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n _this9.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"getWomdaaByStatus\", function getWomdaaByStatus() {\n var _this10 = this;\n var editDate = this.formatDate(new Date());\n var statusArr = [];\n if (this.engineeringNo === '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�') {\n statusArr = ['寰呭紑宸�', '鏈紑宸�', '鏆傚仠'];\n } else {\n statusArr = [this.engineeringNo];\n }\n this.$post({\n url: \"/Womdaa/GetWomdaasByEngineeringNo\",\n data: {\n machineNo: this.machineNo,\n orderStatus: statusArr,\n editDate: editDate\n }\n }).then(function (res) {\n _this10.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"toDetail\", function toDetail(item) {\n this.orderId = item.id;\n this.selectedOrder = item.daa001;\n this.productCode = item.daa002; // 浜у搧缂栫爜\n this.productSpec = item.daa004; // 浜у搧瑙勬牸\n this.currentTab = 0;\n }), _methods),\n computed: {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJUZWNobm9sb2d5IiwiV29ya09yZGVyIiwiV29ya09yZGVyUHJpbnQiLCJNYWNoaW5lIiwiTW9sZCIsIlVuaVRhYmxlIiwiV29ya09yZGVyU3RhdHVzIiwiUERGU2hvdyIsIlByaW50SW5pdCIsIlByaW50VGVzdCIsIkVxdWlwbWVudEluc3BlY3Rpb24iLCJNb2xkUmVjb3JkIiwiZGF0YSIsIm9yZGVyU3RhdHVzIiwiY3VycmVudFRhYiIsInByb2R1Y3RDb2RlIiwicHJvZHVjdFNwZWMiLCJtYWNoaW5lTGlzdCIsIm1hY2hpbmUiLCJlbmdpbmVlcmluZ05vTGlzdCIsImVuZ2luZWVyaW5nTm9NYXBMaXN0IiwiZW5naW5lZXJpbmdObyIsIm1hY2hpbmVObyIsIm1hY2hpbmVOYW1lIiwidGFibGVEYXRhIiwiaXNTaG93VGFibGVEYXRhIiwiY3JlYXRlZCIsInVuaSIsImNsZWFyU3RvcmFnZVN5bmMiLCJjaGVja0ZvclVwZGF0ZSIsImdldFByaW50SW5mbyIsIm9uTG9hZCIsIm9wdGlvbnMiLCJnZXRNYWNoaW5lTGlzdCIsIm9uU2hvdyIsInJlZnJlc2giLCJyZXNldEF1dG9SZWRpcmVjdFRpbWVyIiwibWV0aG9kcyIsIm9uUm93Q2xpY2siLCJpbmRleCIsInNlbGVjdGVkSW5kZXhzIiwic2VsZWN0aW9uQ2hhbmdlIiwiZGV0YWlsIiwiYXV0b1JlZGlyZWN0VGltZXIiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwic2hvd1RvYXN0IiwidGl0bGUiLCJpY29uIiwiZHVyYXRpb24iLCJhdXRvUmVkaXJlY3RUaW1lIiwiJHBvc3QiLCJ1cmwiLCJ0aGVuIiwicmVzIiwibmV3VmVyc2lvbiIsInZlcnNpb24iLCJjdXJyZW50VmVyc2lvbiIsImdldFN5c3RlbUluZm9TeW5jIiwiYXBwVmVyc2lvbiIsInNob3dNb2RhbCIsImNvbnRlbnQiLCJzdWNjZXNzIiwibW9kYWxSZXMiLCJjb25maXJtIiwiZG93bmxvYWROZXdBcGsiLCJhcGtVcmwiLCJ1cGRhdGVDaGVja2VkIiwiZG93bmxvYWRGaWxlIiwic3RhdHVzQ29kZSIsInBsdXMiLCJydW50aW1lIiwiaW5zdGFsbCIsInRlbXBGaWxlUGF0aCIsImZvcmNlIiwiZSIsImZhaWwiLCJlcnIiLCJnZXRXb21kYWFJc1Nob3ciLCJtYWMiLCJwZGFNYWMiLCJkZXZNYWNoaW5lIiwidGJCaWxsTGlzdCIsInNldFN0b3JhZ2VTeW5jIiwicHJpbnRNYWMiLCJzYXZlIiwic2VsZWN0ZWRJdGVtcyIsImxlbmd0aCIsIiRzaG93TWVzc2FnZSIsIm9yZGVyU2VsZWN0IiwiZm9yRWFjaCIsInMiLCJlbnRpdHkiLCJvcmRlcklkIiwiaWQiLCJvcmRlck5vIiwiZGFhMDAxIiwicHVzaCIsImVkaXREYXRlIiwiZm9ybWF0RGF0ZSIsIkRhdGUiLCJpdGVtIiwiaXNTaG93IiwiZ2V0TWFjTmV3Iiwic3RyIiwib3MiLCJuYW1lIiwiTmV0d29ya0ludGVyZmFjZSIsImFuZHJvaWQiLCJpbXBvcnRDbGFzcyIsIm5ldHdvcmtJbnRlcmZhY2UiLCJnZXRCeU5hbWUiLCJieXRlcyIsImdldEhhcmR3YXJlQWRkcmVzcyIsImkiLCJ0bXAiLCJudW0iLCJ0b1N0cmluZyIsImNhbmNlbCIsImhhc0JpbmRlZEN1dHRlckZsYWciLCJkYXRlIiwieWVhciIsImdldEZ1bGxZZWFyIiwibW9udGgiLCJTdHJpbmciLCJnZXRNb250aCIsInBhZFN0YXJ0IiwiZGF5IiwiZ2V0RGF0ZSIsIm1hcCIsImNoYW5nZVRhYiIsIm9uTWFjaGluZUNoYW5nZSIsImV2ZW50IiwiaW5kZXhPZiIsIm9uRW5naW5lZXJpbmdOb0NoYW5nZSIsIm9yZGUiLCJtb2xkSWQiLCJnZXRXb21kYWEiLCJvcmRlciIsImhhc0JpbmRlZEN1dHRlciIsIm91dFRvb2xJZCIsInRyaW0iLCJvdXRUb29sQ29kZSIsIm91dFRvb2xOYW1lIiwiaXNTaG93VGFiIiwiZ2V0V29tZGFhQnlTdGF0dXMiLCJzdGF0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LENBQUMsWUFDRDtFQUNEeUksUUFBUSxFQUFFLENBQUM7QUFDWixDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG5cclxuaW1wb3J0IFdvcmtPcmRlclN0YXR1cyBmcm9tICcuLi9jb21wb25lbnRzL1dvcmtPcmRlclN0YXR1cy52dWUnOyAvLyDnoa7kv53ot6/lvoTmraPnoa5cclxuaW1wb3J0IFVuaVRhYmxlIGZyb20gXCIuLi91bmlfbW9kdWxlcy91bmktdGFibGUvY29tcG9uZW50cy91bmktdGFibGUvdW5pLXRhYmxlLnZ1ZVwiO1xyXG5pbXBvcnQgTW9sZCBmcm9tIFwiLi4vY29tcG9uZW50cy9tb2xkLnZ1ZVwiO1xyXG5pbXBvcnQgTWFjaGluZSBmcm9tIFwiLi4vY29tcG9uZW50cy9tYWNoaW5lLnZ1ZVwiO1xyXG5pbXBvcnQgV29ya09yZGVyUHJpbnQgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyUHJpbnQudnVlXCI7XHJcbmltcG9ydCBXb3JrT3JkZXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya09yZGVyLnZ1ZVwiO1xyXG5pbXBvcnQgVGVjaG5vbG9neSBmcm9tIFwiLi4vY29tcG9uZW50cy9UZWNobm9sb2d5LnZ1ZVwiO1xyXG5pbXBvcnQgUERGU2hvdyBmcm9tIFwiLi4vY29tcG9uZW50cy9QREZTaG93LnZ1ZVwiO1xyXG5pbXBvcnQgUHJpbnRJbml0IGZyb20gXCIuLi9jb21wb25lbnRzL1ByaW50SW5pdC52dWVcIjtcclxuaW1wb3J0IFByaW50VGVzdCBmcm9tIFwiLi4vY29tcG9uZW50cy9QcmludFRlc3QudnVlXCI7XHJcbmltcG9ydCBFcXVpcG1lbnRJbnNwZWN0aW9uIGZyb20gXCIuLi9jb21wb25lbnRzL0VxdWlwbWVudEluc3BlY3Rpb24udnVlXCI7XHJcbmltcG9ydCBNb2xkUmVjb3JkIGZyb20gXCIuLi9wYWdlcy9tb2xkUmVjb3JkLnZ1ZVwiO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRlY2hub2xvZ3ksXHJcblx0XHRcdFdvcmtPcmRlcixcclxuXHRcdFx0V29ya09yZGVyUHJpbnQsXHJcblx0XHRcdE1hY2hpbmUsXHJcblx0XHRcdE1vbGQsXHJcblx0XHRcdFVuaVRhYmxlLFxyXG5cdFx0XHRXb3JrT3JkZXJTdGF0dXMsXHJcblx0XHRcdFBERlNob3csXHJcblx0XHRcdFByaW50SW5pdCxcclxuXHRcdFx0UHJpbnRUZXN0LFxyXG5cdFx0XHRFcXVpcG1lbnRJbnNwZWN0aW9uLFxyXG5cdFx0XHRNb2xkUmVjb3JkXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyU3RhdHVzOiAnJywgLy8g6buY6K6k5YWo6YOoXHJcblx0XHRcdFx0Y3VycmVudFRhYjogNyxcclxuXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q29kZTogJycsIC8vIOS6p+WTgee8lueggVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFNwZWM6ICcnLCAvLyDkuqflk4Hop4TmoLxcclxuXHJcblx0XHRcdFx0bWFjaGluZUxpc3Q6IFtdLFxyXG5cclxuXHRcdFx0XHRtYWNoaW5lOiBbXSxcclxuXHJcblx0XHRcdFx0ZW5naW5lZXJpbmdOb0xpc3Q6IFtdLFxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nTm9NYXBMaXN0OiBbXSxcclxuXHRcdFx0XHRlbmdpbmVlcmluZ05vOiAnJyxcclxuXHJcblx0XHRcdFx0bWFjaGluZU5vOiAnJyxcclxuXHRcdFx0XHRtYWNoaW5lTmFtZTogJycsXHJcblxyXG5cdFx0XHRcdHRhYmxlRGF0YTogW10sXHJcblx0XHRcdFx0aXNTaG93VGFibGVEYXRhOiBbXSxcclxuXHJcblx0XHRcdFx0b3JkZXJTdGF0dXM6ICflvIDlt6UnLFxyXG5cdFx0XHRcdHNlbGVjdGVkT3JkZXI6ICcnLFxyXG5cdFx0XHRcdG9yZGVySWQ6IDAsXHJcblxyXG5cdFx0XHRcdHNlbGVjdGVkSW5kZXhzOiBbXSxcclxuXHJcblx0XHRcdFx0aXNTaG93OiBmYWxzZSxcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyDoh6rliqjot7Povaznm7jlhbNcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lcjogbnVsbCxcclxuXHRcdFx0XHRhdXRvUmVkaXJlY3RUaW1lOiA1ICogNjAgKiAxMDAwLCAvLyA15YiG6ZKfXHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHJcblx0XHRcdC8v6LCD6K+V5L2/55So55qE5Luj56CBXHJcblx0XHRcdC8vIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKTtcclxuXHRcdFx0Ly8gdGhpcy5tYWNoaW5lTmFtZSA9IHVuaS5nZXRTdG9yYWdlU3luYygnbWFjaGluZU5hbWUnKTtcclxuXHRcdFx0Ly9cclxuXHRcdFx0Ly8gaWYgKHRoaXMubWFjaGluZU5vKSB7XHJcblx0XHRcdC8vICAgdGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0Ly8gfVxyXG5cclxuXHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHRcdFx0XHJcblx0XHRcdHRoaXMuY2hlY2tGb3JVcGRhdGUoKTtcclxuXHRcdFx0XHJcblx0XHRcdC8v5bel5o6n5py65L2/55So55qE5Luj56CBXHJcblx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdHRoaXMuZ2V0TWFjaGluZUxpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcbiAgICAgICAgICAgIG9uUm93Q2xpY2soaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleHMgPSBbaW5kZXhdOyAvLyDljZXpgIlcclxuICAgICAgICAgICAgICAgIC8vIOaJi+WKqOinpuWPkSBzZWxlY3Rpb25DaGFuZ2Ug5Lul5ZCM5q2l5aSN6YCJ5qGGXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZSh7IGRldGFpbDogeyBpbmRleCB9IH0pO1xyXG4gICAgICAgICAgICAgICAgLy8g6YeN572u6Ieq5Yqo6Lez6L2s6K6h5pe25ZmoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOmHjee9ruiHquWKqOi3s+i9rOiuoeaXtuWZqFxyXG4gICAgICAgICAgICByZXNldEF1dG9SZWRpcmVjdFRpbWVyKCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5riF6Zmk546w5pyJ55qE5a6a5pe25ZmoXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvUmVkaXJlY3RUaW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9SZWRpcmVjdFRpbWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8g6Zmk5LqG5Li76aG1KDAp44CB5bel5Y2V6YCJ5oup6aG1KDcp44CB55Sf5Lqn5oql5bel6aG1KDQp5LmL5aSW55qE6aG16Z2i5omN6K6+572u6Ieq5Yqo6Lez6L2sXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiICE9PSAwICYmIHRoaXMuY3VycmVudFRhYiAhPT0gNyAmJiB0aGlzLmN1cnJlbnRUYWIgIT09IDQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9SZWRpcmVjdFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOi3s+i9rOWbnuS4u+mhtVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmmL7npLrmj5DnpLrkv6Hmga9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mhtemdoui2heaXtu+8jOiHquWKqOi/lOWbnuS4u+mhtScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmF1dG9SZWRpcmVjdFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHRjaGVja0ZvclVwZGF0ZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9nZXRBcHBVcGdyYWRlSW5mb1wiLFxyXG5cdFx0XHRcdFx0ZGF0YToge31cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGxldCBuZXdWZXJzaW9uID0gcmVzLmRhdGEudmVyc2lvbjtcclxuXHRcdFx0XHRcdGxldCBjdXJyZW50VmVyc2lvbiA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpOyAvLyDojrflj5blvZPliY0gQVBLIOeJiOacrOWPt1xyXG5cdFx0XHRcdFx0IFxyXG5cdFx0XHRcdFx0aWYgKG5ld1ZlcnNpb24gPiBjdXJyZW50VmVyc2lvbi5hcHBWZXJzaW9uKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBcIuWPkeeOsOaWsOeJiOacrFwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwi5piv5ZCm5LiL6L295pyA5paw54mI5pysP1wiLFxyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3M6IChtb2RhbFJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG1vZGFsUmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vdGhpcy5kb3dubG9hZE5ld0FwayhyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUNoZWNrZWQgPSB0cnVlOyAvLyDmoIforrDmm7TmlrDlt7Lmo4Dmn6Xov4dcclxuXHRcdFx0XHRcdFx0Ly8gICAgICAvLyDlpoLmnpzmnInmlrDniYjmnKzvvIzlvIDlp4vkuIvovb1cclxuXHRcdFx0XHRcdFx0Ly9kb3dubG9hZChyZXMuZGF0YS5hcGtVcmwpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHRkb3dubG9hZE5ld0FwayhhcGtVcmwpIHtcclxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdHRpdGxlOiBcIuW8gOWni+S4i+i9veabtOaWsC4uLlwiLFxyXG5cdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcclxuXHRcdFx0XHR1bmkuZG93bmxvYWRGaWxlKHtcclxuXHRcdFx0XHRcdHVybDogYXBrVXJsLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHBsdXMucnVudGltZS5pbnN0YWxsKHJlcy50ZW1wRmlsZVBhdGgsIHtcclxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fSwgZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWuieijheaIkOWKn++8jOmHjeWQr+W6lOeUqFwiKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnJlc3RhcnQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vcGx1cy5ydW50aW1lLnF1aXQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdFx0XHRcdH0sIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCLlronoo4XlpLHotKU6XCIsIGUpO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwi5LiL6L295aSx6LSlOlwiLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLkuIvovb3lpLHotKXvvIzor7fmo4Dmn6XnvZHnu5xcIixcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdHJlZnJlc2goKSB7XHJcblx0XHRcdFx0dGhpcy5nZXRNYWNoaW5lTGlzdCgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0UHJpbnRJbmZvKCkge1xyXG5cdFx0XHRcdHZhciBtYWMgPSBcIlwiO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1hYyA9IFwiNzQ6MjQ6Y2E6NGY6Yjc6NGRcIjtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hY2hpbmVOYW1lID0gXCLosIPor5XmqKHlvI/vvJpcIiArIHRoaXMubWFjaGluZU5vICsgXCLlj7fpvb/ova7mnLpcIlxyXG5cclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdC8vICBcdFx0XHRpZiAocGx1cy5vcy5uYW1lID09IFwiQW5kcm9pZFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0Ly/ojrflj5bmiYvmnLpNQUPlnLDlnYBcclxuXHQvLyAgXHRcdFx0XHR2YXIgQ29udGV4dCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQuY29udGVudC5Db250ZXh0XCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciBXaWZpTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmV0LndpZmkuV2lmaU1hbmFnZXJcIik7XHJcblx0Ly8gIFx0XHRcdFx0dmFyIHdpZmlNYW5hZ2VyID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKS5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuV0lGSV9TRVJWSUNFKTtcclxuXHQvLyAgXHRcdFx0XHR2YXIgV2lmaUluZm8gPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm5ldC53aWZpLldpZmlJbmZvXCIpO1xyXG5cdC8vICBcdFx0XHRcdHZhciB3aWZpSW5mbyA9IHdpZmlNYW5hZ2VyLmdldENvbm5lY3Rpb25JbmZvKCk7XHJcblx0Ly8gIFx0XHRcdFx0bWFjID0gd2lmaUluZm8uZ2V0TWFjQWRkcmVzcygpO1xyXG5cdFx0XHRcdFx0XHJcblx0Ly8gIFx0XHRcdFx0Ly/lpoLmnpxtYWPkuLrigJwwMjowMDowMDowMDowMDowMOKAne+8jOWImeWPr+iDveaYr+WuieWNkzYuMOS7peS4iueJiOacrO+8jOWImeS9v+eUqOWPpuS4gOenjeaWueazleiOt+WPlm1hY+WcsOWdgFxyXG5cdC8vICBcdFx0XHRcdGlmIChtYWMgPT0gXCIwMjowMDowMDowMDowMDowMFwiKSB7XHJcblx0Ly8gIFx0XHRcdFx0XHRtYWMgPSB0aGlzLmdldE1hY05ldygpO1xyXG5cdC8vICBcdFx0XHRcdH1cclxuXHQvLyAgXHRcdFx0XHQvL+WmguaenG1hY+S9v+eUqOaWsOaWueazleS+neeEtuaYr+KAnDAyOjAwOjAwOjAwOjAwOjAw4oCd5YiZ5LiN6L+b6KGM5L+d5a2YXHJcblx0Ly8gIFx0XHRcdFx0aWYgKG1hYyA9PSBcIjAyOjAwOjAwOjAwOjAwOjAwXCIpIHtcclxuXHQvLyAgXHRcdFx0XHRcdHJldHVybjtcclxuXHQvLyAgXHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwZGFNYWMnLCBtYWMpO1xyXG5cclxuXHQvLyAgXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHQvLyAgXHRcdFx0XHRcdHVybDogXCIvRGV2TWFjaGluZS9HZXREZXZNYWNoaW5lQnlQZGFNYWNcIixcclxuXHQvLyAgXHRcdFx0XHRcdGRhdGE6IHtcclxuXHQvLyAgXHRcdFx0XHRcdFx0cGRhTWFjOiBtYWMsXHJcblx0Ly8gIFx0XHRcdFx0XHR9XHJcblx0Ly8gIFx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdC8vICBcdFx0XHRcdFx0bGV0IGRldk1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSBkZXZNYWNoaW5lLm1hY2hpbmVObztcclxuXHQvLyAgXHRcdFx0XHRcdHRoaXMubWFjaGluZU5hbWUgPSBcIuW9k+WJjeacuuWPsO+8mlwiICsgdGhpcy5tYWNoaW5lTm8gKyBcIuWPt+m9v+i9ruaculwiO1xyXG5cclxuXHQvLyAgXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdC8vICBcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdwcmludE1hYycsIGRldk1hY2hpbmUucHJpbnRNYWMpO1xyXG4gXHJcblxyXG5cdC8vICBcdFx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHJcblx0Ly8gIFx0XHRcdFx0fSk7XHJcblx0Ly8gIFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2ZSgpIHtcclxuXHRcdFx0XHRsZXQgZGF0YSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG5cclxuXHRcdFx0XHRpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShcIuivt+mAieaLqeS4gOS4quW3peWNlVwiKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5LiA5qyh5Y+q6IO96YCJ5Y+W5LiA5Liq5bel5Y2VXCIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly9sZXQgZmlyc3RWYWx1ZSA9IGRhdGFbMF1bXCJtb2xkSWRcIl07IC8vIOiOt+WPluesrOS4gOS4quWvueixoeeahOaMh+WumuWxnuaAp+WAvFxyXG5cclxuXHRcdFx0XHQvLy8vIOS9v+eUqCBldmVyeSDmlrnms5Xmo4Dmn6XmiYDmnInlr7nosaHnmoTor6XlsZ7mgKflgLzmmK/lkKbkuIDoh7RcclxuXHRcdFx0XHQvL2xldCBmbGFnID0gZGF0YS5ldmVyeShpdGVtID0+IGl0ZW1bXCJtb2xkSWRcIl0gPT09IGZpcnN0VmFsdWUpO1xyXG5cdFx0XHRcdC8vaWYgKCFmbGFnKSB7XHJcblx0XHRcdFx0Ly9cdHRoaXMuJHNob3dNZXNzYWdlKFwi6YCJ5Y+W55qEXCIgKyBkYXRhLmxlbmd0aCArIFwi5Liq5bel5Y2V5Lit55qE5qih5YW357yW5Y+35LiN5LiA6Ie0XCIpO1xyXG5cdFx0XHRcdC8vXHRyZXR1cm47XHJcblx0XHRcdFx0Ly99XHJcblxyXG5cdFx0XHRcdGxldCBvcmRlclNlbGVjdCA9IFtdO1xyXG5cclxuXHRcdFx0XHRkYXRhLmZvckVhY2gocyA9PiB7XHJcblx0XHRcdFx0XHRsZXQgZW50aXR5ID0ge1xyXG5cdFx0XHRcdFx0XHRvcmRlcklkOiBzLmlkLFxyXG5cdFx0XHRcdFx0XHRvcmRlck5vOiBzLmRhYTAwMSxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdG9yZGVyU2VsZWN0LnB1c2goZW50aXR5KTtcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0bGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG5cclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvTWVzT3JkZXJTZWxlY3QvQWRkXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcblx0XHRcdFx0XHRcdGVkaXREYXRlOiBlZGl0RGF0ZSxcclxuXHRcdFx0XHRcdFx0aXRlbTogb3JkZXJTZWxlY3RcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRpZiAocmVzLmRhdGEudGJCaWxsTGlzdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5bel5Y2V5oiQ5YqfJyxcclxuXHRcdFx0XHRcdFx0XHQvL3RpdGxlOiAn5bCG5rOo5aGR5py65byA5ZCI5qih5pWw5riFMCcsXHJcblx0XHRcdFx0XHRcdFx0Ly/lsIblgLzorr7nva7kuLogc3VjY2VzcyDmiJbogIXnm7TmjqXkuI3nlKjlhplpY29u6L+Z5Liq5Y+C5pWwXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdC8v5pi+56S65oyB57ut5pe26Ze05Li6IDXnp5JcclxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogNTAwMFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuaXNTaG93ID0gZmFsc2U7XHJcblx0XHRcdFx0fSlcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY05ldygpIHtcclxuXHRcdFx0XHR2YXIgc3RyID0gXCJcIjtcclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0aWYgKHBsdXMub3MubmFtZSA9PSBcIkFuZHJvaWRcIikge1xyXG5cdFx0XHRcdFx0XHR2YXIgTmV0d29ya0ludGVyZmFjZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEubmV0Lk5ldHdvcmtJbnRlcmZhY2VcIik7XHJcblx0XHRcdFx0XHRcdHZhciBuZXR3b3JrSW50ZXJmYWNlID0gTmV0d29ya0ludGVyZmFjZS5nZXRCeU5hbWUoXCJ3bGFuMFwiKTtcclxuXHRcdFx0XHRcdFx0dmFyIGJ5dGVzID0gbmV0d29ya0ludGVyZmFjZS5nZXRIYXJkd2FyZUFkZHJlc3MoKTtcclxuXHRcdFx0XHJcblx0XHRcdFx0XHRcdC8v5bCGYnl0ZVtdIOi9rOaNouaIkCBTdHJpbmdcclxuXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdHZhciB0bXAgPSBcIlwiO1xyXG5cdFx0XHRcdFx0XHRcdHZhciBudW0gPSBieXRlc1tpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAobnVtIDwgMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gKDI1NSArIG51bSArIDEpLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRtcC5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dG1wID0gXCIwXCIgKyB0bXA7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHN0ciArPSAoaSA9PSAwKSA/ICh0bXApIDogKFwiOlwiICsgdG1wKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRcdFx0c3RyID0gXCIwMjowMDowMDowMDowMDowMFwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0XHR9LFxyXG5cclxuICAgICAgICAgICAgY2FuY2VsKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDnm7TmjqXnlKggZmxhZyDliKTmlq1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc0JpbmRlZEN1dHRlckZsYWcpIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflvZPliY3lt6XljZXlt7Lnu5HlrprliIDlhbfvvIzkuI3og73muIXnqbrph43pgIknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhzID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9NZXNPcmRlclNlbGVjdC9SZW1vdmVcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXREYXRlOiBlZGl0RGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnRiQmlsbExpc3QgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTaG93VGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG5cdFx0XHRmb3JtYXREYXRlKGRhdGUpIHtcclxuXHRcdFx0XHRsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsgLy8g6I635Y+W5bm05Lu9XHJcblx0XHRcdFx0bGV0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaciOS7veW5tuihpembtlxyXG5cdFx0XHRcdGxldCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIOiOt+WPluaXpeacn+W5tuihpembtlxyXG5cdFx0XHRcdHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gOyAvLyDov5Tlm57moLzlvI/ljJblkI7nmoTlrZfnrKbkuLJcclxuXHRcdFx0fSxcclxuXHRcdFx0c2VsZWN0aW9uQ2hhbmdlKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWNlemAieebtOaOpei1i+WAvFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4cyA9IFtlLmRldGFpbC5pbmRleF07XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZWxlY3RlZEl0ZW1zKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXhzLm1hcChpID0+IHRoaXMudGFibGVEYXRhW2ldKVxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGNoYW5nZVRhYihpbmRleCkge1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IGluZGV4O1xyXG5cdFx0XHRcdC8vIOW9k+WIh+aNouWIsOW3peWNlemAieaLqemhtemdoihpbmRleCA9PT0gNynml7boh6rliqjliLfmlrBcclxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDcpIHtcclxuXHRcdFx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDph43nva7oh6rliqjot7PovazorqHml7blmahcclxuXHRcdFx0XHR0aGlzLnJlc2V0QXV0b1JlZGlyZWN0VGltZXIoKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhpbmRleCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTWFjaGluZUNoYW5nZShldmVudCkge1xyXG5cclxuXHRcdFx0XHR0aGlzLm1hY2hpbmVOYW1lID0gZXZlbnQ7XHJcblxyXG5cdFx0XHRcdHRoaXMubWFjaGluZU5vID0gdGhpcy5tYWNoaW5lW3RoaXMubWFjaGluZUxpc3QuaW5kZXhPZihldmVudCldLm1hY2hpbmVObztcclxuXHJcblx0XHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nLCB0aGlzLm1hY2hpbmVObyk7XHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTmFtZScsIHRoaXMubWFjaGluZU5hbWUpO1xyXG5cclxuXHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkVuZ2luZWVyaW5nTm9DaGFuZ2UoZXZlbnQpIHtcclxuXHJcblx0XHRcdFx0bGV0IG9yZGUgPSB0aGlzLmVuZ2luZWVyaW5nTm9MaXN0W3RoaXMuZW5naW5lZXJpbmdOb01hcExpc3QuaW5kZXhPZihldmVudCldO1xyXG5cclxuXHRcdFx0XHR0aGlzLmVuZ2luZWVyaW5nTm8gPSBvcmRlLm1vbGRJZDtcclxuXHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWEoKTtcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE1hY2hpbmVMaXN0KCkge1xyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9NZXNNYWNoaW5lL0dldEluamVjdGlvbk1hY2hpbmVcIixcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLm1hY2hpbmUgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lTGlzdCA9IHRoaXMubWFjaGluZS5tYXAocyA9PiBzLm1hY2hpbmVOYW1lKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4gICAgICAgICAgICAvL+iOt+WPluihqOagvOeahOaVsOaNrua6kFxyXG4gICAgICAgICAgICBnZXRXb21kYWFJc1Nob3coKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2hvd1RhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWPquWIpOaWreesrOS4gOadoe+8iOWPquWFgeiuuOS4gOadoeW3peWNle+8iVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pc1Nob3dUYWJsZURhdGFbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0JpbmRlZEN1dHRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kZWRDdXR0ZXIgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xJZCAmJiBvcmRlci5vdXRUb29sSWQudG9TdHJpbmcoKS50cmltKCkgIT09ICcnKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xDb2RlICYmIG9yZGVyLm91dFRvb2xDb2RlLnRyaW0oKSAhPT0gJycpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIub3V0VG9vbE5hbWUgJiYgb3JkZXIub3V0VG9vbE5hbWUudHJpbSgpICE9PSAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWtmOWCqOWIsCBkYXRhIOWPmOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQmluZGVkQ3V0dGVyRmxhZyA9IGhhc0JpbmRlZEN1dHRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG93VGFibGVEYXRhLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnZGFhMDAxJywgdGhpcy5pc1Nob3dUYWJsZURhdGFbMF0uZGFhMDAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdpZCcsIHRoaXMuaXNTaG93VGFibGVEYXRhWzBdLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGlzU2hvd1RhYigpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd1RhYmxlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5bey5pyJ5q2j5Zyo5pON5L2c55qE5bel5Y2V77yM5LiN6IO95YaN5qyh6YCJ5oupJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy8g6buY6K6k6YCJ5Lit4oCc5b6F5byA5bel4oCdXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZWVyaW5nTm8gPSAn5b6F5byA5bel44CB5pyq5byA5bel44CB5pqC5YGcJztcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyDkuIvmi4nmoYblj6rmmL7npLrlkIjlubblkI7nmoTnirbmgIHlkozlhbblroPnirbmgIFcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdOb01hcExpc3QgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+W8gOW3pScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ+WujOW3pSdcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICAvLyDpu5jorqTmmL7npLrigJzlvoXlvIDlt6XigJ3lt6XljZVcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g5LiL5ouJ5qGG6YCJ5Lit5ZCO77yM5oyJ54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIG9uRW5naW5lZXJpbmdOb0NoYW5nZShzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdObyA9IHN0YXR1cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhQnlTdGF0dXMoKTtcclxuICAgICAgICAgICAgfSxcclxuXHRcdFx0Z2V0V29tZGFhKCkge1xyXG5cclxuXHRcdFx0XHRsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5TWFjaGluZVwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG5cdFx0XHRcdFx0XHRlZGl0RGF0ZTogZWRpdERhdGVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgLy8g5oyJ5bel5Y2V54q25oCB562b6YCJ5bel5Y2VXHJcbiAgICAgICAgICAgIGdldFdvbWRhYUJ5U3RhdHVzKCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXR1c0FyciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZW5naW5lZXJpbmdObyA9PT0gJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNBcnIgPSBbJ+W+heW8gOW3pScsICfmnKrlvIDlt6UnLCAn5pqC5YGcJ107XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0FyciA9IFt0aGlzLmVuZ2luZWVyaW5nTm9dO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5RW5naW5lZXJpbmdOb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJTdGF0dXM6IHN0YXR1c0FycixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERhdGU6IGVkaXREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHR0b0RldGFpbChpdGVtKSB7XHJcblx0XHRcdFx0dGhpcy5vcmRlcklkID0gaXRlbS5pZDtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkT3JkZXIgPSBpdGVtLmRhYTAwMTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdENvZGUgPSBpdGVtLmRhYTAwMjsgLy8g5Lqn5ZOB57yW56CBXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RTcGVjID0gaXRlbS5kYWEwMDQ7IC8vIOS6p+WTgeinhOagvFxyXG5cdFx0XHRcdHRoaXMuY3VycmVudFRhYiA9IDA7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge31cclxuXHR9O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n");
/***/ }),
/* 53 */
@@ -4257,23 +4257,365 @@
}),
]
),
- _vm._$s(28, "i", _vm.showToolDialog)
- ? _c(
+ _c(
+ "view",
+ { staticClass: _vm._$s(28, "sc", "tiaoji-section"), attrs: { _i: 28 } },
+ [
+ _c(
"view",
- {
- staticClass: _vm._$s(28, "sc", "dialog-overlay"),
- attrs: { _i: 28 },
- },
+ { staticClass: _vm._$s(29, "sc", "tiaoji-row"), attrs: { _i: 29 } },
[
_c(
"view",
- { staticClass: _vm._$s(29, "sc", "dialog"), attrs: { _i: 29 } },
+ {
+ staticClass: _vm._$s(30, "sc", "current-user-section"),
+ attrs: { _i: 30 },
+ },
+ [
+ _c("text"),
+ _c(
+ "text",
+ {
+ staticClass: _vm._$s(32, "sc", "current-user-name"),
+ attrs: { _i: 32 },
+ },
+ [
+ _vm._v(
+ _vm._$s(
+ 32,
+ "t0-0",
+ _vm._s(_vm.tiaojiStaffDisplay || "鏈�夋嫨")
+ )
+ ),
+ ]
+ ),
+ _c("button", {
+ staticClass: _vm._$s(33, "sc", "select-user-btn"),
+ attrs: { _i: 33 },
+ on: {
+ click: function ($event) {
+ _vm.isTiaojiUserSelectShow = true
+ },
+ },
+ }),
+ ]
+ ),
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(34, "sc", "tiaoji-input-section"),
+ attrs: { _i: 34 },
+ },
+ [
+ _c("text"),
+ _c("input", {
+ directives: [
+ {
+ name: "model",
+ rawName: "v-model",
+ value: _vm.tiaojiOkQty,
+ expression: "tiaojiOkQty",
+ },
+ ],
+ staticClass: _vm._$s(36, "sc", "inp tiaoji-input"),
+ attrs: { _i: 36 },
+ domProps: {
+ value: _vm._$s(36, "v-model", _vm.tiaojiOkQty),
+ },
+ on: {
+ input: function ($event) {
+ if ($event.target.composing) {
+ return
+ }
+ _vm.tiaojiOkQty = $event.target.value
+ },
+ },
+ }),
+ ]
+ ),
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(37, "sc", "tiaoji-input-section"),
+ attrs: { _i: 37 },
+ },
+ [
+ _c("text"),
+ _c("input", {
+ directives: [
+ {
+ name: "model",
+ rawName: "v-model",
+ value: _vm.tiaojiBadQty,
+ expression: "tiaojiBadQty",
+ },
+ ],
+ staticClass: _vm._$s(39, "sc", "inp tiaoji-input"),
+ attrs: { _i: 39 },
+ domProps: {
+ value: _vm._$s(39, "v-model", _vm.tiaojiBadQty),
+ },
+ on: {
+ input: function ($event) {
+ if ($event.target.composing) {
+ return
+ }
+ _vm.tiaojiBadQty = $event.target.value
+ },
+ },
+ }),
+ ]
+ ),
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(40, "sc", "tiaoji-submit-section"),
+ attrs: { _i: 40 },
+ },
+ [
+ _c("button", {
+ staticClass: _vm._$s(41, "sc", "details-btn"),
+ attrs: { _i: 41 },
+ on: { click: _vm.handleInspectionCall },
+ }),
+ ]
+ ),
+ ]
+ ),
+ ]
+ ),
+ _vm._$s(42, "i", _vm.isTiaojiUserSelectShow)
+ ? _c(
+ "view",
+ { staticClass: _vm._$s(42, "sc", "overlay"), attrs: { _i: 42 } },
+ [
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(43, "sc", "popup user-select-popup"),
+ attrs: { _i: 43 },
+ },
[
_c(
"view",
{
- staticClass: _vm._$s(30, "sc", "form-group"),
- attrs: { _i: 30 },
+ staticClass: _vm._$s(44, "sc", "user-search-bar"),
+ attrs: { _i: 44 },
+ },
+ [
+ _c("input", {
+ directives: [
+ {
+ name: "model",
+ rawName: "v-model.trim",
+ value: _vm.tiaojiUserSearch,
+ expression: "tiaojiUserSearch",
+ modifiers: { trim: true },
+ },
+ ],
+ staticClass: _vm._$s(45, "sc", "user-search-input"),
+ attrs: { _i: 45 },
+ domProps: {
+ value: _vm._$s(45, "v-model", _vm.tiaojiUserSearch),
+ },
+ on: {
+ keydown: function ($event) {
+ if (
+ !$event.type.indexOf("key") &&
+ _vm._k(
+ $event.keyCode,
+ "enter",
+ 13,
+ $event.key,
+ "Enter"
+ )
+ ) {
+ return null
+ }
+ $event.preventDefault()
+ },
+ input: function ($event) {
+ if ($event.target.composing) {
+ return
+ }
+ _vm.tiaojiUserSearch = $event.target.value.trim()
+ },
+ blur: function ($event) {
+ return _vm.$forceUpdate()
+ },
+ },
+ }),
+ _vm._$s(46, "i", _vm.tiaojiUserSearch)
+ ? _c("button", {
+ staticClass: _vm._$s(46, "sc", "user-search-clear"),
+ attrs: { _i: 46 },
+ on: {
+ click: function ($event) {
+ _vm.tiaojiUserSearch = ""
+ },
+ },
+ })
+ : _vm._e(),
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(47, "sc", "user-search-info"),
+ attrs: { _i: 47 },
+ },
+ [
+ _vm._v(
+ _vm._$s(
+ 47,
+ "t0-0",
+ _vm._s(_vm.filteredTiaojiUsers.length)
+ ) +
+ _vm._$s(
+ 47,
+ "t0-1",
+ _vm._s(_vm.tiaojiUsers.length)
+ )
+ ),
+ ]
+ ),
+ ]
+ ),
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(48, "sc", "user-list-scroll"),
+ attrs: { _i: 48 },
+ },
+ [
+ _vm._$s(49, "i", _vm.filteredTiaojiUsers.length)
+ ? [
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(
+ 50,
+ "sc",
+ "user-list-grid"
+ ),
+ attrs: { _i: 50 },
+ },
+ _vm._l(
+ _vm._$s(51, "f", {
+ forItems: _vm.filteredTiaojiUsers,
+ }),
+ function (u, index, $20, $30) {
+ return _c(
+ "button",
+ {
+ key: _vm._$s(51, "f", {
+ forIndex: $20,
+ key: index,
+ }),
+ class: _vm._$s("51-" + $30, "c", [
+ "user-list-btn",
+ { selected: u === _vm.tiaojiStaffNo },
+ ]),
+ attrs: { _i: "51-" + $30 },
+ on: {
+ click: function ($event) {
+ return _vm.selectTiaojiUser(u)
+ },
+ },
+ },
+ [
+ _c(
+ "span",
+ {
+ staticClass: _vm._$s(
+ "52-" + $30,
+ "sc",
+ "user-code"
+ ),
+ attrs: { _i: "52-" + $30 },
+ },
+ [
+ _vm._v(
+ _vm._$s(
+ "52-" + $30,
+ "t0-0",
+ _vm._s(u.split(":")[0])
+ )
+ ),
+ ]
+ ),
+ _c(
+ "span",
+ {
+ staticClass: _vm._$s(
+ "53-" + $30,
+ "sc",
+ "user-name"
+ ),
+ attrs: { _i: "53-" + $30 },
+ },
+ [
+ _vm._v(
+ _vm._$s(
+ "53-" + $30,
+ "t0-0",
+ _vm._s(u.split(":")[1])
+ )
+ ),
+ ]
+ ),
+ ]
+ )
+ }
+ ),
+ 0
+ ),
+ ]
+ : _c("view", {
+ staticClass: _vm._$s(54, "sc", "no-user-result"),
+ attrs: { _i: 54 },
+ }),
+ ],
+ 2
+ ),
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(55, "sc", "user-popup-footer"),
+ attrs: { _i: 55 },
+ },
+ [
+ _c("button", {
+ staticClass: _vm._$s(56, "sc", "clean-btn wide-btn"),
+ attrs: { _i: 56 },
+ on: {
+ click: function ($event) {
+ _vm.isTiaojiUserSelectShow = false
+ },
+ },
+ }),
+ ]
+ ),
+ ]
+ ),
+ ]
+ )
+ : _vm._e(),
+ _vm._$s(57, "i", _vm.showToolDialog)
+ ? _c(
+ "view",
+ {
+ staticClass: _vm._$s(57, "sc", "dialog-overlay"),
+ attrs: { _i: 57 },
+ },
+ [
+ _c(
+ "view",
+ { staticClass: _vm._$s(58, "sc", "dialog"), attrs: { _i: 58 } },
+ [
+ _c(
+ "view",
+ {
+ staticClass: _vm._$s(59, "sc", "form-group"),
+ attrs: { _i: 59 },
},
[
_c("input", {
@@ -4285,10 +4627,10 @@
expression: "searchKey",
},
],
- staticClass: _vm._$s(31, "sc", "input"),
- attrs: { _i: 31 },
+ staticClass: _vm._$s(60, "sc", "input"),
+ attrs: { _i: 60 },
domProps: {
- value: _vm._$s(31, "v-model", _vm.searchKey),
+ value: _vm._$s(60, "v-model", _vm.searchKey),
},
on: {
input: [
@@ -4303,10 +4645,10 @@
},
}),
_c("button", {
- staticClass: _vm._$s(32, "sc", "btn-blue"),
+ staticClass: _vm._$s(61, "sc", "btn-blue"),
attrs: {
- disabled: _vm._$s(32, "a-disabled", _vm.loadingTools),
- _i: 32,
+ disabled: _vm._$s(61, "a-disabled", _vm.loadingTools),
+ _i: 61,
},
on: { click: _vm.searchTool },
}),
@@ -4315,24 +4657,24 @@
_c(
"view",
{
- staticClass: _vm._$s(33, "sc", "tool-list"),
- attrs: { _i: 33 },
+ staticClass: _vm._$s(62, "sc", "tool-list"),
+ attrs: { _i: 62 },
},
_vm._l(
- _vm._$s(34, "f", { forItems: _vm.filteredTools }),
- function (tool, $10, $20, $30) {
+ _vm._$s(63, "f", { forItems: _vm.filteredTools }),
+ function (tool, $11, $21, $31) {
return _c(
"button",
{
- key: _vm._$s(34, "f", {
- forIndex: $20,
+ key: _vm._$s(63, "f", {
+ forIndex: $21,
key: tool.no,
}),
- staticClass: _vm._$s("34-" + $30, "sc", "tool-btn"),
- class: _vm._$s("34-" + $30, "c", {
+ staticClass: _vm._$s("63-" + $31, "sc", "tool-btn"),
+ class: _vm._$s("63-" + $31, "c", {
active: _vm.activeToolNo === tool.no,
}),
- attrs: { _i: "34-" + $30 },
+ attrs: { _i: "63-" + $31 },
on: {
click: function ($event) {
return _vm.selectTool(tool)
@@ -4341,8 +4683,8 @@
},
[
_vm._v(
- _vm._$s("34-" + $30, "t0-0", _vm._s(tool.no)) +
- _vm._$s("34-" + $30, "t0-1", _vm._s(tool.name))
+ _vm._$s("63-" + $31, "t0-0", _vm._s(tool.no)) +
+ _vm._$s("63-" + $31, "t0-1", _vm._s(tool.name))
),
]
)
@@ -4353,52 +4695,52 @@
_c(
"view",
{
- staticClass: _vm._$s(35, "sc", "dialog-actions"),
- attrs: { _i: 35 },
+ staticClass: _vm._$s(64, "sc", "dialog-actions"),
+ attrs: { _i: 64 },
},
[
_c("div", [
_c("button", {
- staticClass: _vm._$s(37, "sc", "btn-blue"),
+ staticClass: _vm._$s(66, "sc", "btn-blue"),
attrs: {
disabled: _vm._$s(
- 37,
+ 66,
"a-disabled",
_vm.pageIndex === 1 || _vm.loadingTools
),
- _i: 37,
+ _i: 66,
},
on: { click: _vm.prevPage },
}),
_c("span", [
_vm._v(
- _vm._$s(38, "t0-0", _vm._s(_vm.pageIndex)) +
- _vm._$s(38, "t0-1", _vm._s(_vm.totalPages))
+ _vm._$s(67, "t0-0", _vm._s(_vm.pageIndex)) +
+ _vm._$s(67, "t0-1", _vm._s(_vm.totalPages))
),
]),
_c("button", {
- staticClass: _vm._$s(39, "sc", "btn-blue"),
+ staticClass: _vm._$s(68, "sc", "btn-blue"),
attrs: {
disabled: _vm._$s(
- 39,
+ 68,
"a-disabled",
_vm.pageIndex === _vm.totalPages ||
_vm.loadingTools
),
- _i: 39,
+ _i: 68,
},
on: { click: _vm.nextPage },
}),
]),
_c("div", [
_c("button", {
- staticClass: _vm._$s(41, "sc", "btn-blue"),
- attrs: { _i: 41 },
+ staticClass: _vm._$s(70, "sc", "btn-blue"),
+ attrs: { _i: 70 },
on: { click: _vm.confirmTool },
}),
_c("button", {
- staticClass: _vm._$s(42, "sc", "btn-disabled"),
- attrs: { _i: 42 },
+ staticClass: _vm._$s(71, "sc", "btn-disabled"),
+ attrs: { _i: 71 },
on: { click: _vm.closeToolDialog },
}),
]),
@@ -4409,386 +4751,9 @@
]
)
: _vm._e(),
- _c(
- "view",
- { staticClass: _vm._$s(43, "sc", "table-section"), attrs: { _i: 43 } },
- [
- _c(
- "table",
- {
- staticClass: _vm._$s(44, "sc", "styled-table"),
- attrs: { _i: 44 },
- },
- [
- _c("thead", [
- _c("tr", [
- _c("th"),
- _c("th"),
- _c("th"),
- _c("th", {
- staticClass: _vm._$s(50, "sc", "num"),
- attrs: { _i: 50 },
- }),
- _c("th"),
- _c("th", {
- staticClass: _vm._$s(52, "sc", "num"),
- attrs: { _i: 52 },
- }),
- _c("th", {
- staticClass: _vm._$s(53, "sc", "num"),
- attrs: { _i: 53 },
- }),
- _c("th", {
- staticClass: _vm._$s(54, "sc", "num"),
- attrs: { _i: 54 },
- }),
- _c("th", {
- staticClass: _vm._$s(55, "sc", "num"),
- attrs: { _i: 55 },
- }),
- _c("th", {
- staticClass: _vm._$s(56, "sc", "num"),
- attrs: { _i: 56 },
- }),
- _c("th"),
- _c("th"),
- ]),
- ]),
- _c(
- "tbody",
- [
- _vm._l(
- _vm._$s(60, "f", { forItems: _vm.toolRecords }),
- function (item, idx, $21, $31) {
- return _c(
- "tr",
- {
- key: _vm._$s(60, "f", {
- forIndex: $21,
- key: item.id,
- }),
- class: _vm._$s("60-" + $31, "c", {
- "row-odd": idx % 2 === 0,
- }),
- attrs: { _i: "60-" + $31 },
- },
- [
- _c("td", [
- _vm._v(
- _vm._$s("61-" + $31, "t0-0", _vm._s(item.no))
- ),
- ]),
- _c(
- "td",
- {
- staticClass: _vm._$s("62-" + $31, "sc", "left"),
- attrs: { _i: "62-" + $31 },
- },
- [
- _vm._v(
- _vm._$s("62-" + $31, "t0-0", _vm._s(item.name))
- ),
- ]
- ),
- _c("td", [
- _vm._v(
- _vm._$s("63-" + $31, "t0-0", _vm._s(item.upTime))
- ),
- ]),
- _c(
- "td",
- {
- staticClass: _vm._$s("64-" + $31, "sc", "num"),
- attrs: { _i: "64-" + $31 },
- },
- [
- _vm._v(
- _vm._$s(
- "64-" + $31,
- "t0-0",
- _vm._s(
- item.upCount != null ? item.upCount : ""
- )
- )
- ),
- ]
- ),
- _c("td", [
- _vm._v(
- _vm._$s(
- "65-" + $31,
- "t0-0",
- _vm._s(item.downTime)
- )
- ),
- ]),
- _c(
- "td",
- {
- staticClass: _vm._$s("66-" + $31, "sc", "num"),
- attrs: { _i: "66-" + $31 },
- },
- [
- _vm._$s("67-" + $31, "i", idx === 0)
- ? [
- _vm._$s("68-" + $31, "i", !item.downTime)
- ? [
- _vm._v(
- _vm._$s(
- "68-" + $31,
- "t0-0",
- _vm._s(
- item.currentCjNum != null
- ? item.currentCjNum
- : ""
- )
- )
- ),
- ]
- : [
- _vm._v(
- _vm._$s(
- "69-" + $31,
- "t0-0",
- _vm._s(
- item.downCount != null
- ? item.downCount
- : ""
- )
- )
- ),
- ],
- ]
- : [
- _vm._v(
- _vm._$s(
- "70-" + $31,
- "t0-0",
- _vm._s(
- item.downCount != null
- ? item.downCount
- : ""
- )
- )
- ),
- ],
- ],
- 2
- ),
- _c(
- "td",
- {
- staticClass: _vm._$s("71-" + $31, "sc", "num"),
- attrs: { _i: "71-" + $31 },
- },
- [
- _vm._$s("72-" + $31, "i", idx === 0)
- ? [
- _vm._$s("73-" + $31, "i", !item.downTime)
- ? [
- _vm._v(
- _vm._$s(
- "73-" + $31,
- "t0-0",
- _vm._s(
- item.currentCjNum != null &&
- item.upCount != null
- ? Number(item.currentCjNum) -
- Number(item.upCount)
- : item.useCount != null
- ? item.useCount
- : ""
- )
- )
- ),
- ]
- : [
- _vm._v(
- _vm._$s(
- "74-" + $31,
- "t0-0",
- _vm._s(
- item.useCount != null
- ? item.useCount
- : ""
- )
- )
- ),
- ],
- ]
- : [
- _vm._v(
- _vm._$s(
- "75-" + $31,
- "t0-0",
- _vm._s(
- item.useCount != null
- ? item.useCount
- : ""
- )
- )
- ),
- ],
- ],
- 2
- ),
- _c(
- "td",
- {
- staticClass: _vm._$s("76-" + $31, "sc", "num"),
- attrs: { _i: "76-" + $31 },
- },
- [
- _vm._v(
- _vm._$s(
- "76-" + $31,
- "t0-0",
- _vm._s(
- item.useLimit != null ? item.useLimit : ""
- )
- )
- ),
- ]
- ),
- _c(
- "td",
- {
- staticClass: _vm._$s("77-" + $31, "sc", "num"),
- attrs: { _i: "77-" + $31 },
- },
- [
- _vm._$s("78-" + $31, "i", idx === 0)
- ? [
- _vm._$s("79-" + $31, "i", !item.downTime)
- ? [
- _vm._v(
- _vm._$s(
- "79-" + $31,
- "t0-0",
- _vm._s(
- item.currentCjNum != null &&
- item.upCount != null &&
- item.useLimit != null &&
- Number(item.useLimit) > 0
- ? Math.round(
- ((Number(
- item.currentCjNum
- ) -
- Number(item.upCount)) /
- Number(item.useLimit)) *
- 100
- ) + "%"
- : item.lifePercent != null
- ? item.lifePercent
- : ""
- )
- )
- ),
- ]
- : [
- _vm._v(
- _vm._$s(
- "80-" + $31,
- "t0-0",
- _vm._s(
- item.lifePercent != null
- ? item.lifePercent
- : ""
- )
- )
- ),
- ],
- ]
- : [
- _vm._v(
- _vm._$s(
- "81-" + $31,
- "t0-0",
- _vm._s(item.lifePercent)
- )
- ),
- ],
- ],
- 2
- ),
- _c(
- "td",
- {
- staticClass: _vm._$s("82-" + $31, "sc", "num"),
- attrs: { _i: "82-" + $31 },
- },
- [
- _vm._v(
- _vm._$s(
- "82-" + $31,
- "t0-0",
- _vm._s(item.lifeWarn)
- )
- ),
- ]
- ),
- _c(
- "td",
- {
- class: _vm._$s(
- "83-" + $31,
- "c",
- item.warnStatus === "棰勮"
- ? "warn-cell"
- : item.warnStatus === "姝e父"
- ? "ok-cell"
- : ""
- ),
- attrs: { _i: "83-" + $31 },
- },
- [
- _vm._$s(
- "84-" + $31,
- "i",
- item.warnStatus === "棰勮"
- )
- ? _c("span", {
- staticClass: _vm._$s(
- "84-" + $31,
- "sc",
- "warn-badge"
- ),
- attrs: { _i: "84-" + $31 },
- })
- : _c("span", { attrs: { _i: "85-" + $31 } }, [
- _vm._v(
- _vm._$s(
- "85-" + $31,
- "t0-0",
- _vm._s(item.warnStatus)
- )
- ),
- ]),
- ]
- ),
- _c("td", [
- _vm._v(
- _vm._$s(
- "86-" + $31,
- "t0-0",
- _vm._s(item.downTime ? "涓嬫満" : "鍦ㄦ満")
- )
- ),
- ]),
- ]
- )
- }
- ),
- _vm._$s(87, "i", !_vm.toolRecords.length)
- ? _c("tr", { attrs: { _i: 87 } }, [_c("td", {})])
- : _vm._e(),
- ],
- 2
- ),
- ]
- ),
- ]
- ),
+ false
+ ? undefined
+ : _vm._e(),
]
)
}
@@ -4818,7 +4783,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 3));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 9));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n machineNo: '',\n //鏈哄彴缂栫爜\n workOrderNo: '',\n //宸ュ崟鍙穃n activeToolNo: '',\n // 褰撳墠閫変腑鐨勫垁鍏风紪鍙穃n pageIndex: 1,\n pageSize: 20,\n //鍗曢〉鏄剧ず鐨勫垁鍏锋暟閲廫n total: 0,\n toolList: [],\n selectedToolNo: '',\n toolName: '',\n toolModel: '',\n showToolDialog: false,\n searchKey: '',\n filteredTools: [],\n useLimitInput: '',\n lifeWarnInput: '',\n // 鏂板锛氬鍛芥瘮棰勮鍊煎師濮嬭緭鍏n toolRecords: [],\n loadingTools: false,\n loadingForm: false,\n submitting: false,\n _searchTimer: null,\n workOrderCurrentCjNum: null,\n // 宸ュ崟褰撳墠鏁伴噰\n\n // 鑷姩淇濆瓨鐩稿叧\n autoSaveTimer: null,\n isDirty: false,\n // 琛ㄥ崟鏄惁鏈夋湭淇濆瓨鍙樻洿\n autoSaveIntervalMs: 5 * 60 * 1000,\n // 榛樿 5 鍒嗛挓\n autoSaveEnabled: true,\n autoSaveActionName: 'handleUpTool' // 鑷姩瑙﹀彂鐨勬柟娉曞悕锛屽彲鏀逛负鑷畾涔変繚瀛樻柟娉昞n };\n },\n\n computed: {\n totalPages: function totalPages() {\n return Math.max(1, Math.ceil(this.total / this.pageSize) || 1);\n }\n },\n watch: {\n // 鏍囪鑴忔暟鎹細鎸夐渶鐩戝惉瀛楁鍙樺寲\n selectedToolNo: function selectedToolNo() {\n this.isDirty = true;\n },\n useLimitInput: function useLimitInput() {\n this.isDirty = true;\n },\n lifeWarnInput: function lifeWarnInput() {\n this.isDirty = true;\n },\n toolName: function toolName() {\n this.isDirty = true;\n },\n toolModel: function toolModel() {\n this.isDirty = true;\n }\n },\n methods: {\n //鏌ヨ褰撳墠鏁伴噰鏁帮紝浣滀负涓嬪垁璁℃暟瀹炴椂鏄剧ず\n fetchCurrentCjNum: function fetchCurrentCjNum(toolNo) {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var _res$data, res, _ref, _found$CurrentCjNum, found;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this.machineNo) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", null);\n case 2:\n _context.prev = 2;\n _context.next = 5;\n return _this.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context.sent;\n if (!(res.status === 0 && Array.isArray((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList))) {\n _context.next = 9;\n break;\n }\n found = res.data.tbBillList.find(function (x) {\n return x.cutterId === toolNo || x.cutteR_ID === toolNo;\n });\n return _context.abrupt(\"return\", found ? (_ref = (_found$CurrentCjNum = found.CurrentCjNum) !== null && _found$CurrentCjNum !== void 0 ? _found$CurrentCjNum : found.currentCjNum) !== null && _ref !== void 0 ? _ref : null : null);\n case 9:\n _context.next = 14;\n break;\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](2);\n __f__(\"warn\", '鑾峰彇currentCjNum澶辫触', _context.t0, \" at components/mold.vue:244\");\n case 14:\n return _context.abrupt(\"return\", null);\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 11]]);\n }))();\n },\n // 鏂板锛氬埛鏂版寜閽鐞嗘柟娉昞n handleRefresh: function handleRefresh() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.fetchTools('');\n if (!(_this2.machineNo && _this2.workOrderNo)) {\n _context2.next = 7;\n break;\n }\n _context2.next = 4;\n return _this2.fetchFormData();\n case 4:\n _context2.next = 6;\n return _this2.fetchDefaultToolFromWorkOrder();\n case 6:\n // 鍒锋柊鍚庤祴鍊肩涓�琛� currentCjNum\n if (_this2.toolRecords.length > 0) {\n _this2.$set(_this2.toolRecords[0], 'currentCjNum', _this2.workOrderCurrentCjNum);\n }\n case 7:\n _this2.$showMessage('鍒锋柊瀹屾垚');\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n // 鑷姩淇濆瓨锛氬惎鍔╘n startAutoSave: function startAutoSave() {\n var _this3 = this;\n if (!this.autoSaveEnabled) return;\n this.stopAutoSave();\n this.autoSaveTimer = setInterval(function () {\n _this3.autoSaveTick();\n }, this.autoSaveIntervalMs);\n },\n // 鑷姩淇濆瓨锛氬仠姝n stopAutoSave: function stopAutoSave() {\n if (this.autoSaveTimer) {\n clearInterval(this.autoSaveTimer);\n this.autoSaveTimer = null;\n }\n },\n // 鑷姩淇濆瓨锛氭瘡娆″畾鏃舵墽琛屾椂鐨勯�昏緫\n autoSaveTick: function autoSaveTick() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var fn;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (_this4.autoSaveEnabled) {\n _context3.next = 2;\n break;\n }\n return _context3.abrupt(\"return\");\n case 2:\n if (_this4.isDirty) {\n _context3.next = 4;\n break;\n }\n return _context3.abrupt(\"return\");\n case 4:\n if (!(_this4.submitting || _this4.loadingForm)) {\n _context3.next = 6;\n break;\n }\n return _context3.abrupt(\"return\");\n case 6:\n fn = _this4.autoSaveActionName && typeof _this4[_this4.autoSaveActionName] === 'function' ? _this4[_this4.autoSaveActionName] : null;\n if (fn) {\n _context3.next = 10;\n break;\n }\n __f__(\"warn\", '鑷姩淇濆瓨锛氭湭鎵惧埌鏂规硶', _this4.autoSaveActionName, \" at components/mold.vue:287\");\n return _context3.abrupt(\"return\");\n case 10:\n _context3.prev = 10;\n _this4.submitting = true;\n _context3.next = 14;\n return fn.call(_this4);\n case 14:\n // 璋冪敤淇濆瓨鏂规硶锛堜緥濡� handleUpTool锛塡n // 濡傛灉淇濆瓨鎴愬姛锛屾竻鑴忔爣璁帮紙淇濆瓨鏂规硶鍐呴儴鑻ュけ璐ユ病鏈夋姏鍑哄彲淇濇寔姝ゆ柟寮忥級\n _this4.isDirty = false;\n _context3.next = 20;\n break;\n case 17:\n _context3.prev = 17;\n _context3.t0 = _context3[\"catch\"](10);\n __f__(\"error\", '鑷姩淇濆瓨澶辫触锛�', _context3.t0, \" at components/mold.vue:297\");\n case 20:\n _context3.prev = 20;\n _this4.submitting = false;\n return _context3.finish(20);\n case 23:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[10, 17, 20, 23]]);\n }))();\n },\n // 鏂板锛氬鍛芥瘮棰勮鍊煎綊涓�鍖� (杩斿洖 0~1 鎴� null)\n normalizeLifeWarn: function normalizeLifeWarn(v) {\n if (v == null) return null;\n var raw = String(v).trim().replace(/[%锛匽/g, '');\n if (raw === '') return null;\n var num = Number(raw);\n if (!isFinite(num) || num <= 0) return null;\n return num > 1 ? num / 100 : num;\n },\n openToolDialog: function openToolDialog() {\n this.showToolDialog = true;\n this.pageIndex = 1;\n this.fetchTools(this.searchKey);\n },\n closeToolDialog: function closeToolDialog() {\n this.showToolDialog = false;\n },\n fetchTools: function fetchTools(searchKey) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var res, _ref2, _ref3, _ref4, _res$data$total, _res$data2, _res$data3, payload, getField, mapped, totalFromRes;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _this5.loadingTools = true;\n _context4.prev = 1;\n _context4.next = 4;\n return _this5.$post({\n url: '/MesCutterLedger/QueryTools',\n data: JSON.stringify({\n searchKey: searchKey,\n pageIndex: _this5.pageIndex,\n pageSize: _this5.pageSize\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 4:\n res = _context4.sent;\n if (res.status === 0) {\n payload = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n getField = function getField(obj) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var k = _keys[_i];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n }; // 杩欓噷闇�瑕佹妸 lifeWarn 瀛楁涔熷甫鍑烘潵\n mapped = (payload || []).map(function (t) {\n return {\n no: getField(t, 'cutterId', 'CUTTER_ID', 'cutteR_ID', 'daA001', 'no'),\n name: getField(t, 'cutterName', 'CUTTER_NAME', 'cutteR_NAME', 'name'),\n model: getField(t, 'cutterModel', 'CUTTER_MODEL', 'cutteR_MODEL', 'model'),\n lifeWarn: getField(t, 'modlLifeWorning', 'lifeWarn', 'LIFE_WARN', 'lifE_WARN')\n };\n });\n _this5.filteredTools = mapped;\n _this5.toolList = mapped.slice();\n totalFromRes = Number((_ref2 = (_ref3 = (_ref4 = (_res$data$total = (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.total) !== null && _res$data$total !== void 0 ? _res$data$total : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.totalCount) !== null && _ref4 !== void 0 ? _ref4 : res.total) !== null && _ref3 !== void 0 ? _ref3 : res.totalCount) !== null && _ref2 !== void 0 ? _ref2 : mapped.length);\n _this5.total = Number.isFinite(totalFromRes) ? totalFromRes : mapped.length;\n if (_this5.pageIndex > _this5.totalPages) {\n _this5.pageIndex = _this5.totalPages;\n }\n } else {\n _this5.$showMessage(res.message || '鏌ヨ澶辫触');\n }\n _context4.next = 12;\n break;\n case 8:\n _context4.prev = 8;\n _context4.t0 = _context4[\"catch\"](1);\n __f__(\"error\", 'fetchTools 閿欒锛�', _context4.t0, \" at components/mold.vue:366\");\n _this5.$showMessage('鏌ヨ鍒�鍏峰け璐ワ紝璇锋鏌ョ綉缁滄垨鎺ュ彛');\n case 12:\n _context4.prev = 12;\n _this5.loadingTools = false;\n return _context4.finish(12);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[1, 8, 12, 15]]);\n }))();\n },\n prevPage: function prevPage() {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (!(_this6.pageIndex > 1)) {\n _context5.next = 4;\n break;\n }\n _this6.pageIndex--;\n _context5.next = 4;\n return _this6.fetchTools(_this6.searchKey);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n nextPage: function nextPage() {\n var _this7 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n if (!(_this7.pageIndex < _this7.totalPages)) {\n _context6.next = 4;\n break;\n }\n _this7.pageIndex++;\n _context6.next = 4;\n return _this7.fetchTools(_this7.searchKey);\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n onSearchKeyInput: function onSearchKeyInput() {\n var _this8 = this;\n clearTimeout(this._searchTimer);\n this._searchTimer = setTimeout(function () {\n _this8.searchTool();\n }, 300);\n },\n searchTool: function searchTool() {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _this9.pageIndex = 1;\n _context7.next = 3;\n return _this9.fetchTools(_this9.searchKey);\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n selectTool: function selectTool(tool) {\n this.selectedToolNo = tool.no;\n this.toolName = tool.name;\n this.toolModel = tool.model;\n this.activeToolNo = tool.no;\n // 鏂板锛氬甫鍑哄鍛芥瘮棰勮鍊糪n if (tool.lifeWarn !== undefined && tool.lifeWarn !== null) {\n // 鏍煎紡鍖栦负鐧惧垎姣斿瓧绗︿覆\n var warn = Number(tool.lifeWarn);\n this.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n this.lifeWarnInput = '';\n }\n },\n confirmTool: function confirmTool() {\n this.showToolDialog = false;\n },\n setUseLimit: function setUseLimit() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var v;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n if (_this10.selectedToolNo) {\n _context8.next = 3;\n break;\n }\n _this10.$showMessage('璇烽�夋嫨鍒�鍏峰悗鍐嶈缃笂闄�');\n return _context8.abrupt(\"return\");\n case 3:\n v = Number(_this10.useLimitInput);\n if (!(isNaN(v) || v <= 0)) {\n _context8.next = 7;\n break;\n }\n _this10.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺');\n return _context8.abrupt(\"return\");\n case 7:\n _this10.toolRecords = _this10.toolRecords.map(function (r) {\n if (r.no === _this10.selectedToolNo) {\n return _objectSpread(_objectSpread({}, r), {}, {\n useLimit: v\n });\n }\n return r;\n });\n _this10.toolList = _this10.toolList.map(function (t) {\n return t.no === _this10.selectedToolNo ? _objectSpread(_objectSpread({}, t), {}, {\n useLimit: v\n }) : t;\n });\n _this10.$showMessage('浣跨敤涓婇檺宸茶缃紙浠呭墠绔樉绀猴級');\n case 10:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n },\n // 涓婂垁鏃朵紶閫� sdjs = 宸ュ崟 currentCjNum\n handleUpTool: function handleUpTool() {\n var _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var useLimit, sdjs, lifeWarnRatio, payload, res;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n if (_this11.workOrderNo) {\n _context9.next = 3;\n break;\n }\n _this11.$showMessage('宸ュ崟鍙蜂笉鑳戒负绌�');\n return _context9.abrupt(\"return\");\n case 3:\n if (_this11.machineNo) {\n _context9.next = 6;\n break;\n }\n _this11.$showMessage('鏈哄彴鍙蜂笉鑳戒负绌�');\n return _context9.abrupt(\"return\");\n case 6:\n if (_this11.selectedToolNo) {\n _context9.next = 9;\n break;\n }\n _this11.$showMessage('鍒�鍏风紪鍙蜂笉鑳戒负绌�');\n return _context9.abrupt(\"return\");\n case 9:\n if (_this11.useLimitInput) {\n _context9.next = 12;\n break;\n }\n _this11.$showMessage('浣跨敤涓婇檺涓嶈兘涓虹┖');\n return _context9.abrupt(\"return\");\n case 12:\n useLimit = Number(_this11.useLimitInput);\n if (!(isNaN(useLimit) || useLimit <= 0)) {\n _context9.next = 16;\n break;\n }\n _this11.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺');\n return _context9.abrupt(\"return\");\n case 16:\n // sdjs 浣跨敤宸ュ崟 currentCjNum\n sdjs = _this11.workOrderCurrentCjNum != null ? Number(_this11.workOrderCurrentCjNum) : null;\n lifeWarnRatio = _this11.normalizeLifeWarn(_this11.lifeWarnInput);\n payload = {\n workOrderNo: _this11.workOrderNo,\n machineNo: _this11.machineNo,\n toolNo: _this11.selectedToolNo,\n type: '涓婃満',\n useLimit: useLimit,\n sdjs: sdjs,\n // 涓婂垁璁℃暟锛堝伐鍗曞綋鍓嶆暟閲囷級\n modlLifeWorning: lifeWarnRatio // 鏂板\n };\n _context9.prev = 19;\n _this11.submitting = true;\n _context9.next = 23;\n return _this11.$post({\n url: '/MesCutterLedger/SubmitToolAction',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 23:\n res = _context9.sent;\n if (!(res.data && res.data.outSum === \"0\")) {\n _context9.next = 29;\n break;\n }\n uni.showToast({\n title: res.data.outMsg || '',\n icon: 'error'\n });\n return _context9.abrupt(\"return\");\n case 29:\n if (res.data && res.data.outMsg) {\n uni.showToast({\n title: res.data.outMsg,\n icon: 'none'\n });\n }\n case 30:\n if (!(res.status === 0)) {\n _context9.next = 33;\n break;\n }\n _context9.next = 33;\n return _this11.fetchFormData();\n case 33:\n _context9.next = 40;\n break;\n case 35:\n _context9.prev = 35;\n _context9.t0 = _context9[\"catch\"](19);\n __f__(\"error\", _context9.t0, \" at components/mold.vue:476\");\n _this11.$showMessage('涓婂垁鎻愪氦澶辫触锛岃妫�鏌ョ綉缁�');\n throw _context9.t0;\n case 40:\n _context9.prev = 40;\n _this11.submitting = false;\n return _context9.finish(40);\n case 43:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, null, [[19, 35, 40, 43]]);\n }))();\n },\n // 涓嬪垁鏃朵紶閫� xdjs = 宸ュ崟 currentCjNum\n handleDownTool: function handleDownTool() {\n var _this12 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n var useLimit, xdjs, lifeWarnRatio, payload, res;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (_this12.workOrderNo) {\n _context10.next = 3;\n break;\n }\n _this12.$showMessage('宸ュ崟鍙蜂笉鑳戒负绌�');\n return _context10.abrupt(\"return\");\n case 3:\n if (_this12.machineNo) {\n _context10.next = 6;\n break;\n }\n _this12.$showMessage('鏈哄彴鍙蜂笉鑳戒负绌�');\n return _context10.abrupt(\"return\");\n case 6:\n if (_this12.selectedToolNo) {\n _context10.next = 9;\n break;\n }\n _this12.$showMessage('鍒�鍏风紪鍙蜂笉鑳戒负绌�');\n return _context10.abrupt(\"return\");\n case 9:\n //涓嬪垁涓嶅己鍒跺綍鍏ヤ娇鐢ㄤ笂闄怽n //if (!this.useLimitInput) { this.$showMessage('浣跨敤涓婇檺涓嶈兘涓虹┖'); return; }\n useLimit = Number(_this12.useLimitInput); //if (isNaN(useLimit) || useLimit <= 0) { this.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺'); return; }\n // 涓嬪垁璁℃暟鍚屾牱鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n xdjs = _this12.workOrderCurrentCjNum != null ? Number(_this12.workOrderCurrentCjNum) : null;\n lifeWarnRatio = _this12.normalizeLifeWarn(_this12.lifeWarnInput);\n payload = {\n workOrderNo: _this12.workOrderNo,\n machineNo: _this12.machineNo,\n toolNo: _this12.selectedToolNo,\n type: '涓嬫満',\n useLimit: useLimit,\n xdjs: xdjs,\n // 涓嬪垁璁℃暟\n modlLifeWorning: lifeWarnRatio // 鏂板\n };\n _context10.prev = 13;\n _this12.submitting = true;\n _context10.next = 17;\n return _this12.$post({\n url: '/MesCutterLedger/SubmitToolAction',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 17:\n res = _context10.sent;\n if (!(res.data && res.data.outSum === \"0\")) {\n _context10.next = 23;\n break;\n }\n uni.showToast({\n title: res.data.outMsg || '',\n icon: 'error'\n });\n return _context10.abrupt(\"return\");\n case 23:\n if (res.data && res.data.outMsg) {\n uni.showToast({\n title: res.data.outMsg,\n icon: 'none'\n });\n }\n case 24:\n if (!(res.status === 0)) {\n _context10.next = 27;\n break;\n }\n _context10.next = 27;\n return _this12.fetchFormData();\n case 27:\n _context10.next = 34;\n break;\n case 29:\n _context10.prev = 29;\n _context10.t0 = _context10[\"catch\"](13);\n __f__(\"error\", _context10.t0, \" at components/mold.vue:529\");\n _this12.$showMessage('涓嬪垁鎻愪氦澶辫触锛岃妫�鏌ョ綉缁�');\n throw _context10.t0;\n case 34:\n _context10.prev = 34;\n _this12.submitting = false;\n return _context10.finish(34);\n case 37:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, null, [[13, 29, 34, 37]]);\n }))();\n },\n cancel: function cancel() {\n this.selectedToolNo = '';\n this.toolName = '';\n this.toolModel = '';\n this.useLimitInput = '';\n this.lifeWarnInput = ''; // 鏂板锛氭竻绌篭n this.isDirty = false;\n },\n fetchFormData: function fetchFormData() {\n var _this13 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {\n var payload, _ref5, _ref6, _ref7, _res$data$total2, _res$data4, _res$data5, res, list, getField, mapped, totalFromRes;\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n if (!(!_this13.workOrderNo || !_this13.machineNo)) {\n _context11.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁', \" at components/mold.vue:546\");\n return _context11.abrupt(\"return\");\n case 3:\n _this13.loadingForm = true;\n payload = {\n workOrderNo: _this13.workOrderNo.trim(),\n machineNo: _this13.machineNo.trim()\n };\n _context11.prev = 5;\n _context11.next = 8;\n return _this13.$post({\n url: '/MesCutterLedger/GetFormData',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 8:\n res = _context11.sent;\n if (!(res.status !== 0)) {\n _context11.next = 13;\n break;\n }\n _this13.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');\n _this13.toolRecords = [];\n return _context11.abrupt(\"return\");\n case 13:\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n getField = function getField(obj) {\n for (var _len2 = arguments.length, keys = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n keys[_key2 - 1] = arguments[_key2];\n }\n for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {\n var k = _keys2[_i2];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n };\n mapped = (list || []).map(function (t) {\n var _getField, _getField2;\n var upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');\n var downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');\n var lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');\n var currentCjNum = getField(t, 'currentCjNum', 'CURRENTCJNUM', 'CurrentCjNum');\n var useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');\n var useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');\n var percent = '';\n if (useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n percent = (Number(useCount) / Number(useLimit) * 100).toFixed(0) + '%';\n }\n var parseNumber = function parseNumber(v) {\n if (v === null || v === undefined || v === '') return null;\n var s = String(v).replace(/[,锛�%]/g, '').trim();\n var n = parseFloat(s);\n return Number.isFinite(n) ? n : null;\n };\n var formatPercent = function formatPercent(n) {\n if (n === null || n === undefined || isNaN(n)) return '';\n if (n <= 1) return \"\".concat((n * 100).toFixed(0), \"%\");\n return \"\".concat(Number(n).toFixed(0), \"%\");\n };\n var lifeWarnNum = parseNumber(lifeWarnRaw);\n var warnStatus = getField(t, 'status', 'STATUS') || '';\n if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n var percentNum = Number(useCount) / Number(useLimit);\n warnStatus = percentNum >= lifeWarnNum ? '棰勮' : '姝e父';\n } else {\n warnStatus = warnStatus || '鏈煡';\n }\n return {\n id: getField(t, 'id', 'ID') || \"\".concat(getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || '', \"-\").concat(upTimeRaw || ''),\n no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',\n name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',\n upTime: _this13.formatDateTime(upTimeRaw),\n upCount: (_getField = getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount')) !== null && _getField !== void 0 ? _getField : '',\n downTime: _this13.formatDateTime(downTimeRaw),\n downCount: (_getField2 = getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount')) !== null && _getField2 !== void 0 ? _getField2 : '',\n useCount: useCount !== null && useCount !== void 0 ? useCount : '',\n useLimit: useLimit !== null && useLimit !== void 0 ? useLimit : '',\n lifePercent: percent,\n lifeWarn: formatPercent(lifeWarnNum),\n warnStatus: warnStatus,\n currentCjNum: currentCjNum\n };\n }); // 鏂板锛氭寜涓婂垁鏃堕棿闄嶅簭鎺掑簭锛堣秺鏅氱殑瓒婁笂闈級\n mapped.sort(function (a, b) {\n // 鏃堕棿鏍煎紡濡� \"10-24 16:03\"锛岃浆涓� Date 瀵硅薄姣旇緝\n var parse = function parse(s) {\n if (!s) return 0;\n // 琛ュ勾浠斤紝鍋囪閮芥槸浠婂勾\n var year = new Date().getFullYear();\n return new Date(\"\".concat(year, \"-\").concat(s.replace(/-/g, '-'), \":00\")).getTime();\n };\n return parse(b.upTime) - parse(a.upTime); // 娉ㄦ剰杩欓噷椤哄簭鍙嶈繃鏉n });\n\n _this13.toolRecords = mapped;\n totalFromRes = Number((_ref5 = (_ref6 = (_ref7 = (_res$data$total2 = (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : _res$data4.total) !== null && _res$data$total2 !== void 0 ? _res$data$total2 : (_res$data5 = res.data) === null || _res$data5 === void 0 ? void 0 : _res$data5.totalCount) !== null && _ref7 !== void 0 ? _ref7 : res.total) !== null && _ref6 !== void 0 ? _ref6 : res.totalCount) !== null && _ref5 !== void 0 ? _ref5 : mapped.length);\n _this13.total = Number.isFinite(totalFromRes) ? totalFromRes : mapped.length;\n _context11.next = 27;\n break;\n case 22:\n _context11.prev = 22;\n _context11.t0 = _context11[\"catch\"](5);\n __f__(\"error\", '鑾峰彇琛ㄥ崟鏁版嵁閿欒:', _context11.t0, \" at components/mold.vue:645\");\n _this13.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this13.toolRecords = [];\n case 27:\n _context11.prev = 27;\n _this13.loadingForm = false;\n return _context11.finish(27);\n case 30:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, null, [[5, 22, 27, 30]]);\n }))();\n },\n // 鑷姩甯﹀嚭宸ュ崟鍒�鍏蜂俊鎭紝骞惰幏鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n fetchDefaultToolFromWorkOrder: function fetchDefaultToolFromWorkOrder() {\n var _this14 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {\n var _res$data6, res, _ref8, _order$CurrentCjNum, order, warn;\n return _regenerator.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n if (_this14.machineNo) {\n _context12.next = 2;\n break;\n }\n return _context12.abrupt(\"return\");\n case 2:\n _context12.prev = 2;\n _context12.next = 5;\n return _this14.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this14.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context12.sent;\n if (res.status === 0 && Array.isArray((_res$data6 = res.data) === null || _res$data6 === void 0 ? void 0 : _res$data6.tbBillList) && res.data.tbBillList.length > 0) {\n order = res.data.tbBillList[0];\n _this14.selectedToolNo = order.cutterId || order.cutteR_ID || '';\n _this14.toolName = order.cutterName || order.cutteR_NAME || '';\n _this14.toolModel = order.cutterModel || order.cutteR_MODEL || '';\n // 鍏抽敭锛氳幏鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n _this14.workOrderCurrentCjNum = (_ref8 = (_order$CurrentCjNum = order.CurrentCjNum) !== null && _order$CurrentCjNum !== void 0 ? _order$CurrentCjNum : order.currentCjNum) !== null && _ref8 !== void 0 ? _ref8 : null;\n // 鏂板锛氳嚜鍔ㄥ~鍏呭鍛芥瘮棰勮鍊糪n if (order.modlLifeWorning !== undefined && order.modlLifeWorning !== null) {\n warn = Number(order.modlLifeWorning);\n _this14.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n _this14.lifeWarnInput = '';\n }\n } else {\n _this14.workOrderCurrentCjNum = null;\n }\n _context12.next = 13;\n break;\n case 9:\n _context12.prev = 9;\n _context12.t0 = _context12[\"catch\"](2);\n __f__(\"warn\", '鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', _context12.t0, \" at components/mold.vue:679\");\n _this14.workOrderCurrentCjNum = null;\n case 13:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, null, [[2, 9]]);\n }))();\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (!dateTimeStr) return '';\n try {\n var s = String(dateTimeStr).trim();\n if (/^\\d{10}$/.test(s)) {\n var d = new Date(Number(s) * 1000);\n return \"\".concat(d.getMonth() + 1, \"-\").concat(d.getDate(), \" \").concat(d.getHours(), \":\").concat(String(d.getMinutes()).padStart(2, '0'));\n }\n if (/^\\d{13}$/.test(s)) {\n var _d = new Date(Number(s));\n return \"\".concat(_d.getMonth() + 1, \"-\").concat(_d.getDate(), \" \").concat(_d.getHours(), \":\").concat(String(_d.getMinutes()).padStart(2, '0'));\n }\n var date = new Date(dateTimeStr);\n if (!isNaN(date.getTime())) {\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n }\n var match = String(dateTimeStr).match(/(\\d{1,4}[-\\/]\\d{1,2}[-\\/]\\d{1,2}).*?(\\d{1,2}:\\d{2})/);\n if (match) return \"\".concat(match[1].replace(/-/g, '/').replace(/^\\d{4}\\//, function (m) {\n return m;\n }), \" \").concat(match[2]);\n return String(dateTimeStr);\n } catch (_unused) {\n return String(dateTimeStr);\n }\n }\n },\n mounted: function mounted() {\n var _this15 = this;\n this.fetchTools('');\n this.machineNo = uni.getStorageSync('machineNo') || '';\n this.workOrderNo = uni.getStorageSync('daa001') || '';\n if (this.machineNo && this.workOrderNo) {\n this.fetchFormData().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {\n return _regenerator.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return _this15.fetchDefaultToolFromWorkOrder();\n case 2:\n // 杩涘叆椤甸潰鏃惰祴鍊肩涓�琛� currentCjNum\n if (_this15.toolRecords.length > 0) {\n _this15.$set(_this15.toolRecords[0], 'currentCjNum', _this15.workOrderCurrentCjNum);\n }\n case 3:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n })));\n } else {\n __f__(\"warn\", '鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇琛ㄥ崟鏁版嵁', \" at components/mold.vue:721\");\n }\n\n // 鍚姩鑷姩淇濆瓨瀹氭椂鍣╘n //this.startAutoSave();\n },\n beforeDestroy: function beforeDestroy() {\n // 娓呯悊瀹氭椂鍣紝闃叉鍐呭瓨娉勬紡\n this.stopAutoSave();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9tb2xkLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibWFjaGluZU5vIiwid29ya09yZGVyTm8iLCJhY3RpdmVUb29sTm8iLCJwYWdlSW5kZXgiLCJwYWdlU2l6ZSIsInRvdGFsIiwidG9vbExpc3QiLCJzZWxlY3RlZFRvb2xObyIsInRvb2xOYW1lIiwidG9vbE1vZGVsIiwic2hvd1Rvb2xEaWFsb2ciLCJzZWFyY2hLZXkiLCJmaWx0ZXJlZFRvb2xzIiwidXNlTGltaXRJbnB1dCIsImxpZmVXYXJuSW5wdXQiLCJ0b29sUmVjb3JkcyIsImxvYWRpbmdUb29scyIsImxvYWRpbmdGb3JtIiwic3VibWl0dGluZyIsIl9zZWFyY2hUaW1lciIsIndvcmtPcmRlckN1cnJlbnRDak51bSIsImF1dG9TYXZlVGltZXIiLCJpc0RpcnR5IiwiYXV0b1NhdmVJbnRlcnZhbE1zIiwiYXV0b1NhdmVFbmFibGVkIiwiYXV0b1NhdmVBY3Rpb25OYW1lIiwiY29tcHV0ZWQiLCJ0b3RhbFBhZ2VzIiwid2F0Y2giLCJtZXRob2RzIiwiZmV0Y2hDdXJyZW50Q2pOdW0iLCJ1cmwiLCJoZWFkZXJzIiwicmVzIiwiZm91bmQiLCJ4IiwiaGFuZGxlUmVmcmVzaCIsInN0YXJ0QXV0b1NhdmUiLCJzdG9wQXV0b1NhdmUiLCJjbGVhckludGVydmFsIiwiYXV0b1NhdmVUaWNrIiwiZm4iLCJub3JtYWxpemVMaWZlV2FybiIsIm9wZW5Ub29sRGlhbG9nIiwiY2xvc2VUb29sRGlhbG9nIiwiZmV0Y2hUb29scyIsInBheWxvYWQiLCJnZXRGaWVsZCIsImtleXMiLCJtYXBwZWQiLCJubyIsIm5hbWUiLCJtb2RlbCIsImxpZmVXYXJuIiwidG90YWxGcm9tUmVzIiwicHJldlBhZ2UiLCJuZXh0UGFnZSIsIm9uU2VhcmNoS2V5SW5wdXQiLCJjbGVhclRpbWVvdXQiLCJzZWFyY2hUb29sIiwic2VsZWN0VG9vbCIsImNvbmZpcm1Ub29sIiwic2V0VXNlTGltaXQiLCJ2IiwiaXNOYU4iLCJ1c2VMaW1pdCIsImhhbmRsZVVwVG9vbCIsInNkanMiLCJsaWZlV2FyblJhdGlvIiwidG9vbE5vIiwidHlwZSIsIm1vZGxMaWZlV29ybmluZyIsInVuaSIsInRpdGxlIiwiaWNvbiIsImhhbmRsZURvd25Ub29sIiwieGRqcyIsImNhbmNlbCIsImZldGNoRm9ybURhdGEiLCJsaXN0IiwicGVyY2VudCIsIndhcm5TdGF0dXMiLCJpZCIsInVwVGltZSIsInVwQ291bnQiLCJkb3duVGltZSIsImRvd25Db3VudCIsInVzZUNvdW50IiwibGlmZVBlcmNlbnQiLCJjdXJyZW50Q2pOdW0iLCJmZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlciIsIm9yZGVyIiwid2FybiIsImZvcm1hdERhdGVUaW1lIiwibW91bnRlZCIsImJlZm9yZURlc3Ryb3kiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBb0xBO0VBQ0FBO0lBQ0E7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQUE7O01BRUE7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBckI7TUFBQTtJQUFBO0lBQ0FNO01BQUE7SUFBQTtJQUNBQztNQUFBO0lBQUE7SUFDQU47TUFBQTtJ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O2dCQUFBO2dCQUNBO2dCQUFBO2dCQUFBLE9BQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFFQTtJQUNBQztNQUFBO01BQ0FDO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsSUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtnQkFBQTtjQUFBO2dCQUdBQztnQkFBQSxNQUNBQztrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtnQkFBQTtjQUFBO2dCQUdBO2tCQUNBO29CQUNBO3NCQUFBQztvQkFBQTtrQkFDQTtrQkFDQTtnQkFDQTtnQkFDQTtrQkFBQTtvQkFBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsSUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBLElBQ0E7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFBQSxJQUNBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUFBO2dCQUFBO2NBQUE7Z0JBQUEsSUFFQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUNBRDtnQkFBQSxNQUNBRDtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUVBO2dCQUNBRztnQkFDQUM7Z0JBQ0F0QjtrQkFDQTdDO2tCQUNBRDtrQkFDQXFFO2tC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PHRlbXBsYXRlPlxuICAgIDx2aWV3IGNsYXNzPVwicGFnZVwiPlxuICAgICAgICA8IS0tIOWIgOWFt+mAieaLqeWMuiAtLT5cbiAgICAgICAgPHZpZXcgY2xhc3M9XCJ0b3Atc2VjdGlvbi1ncmlkXCI+XG4gICAgICAgICAgICA8IS0tIOesrOS4gOihjO+8muenu+mZpOWIgOWFt+ebruW9leaMiemSriAtLT5cbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+5YiA5YW357yW5Y+377yaPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXQgc21hbGwtZm9udFwiIHYtbW9kZWw9XCJzZWxlY3RlZFRvb2xOb1wiIHBsYWNlaG9sZGVyPVwi6K+36YCa6L+H5YiA5YW355uu5b2V6YCJ5oupXCIgZGlzYWJsZWQgLz5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmb3JtLWNlbGwgZm9ybS1jZWxsLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBoaWdobGlnaHQtbGFiZWxcIj7kvb/nlKjkuIrpmZDvvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dCBzbWFsbC1mb250IGlucHV0LXVzZS1saW1pdFwiIHR5cGU9XCJudW1iZXJcIiB2LW1vZGVsPVwidXNlTGltaXRJbnB1dFwiIHBsYWNlaG9sZGVyPVwi5q+P5qyh5LiK5YiA5pe25omL5aGr5LiK6ZmQXCIgOmRpc2FibGVkPVwiIXNlbGVjdGVkVG9vbE5vIHx8IGxvYWRpbmdGb3JtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6MTZweDtcIj7lr7/lkb3mr5TpooTorablgLzvvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImlucHV0LXdpdGgtdW5pdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXQgc21hbGwtZm9udCBpbnB1dC1saWZlLXdhcm5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJsaWZlV2FybklucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuWmgjkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCIhc2VsZWN0ZWRUb29sTm8gfHwgbG9hZGluZ0Zvcm1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1bml0LXRleHRcIj4lPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgPC92aWV3PlxuXG4gICAgICAgICAgICA8IS0tIOesrOS6jOihjO+8muWcqOacgOWQjua3u+WKoOWIgOWFt+ebruW9leaMiemSriAtLT5cbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8IS0tIOWIgOWFt+WQjeensCAtLT5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+5YiA5YW35ZCN56ew77yaPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXQgc21hbGwtZm9udCBpbnB1dC10b29sLW5hbWVcIiB2LW1vZGVsPVwidG9vbE5hbWVcIiBwbGFjZWhvbGRlcj1cIuWIgOWFt+W4puWHulwiIGRpc2FibGVkIC8+XG4gICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgICAgIDwhLS0g6KeE5qC85Z6L5Y+3IC0tPlxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZm9ybS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj7op4TmoLzlnovlj7fvvJo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dCBzbWFsbC1mb250IGlucHV0LXRvb2wtbW9kZWxcIiB2LW1vZGVsPVwidG9vbE1vZGVsXCIgcGxhY2Vob2xkZXI9XCLliIDlhbfluKblh7pcIiBkaXNhYmxlZCAvPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8IS0tIOWIgOWFt+ebruW9leaMiemSruWPs+enuyAtLT5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tY2VsbCB0b29sLWRpci1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYmx1ZSBsYXJnZS1idG5cIiBAY2xpY2s9XCJvcGVuVG9vbERpYWxvZ1wiIDpkaXNhYmxlZD1cImxvYWRpbmdUb29sc1wiPuWIgOWFt+ebruW9lTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8IS0tIOaWsOWinu+8muWIt+aWsOaMiemSriAtLT5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tY2VsbFwiIHN0eWxlPVwiZmxleDowIDAgYXV0bzsgbWFyZ2luLWxlZnQ6MTZweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1ibHVlIGxhcmdlLWJ0blwiIEBjbGljaz1cImhhbmRsZVJlZnJlc2hcIiA6ZGlzYWJsZWQ9XCJsb2FkaW5nRm9ybSB8fCBzdWJtaXR0aW5nXCI+5Yi35pawPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICA8L3ZpZXc+ICA8IS0tIOi/memHjOmXreWQiCB0b3Atc2VjdGlvbi1ncmlkIC0tPlxuICAgICAgICA8IS0tIOaTjeS9nOaMiemSriAtIOenu+WHuiB0b3Atc2VjdGlvbi1ncmlkIC0tPlxuICAgICAgICA8dmlldyBjbGFzcz1cImJ1dHRvbi1yb3dcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlLWJ0blwiIEBjbGljaz1cImhhbmRsZVVwVG9vbFwiIDpkaXNhYmxlZD1cInN1Ym1pdHRpbmcgfHwgbG9hZGluZ0Zvcm1cIj7kuIrliIDmj5DkuqQoPeiwg+acuuW8gOWniyk8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlLWJ0blwiIEBjbGljaz1cImhhbmRsZURvd25Ub29sXCIgOmRpc2FibGVkPVwic3VibWl0dGluZyB8fCBsb2FkaW5nRm9ybVwiPuS4i+WIgOaPkOS6pDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiBAY2xpY2s9XCJjYW5jZWxcIiA6ZGlzYWJsZWQ9XCJzdWJtaXR0aW5nIHx8IGxvYWRpbmdGb3JtXCI+5riF56m65YiA5YW36YCJ5oupPC9idXR0b24+XG4gICAgICAgIDwvdmlldz5cblxuICAgICAgICA8IS0tIOWIgOWFt+ebruW9leW8ueeqlyAtLT5cbiAgICAgICAgPHZpZXcgdi1pZj1cInNob3dUb29sRGlhbG9nXCIgY2xhc3M9XCJkaWFsb2ctb3ZlcmxheVwiPlxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJkaWFsb2dcIj5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHYtbW9kZWw9XCJzZWFyY2hLZXlcIiBwbGFjZWhvbGRlcj1cIui+k+WFpeWIgOWFt+e8lueggeOAgeWQjeensOaooeeziuaQnOe0olwiIGNsYXNzPVwiaW5wdXRcIiBAaW5wdXQ9XCJvblNlYXJjaEtleUlucHV0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1ibHVlXCIgQGNsaWNrPVwic2VhcmNoVG9vbFwiIDpkaXNhYmxlZD1cImxvYWRpbmdUb29sc1wiPuaQnOe0ojwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInRvb2wtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHYtZm9yPVwidG9vbCBpbiBmaWx0ZXJlZFRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwidG9vbC5ub1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwieyBhY3RpdmU6IGFjdGl2ZVRvb2xObyA9PT0gdG9vbC5ubyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzZWxlY3RUb29sKHRvb2wpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0b29sLm5vIH19IHwge3sgdG9vbC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1ibHVlXCIgQGNsaWNrPVwicHJldlBhZ2VcIiA6ZGlzYWJsZWQ9XCJwYWdlSW5kZXggPT09IDEgfHwgbG9hZGluZ1Rvb2xzXCI+5LiK5LiA6aG1PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbjogMCAxMnB4O1wiPuesrHt7IHBhZ2VJbmRleCB9femhtSAvIOWFsXt7IHRvdGFsUGFnZXMgfX3pobU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWJsdWVcIiBAY2xpY2s9XCJuZXh0UGFnZVwiIDpkaXNhYmxlZD1cInBhZ2VJbmRleCA9PT0gdG90YWxQYWdlcyB8fCBsb2FkaW5nVG9vbHNcIj7kuIvkuIDpobU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDE4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWJsdWVcIiBAY2xpY2s9XCJjb25maXJtVG9vbFwiPuehruWumjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1kaXNhYmxlZFwiIEBjbGljaz1cImNsb3NlVG9vbERpYWxvZ1wiPuWPlua2iDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgIDwvdmlldz5cblxuICAgICAgICA8IS0tIOWIgOWFt+S9v+eUqOiusOW9leihqOagvCAtLT5cbiAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJzdHlsZWQtdGFibGVcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjclXCI+5YiA5YW357yW5Y+3PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjEyJVwiPuWIgOWFt+WQjeensDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIrliIDml7bpl7Q8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4iuWIgOiuoeaVsDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIvliIDml7bpl7Q8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4i+WIgOiuoeaVsDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5L2/55So5qyh5pWwPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kvb/nlKjkuIrpmZA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlCU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlOmihOitpuWAvDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPumihOitpueKtuaAgTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPuWIgOWFt+WcqOacuueKtuaAgTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihpdGVtLCBpZHgpIGluIHRvb2xSZWNvcmRzXCIgOmtleT1cIml0ZW0uaWRcIiA6Y2xhc3M9XCJ7J3Jvdy1vZGQnOiBpZHggJSAyID09PSAwfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0ubm8gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPnt7IGl0ZW0ubmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS51cFRpbWUgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+e3sgaXRlbS51cENvdW50ICE9IG51bGwgPyBpdGVtLnVwQ291bnQgOiAnJyB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5kb3duVGltZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOWPquacieesrOS4gOihjOaYvuekuiBjdXJyZW50Q2pOdW3vvIzlhbblroPooYzmmL7npLogZG93bkNvdW50IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzvvJrkuIvmnLrml7bkuI3lrp7ml7bmmL7npLogY3VycmVudENqTnVt77yM5pi+56S6IGRvd25Db3VudCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCA/IGl0ZW0uY3VycmVudENqTnVtIDogJycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93bkNvdW50ICE9IG51bGwgPyBpdGVtLmRvd25Db3VudCA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25Db3VudCAhPSBudWxsID8gaXRlbS5kb3duQ291bnQgOiAnJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLeS9v+eUqOasoeaVsC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzlrp7ml7borqHnrpfkvb/nlKjmrKHmlbDvvIzoi6XkuLrkuIvmnLrliJnkuI3lrp7ml7bmmL7npLogLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiIWl0ZW0uZG93blRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCAmJiBpdGVtLnVwQ291bnQgIT0gbnVsbCA/IChOdW1iZXIoaXRlbS5jdXJyZW50Q2pOdW0pIC0gTnVtYmVyKGl0ZW0udXBDb3VudCkpIDogKGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS51c2VDb3VudCAhPSBudWxsID8gaXRlbS51c2VDb3VudCA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLnVzZUxpbWl0ICE9IG51bGwgPyBpdGVtLnVzZUxpbWl0IDogJycgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLeWvv+WRveavlCUtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaWR4ID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g56ys5LiA6KGM5a6e5pe26K6h566X5a+/5ZG95q+UJe+8jOiLpeS4uuS4i+acuuWImeS4jeWunuaXtuaYvuekuiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmN1cnJlbnRDak51bSAhPSBudWxsICYmIGl0ZW0udXBDb3VudCAhPSBudWxsICYmIGl0ZW0udXNlTGltaXQgIT0gbnVsbCAmJiBOdW1iZXIoaXRlbS51c2VMaW1pdCkgPiAwID8gTWF0aC5yb3VuZCgoTnVtYmVyKGl0ZW0uY3VycmVudENqTnVtKSAtIE51bWJlcihpdGVtLnVwQ291bnQpKSAvIE51bWJlcihpdGVtLnVzZUxpbWl0KSAqIDEwMCkgKyAnJScgOiAoaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxpZmVQZXJjZW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLmxpZmVXYXJuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA6Y2xhc3M9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnID8gJ3dhcm4tY2VsbCcgOiAoaXRlbS53YXJuU3RhdHVzID09PSAn5q2j5bi4JyA/ICdvay1jZWxsJyA6ICcnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnXCIgY2xhc3M9XCJ3YXJuLWJhZGdlXCI+6K2m5ZGKPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtZWxzZT57eyBpdGVtLndhcm5TdGF0dXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93blRpbWUgPyAn5LiL5py6JyA6ICflnKjmnLonIH19PCEtLeWcqOacuueKtuaAgS0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCIhdG9vbFJlY29yZHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCI+5pqC5peg5pWw5o2uPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC92aWV3PlxuXG4gICAgICAgIDwhLS0g6K+05piOIC0tPlxuICAgICAgICA8IS0tPHZpZXcgY2xhc3M9XCJ0b29sLWRlc2NcIj5cbiAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6cmVkO1wiPifkvb/nlKjkuIrpmZAn5Lul5LiL5YiA5pe255qEJ+S9v+eUqOS4iumZkCfkuLrorqHnrpfmoIflh4Y8L3A+XG4gICAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOnJlZDtcIj7lr7/lkb3mr5TpooTorablgLzpu5jorqTkuLo5MCU8L3A+XG4gICAgICAgIDwvdmlldz4tLT5cbiAgICA8L3ZpZXc+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgZGF0YSgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWFjaGluZU5vOiAnJywvL+acuuWPsOe8lueggVxuICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiAnJywvL+W3peWNleWPt1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2xObzogJycsIC8vIOW9k+WJjemAieS4reeahOWIgOWFt+e8luWPt1xuICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMSxcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogMjAsIC8v5Y2V6aG15pi+56S655qE5YiA5YW35pWw6YePXG4gICAgICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICAgICAgdG9vbExpc3Q6IFtdLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVG9vbE5vOiAnJyxcbiAgICAgICAgICAgICAgICB0b29sTmFtZTogJycsXG4gICAgICAgICAgICAgICAgdG9vbE1vZGVsOiAnJyxcbiAgICAgICAgICAgICAgICBzaG93VG9vbERpYWxvZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VhcmNoS2V5OiAnJyxcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZFRvb2xzOiBbXSxcbiAgICAgICAgICAgICAgICB1c2VMaW1pdElucHV0OiAnJyxcbiAgICAgICAgICAgICAgICBsaWZlV2FybklucHV0OiAnJywgLy8g5paw5aKe77ya5a+/5ZG95q+U6aKE6K2m5YC85Y6f5aeL6L6T5YWlXG4gICAgICAgICAgICAgICAgdG9vbFJlY29yZHM6IFtdLFxuICAgICAgICAgICAgICAgIGxvYWRpbmdUb29sczogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9hZGluZ0Zvcm06IGZhbHNlLFxuICAgICAgICAgICAgICAgIHN1Ym1pdHRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIF9zZWFyY2hUaW1lcjogbnVsbCxcbiAgICAgICAgICAgICAgICB3b3JrT3JkZXJDdXJyZW50Q2pOdW06IG51bGwsIC8vIOW3peWNleW9k+WJjeaVsOmHh1xuXG4gICAgICAgICAgICAgICAgLy8g6Ieq5Yqo5L+d5a2Y55u45YWzXG4gICAgICAgICAgICAgICAgYXV0b1NhdmVUaW1lcjogbnVsbCxcbiAgICAgICAgICAgICAgICBpc0RpcnR5OiBmYWxzZSwgLy8g6KGo5Y2V5piv5ZCm5pyJ5pyq5L+d5a2Y5Y+Y5pu0XG4gICAgICAgICAgICAgICAgYXV0b1NhdmVJbnRlcnZhbE1zOiA1ICogNjAgKiAxMDAwLCAvLyDpu5jorqQgNSDliIbpkp9cbiAgICAgICAgICAgICAgICBhdXRvU2F2ZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgYXV0b1NhdmVBY3Rpb25OYW1lOiAnaGFuZGxlVXBUb29sJyAvLyDoh6rliqjop6blj5HnmoTmlrnms5XlkI3vvIzlj6/mlLnkuLroh6rlrprkuYnkv53lrZjmlrnms5VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXB1dGVkOiB7XG4gICAgICAgICAgICB0b3RhbFBhZ2VzKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgxLCBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMucGFnZVNpemUpIHx8IDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3YXRjaDoge1xuICAgICAgICAgICAgLy8g5qCH6K6w6ISP5pWw5o2u77ya5oyJ6ZyA55uR5ZCs5a2X5q615Y+Y5YyWXG4gICAgICAgICAgICBzZWxlY3RlZFRvb2xObygpIHsgdGhpcy5pc0RpcnR5ID0gdHJ1ZTsgfSxcbiAgICAgICAgICAgIHVzZUxpbWl0SW5wdXQoKSB7IHRoaXMuaXNEaXJ0eSA9IHRydWU7IH0sXG4gICAgICAgICAgICBsaWZlV2FybklucHV0KCkgeyB0aGlzLmlzRGlydHkgPSB0cnVlOyB9LFxuICAgICAgICAgICAgdG9vbE5hbWUoKSB7IHRoaXMuaXNEaXJ0eSA9IHRydWU7IH0sXG4gICAgICAgICAgICB0b29sTW9kZWwoKSB7IHRoaXMuaXNEaXJ0eSA9IHRydWU7IH1cbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgLy/mn6Xor6LlvZPliY3mlbDph4fmlbDvvIzkvZzkuLrkuIvliIDorqHmlbDlrp7ml7bmmL7npLpcbiAgICAgICAgICAgIGFzeW5jIGZldGNoQ3VycmVudENqTnVtKHRvb2xObykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYWNoaW5lTm8pIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMCAmJiBBcnJheS5pc0FycmF5KHJlcy5kYXRhPy50YkJpbGxMaXN0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSByZXMuZGF0YS50YkJpbGxMaXN0LmZpbmQoeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHguY3V0dGVySWQgPT09IHRvb2xObyB8fCB4LmN1dHRlUl9JRCA9PT0gdG9vbE5vXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kID8gKGZvdW5kLkN1cnJlbnRDak51bSA/PyBmb3VuZC5jdXJyZW50Q2pOdW0gPz8gbnVsbCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+iOt+WPlmN1cnJlbnRDak51beWksei0pScsIGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIOaWsOWinu+8muWIt+aWsOaMiemSruWkhOeQhuaWueazlVxuICAgICAgICAgICAgYXN5bmMgaGFuZGxlUmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoVG9vbHMoJycpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hY2hpbmVObyAmJiB0aGlzLndvcmtPcmRlck5vKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIOWIt+aWsOWQjui1i+WAvOesrOS4gOihjCBjdXJyZW50Q2pOdW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9vbFJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMudG9vbFJlY29yZHNbMF0sICdjdXJyZW50Q2pOdW0nLCB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+WIt+aWsOWujOaIkCcpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOiHquWKqOS/neWtmO+8muWQr+WKqFxuICAgICAgICAgICAgc3RhcnRBdXRvU2F2ZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYXV0b1NhdmVFbmFibGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wQXV0b1NhdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9TYXZlVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b1NhdmVUaWNrKCk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcy5hdXRvU2F2ZUludGVydmFsTXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOiHquWKqOS/neWtmO+8muWBnOatolxuICAgICAgICAgICAgc3RvcEF1dG9TYXZlKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9TYXZlVGltZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlVGltZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9TYXZlVGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDoh6rliqjkv53lrZjvvJrmr4/mrKHlrprml7bmiafooYzml7bnmoTpgLvovpFcbiAgICAgICAgICAgIGFzeW5jIGF1dG9TYXZlVGljaygpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYXV0b1NhdmVFbmFibGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRGlydHkpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdWJtaXR0aW5nIHx8IHRoaXMubG9hZGluZ0Zvcm0pIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZuID0gdGhpcy5hdXRvU2F2ZUFjdGlvbk5hbWUgJiYgdHlwZW9mIHRoaXNbdGhpcy5hdXRvU2F2ZUFjdGlvbk5hbWVdID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgID8gdGhpc1t0aGlzLmF1dG9TYXZlQWN0aW9uTmFtZV1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgICAgIGlmICghZm4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCfoh6rliqjkv53lrZjvvJrmnKrmib7liLDmlrnms5UnLCB0aGlzLmF1dG9TYXZlQWN0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBmbi5jYWxsKHRoaXMpOyAvLyDosIPnlKjkv53lrZjmlrnms5XvvIjkvovlpoIgaGFuZGxlVXBUb29s77yJXG4gICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOS/neWtmOaIkOWKn++8jOa4heiEj+agh+iusO+8iOS/neWtmOaWueazleWGhemDqOiLpeWksei0peayoeacieaKm+WHuuWPr+S/neaMgeatpOaWueW8j++8iVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+iHquWKqOS/neWtmOWksei0pe+8micsIGUpO1xuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIOaWsOWinu+8muWvv+WRveavlOmihOitpuWAvOW9kuS4gOWMliAo6L+U5ZueIDB+MSDmiJYgbnVsbClcbiAgICAgICAgICAgIG5vcm1hbGl6ZUxpZmVXYXJuKHYpIHtcbiAgICAgICAgICAgICAgICBpZiAodiA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBTdHJpbmcodikudHJpbSgpLnJlcGxhY2UoL1sl77yFXS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKHJhdyA9PT0gJycpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcihyYXcpO1xuICAgICAgICAgICAgICAgIGlmICghaXNGaW5pdGUobnVtKSB8fCBudW0gPD0gMCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSA+IDEgPyAobnVtIC8gMTAwKSA6IG51bTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcGVuVG9vbERpYWxvZygpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUb29sRGlhbG9nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IDE7XG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaFRvb2xzKHRoaXMuc2VhcmNoS2V5KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbG9zZVRvb2xEaWFsb2coKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VG9vbERpYWxvZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGZldGNoVG9vbHMoc2VhcmNoS2V5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nVG9vbHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc0N1dHRlckxlZGdlci9RdWVyeVRvb2xzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiB0aGlzLnBhZ2VJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IEFycmF5LmlzQXJyYXkocmVzLmRhdGEpID8gcmVzLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS50YkJpbGxMaXN0KSA/IHJlcy5kYXRhLnRiQmlsbExpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAocmVzLmRhdGEgJiYgcmVzLmRhdGEuZGF0YSkgPyByZXMuZGF0YS5kYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnZXRGaWVsZCA9IChvYmosIC4uLmtleXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cykgaWYgKG9iaj8uW2tdICE9PSB1bmRlZmluZWQgJiYgb2JqPy5ba10gIT09IG51bGwpIHJldHVybiBvYmpba107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDov5nph4zpnIDopoHmioogbGlmZVdhcm4g5a2X5q615Lmf5bim5Ye65p2lXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXBwZWQgPSAocGF5bG9hZCB8fCBbXSkubWFwKHQgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBubzogZ2V0RmllbGQodCwgJ2N1dHRlcklkJywgJ0NVVFRFUl9JRCcsICdjdXR0ZVJfSUQnLCAnZGFBMDAxJywgJ25vJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZ2V0RmllbGQodCwgJ2N1dHRlck5hbWUnLCAnQ1VUVEVSX05BTUUnLCAnY3V0dGVSX05BTUUnLCAnbmFtZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsOiBnZXRGaWVsZCh0LCAnY3V0dGVyTW9kZWwnLCAnQ1VUVEVSX01PREVMJywgJ2N1dHRlUl9NT0RFTCcsICdtb2RlbCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZmVXYXJuOiBnZXRGaWVsZCh0LCAnbW9kbExpZmVXb3JuaW5nJywgJ2xpZmVXYXJuJywgJ0xJRkVfV0FSTicsICdsaWZFX1dBUk4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkVG9vbHMgPSBtYXBwZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xMaXN0ID0gbWFwcGVkLnNsaWNlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsRnJvbVJlcyA9IE51bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YT8udG90YWwgPz8gcmVzLmRhdGE/LnRvdGFsQ291bnQgPz8gcmVzLnRvdGFsID8/IHJlcy50b3RhbENvdW50ID8/IG1hcHBlZC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsID0gTnVtYmVyLmlzRmluaXRlKHRvdGFsRnJvbVJlcykgPyB0b3RhbEZyb21SZXMgOiBtYXBwZWQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnZUluZGV4ID4gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSB8fCAn5p+l6K+i5aSx6LSlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZmV0Y2hUb29scyDplJnor6/vvJonLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn5p+l6K+i5YiA5YW35aSx6LSl77yM6K+35qOA5p+l572R57uc5oiW5o6l5Y+jJyk7XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nVG9vbHMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgcHJldlBhZ2UoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnZUluZGV4ID4gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VJbmRleC0tO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoVG9vbHModGhpcy5zZWFyY2hLZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyBuZXh0UGFnZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdlSW5kZXggPCB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaFRvb2xzKHRoaXMuc2VhcmNoS2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25TZWFyY2hLZXlJbnB1dCgpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fc2VhcmNoVGltZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVG9vbCgpO1xuICAgICAgICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgc2VhcmNoVG9vbCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IDE7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaFRvb2xzKHRoaXMuc2VhcmNoS2V5KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZWxlY3RUb29sKHRvb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVG9vbE5vID0gdG9vbC5ubztcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xOYW1lID0gdG9vbC5uYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMudG9vbE1vZGVsID0gdG9vbC5tb2RlbDtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRvb2xObyA9IHRvb2wubm87XG4gICAgICAgICAgICAgICAgLy8g5paw5aKe77ya5bim5Ye65a+/5ZG95q+U6aKE6K2m5YC8XG4gICAgICAgICAgICAgICAgaWYgKHRvb2wubGlmZVdhcm4gIT09IHVuZGVmaW5lZCAmJiB0b29sLmxpZmVXYXJuICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIOagvOW8j+WMluS4uueZvuWIhuavlOWtl+espuS4slxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXJuID0gTnVtYmVyKHRvb2wubGlmZVdhcm4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSB3YXJuIDw9IDEgPyAod2FybiAqIDEwMCkudG9GaXhlZCgwKSA6IHdhcm4udG9GaXhlZCgwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uZmlybVRvb2woKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VG9vbERpYWxvZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIHNldFVzZUxpbWl0KCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFRvb2xObykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn6K+36YCJ5oup5YiA5YW35ZCO5YaN6K6+572u5LiK6ZmQJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IE51bWJlcih0aGlzLnVzZUxpbWl0SW5wdXQpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hTih2KSB8fCB2IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+i+k+WFpeacieaViOeahOS9v+eUqOS4iumZkCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudG9vbFJlY29yZHMgPSB0aGlzLnRvb2xSZWNvcmRzLm1hcChyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIubm8gPT09IHRoaXMuc2VsZWN0ZWRUb29sTm8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLnIsIHVzZUxpbWl0OiB2IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy50b29sTGlzdCA9IHRoaXMudG9vbExpc3QubWFwKHQgPT4gdC5ubyA9PT0gdGhpcy5zZWxlY3RlZFRvb2xObyA/IHsgLi4udCwgdXNlTGltaXQ6IHYgfSA6IHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfkvb/nlKjkuIrpmZDlt7Lorr7nva7vvIjku4XliY3nq6/mmL7npLrvvIknKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDkuIrliIDml7bkvKDpgJIgc2RqcyA9IOW3peWNlSBjdXJyZW50Q2pOdW1cbiAgICAgICAgICAgIGFzeW5jIGhhbmRsZVVwVG9vbCgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMud29ya09yZGVyTm8pIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+W3peWNleWPt+S4jeiDveS4uuepuicpOyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFjaGluZU5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfmnLrlj7Dlj7fkuI3og73kuLrnqbonKTsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVG9vbE5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfliIDlhbfnvJblj7fkuI3og73kuLrnqbonKTsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgLy/kuIrliIDlvLrliLblvZXlhaXkvb/nlKjkuIrpmZBcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlTGltaXRJbnB1dCkgeyB0aGlzLiRzaG93TWVzc2FnZSgn5L2/55So5LiK6ZmQ5LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVzZUxpbWl0ID0gTnVtYmVyKHRoaXMudXNlTGltaXRJbnB1dCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKHVzZUxpbWl0KSB8fCB1c2VMaW1pdCA8PSAwKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fovpPlhaXmnInmlYjnmoTkvb/nlKjkuIrpmZAnKTsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICAvLyBzZGpzIOS9v+eUqOW3peWNlSBjdXJyZW50Q2pOdW1cbiAgICAgICAgICAgICAgICBjb25zdCBzZGpzID0gdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gIT0gbnVsbCA/IE51bWJlcih0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSkgOiBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuUmF0aW8gPSB0aGlzLm5vcm1hbGl6ZUxpZmVXYXJuKHRoaXMubGlmZVdhcm5JbnB1dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgd29ya09yZGVyTm86IHRoaXMud29ya09yZGVyTm8sXG4gICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXG4gICAgICAgICAgICAgICAgICAgIHRvb2xObzogdGhpcy5zZWxlY3RlZFRvb2xObyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ+S4iuacuicsXG4gICAgICAgICAgICAgICAgICAgIHVzZUxpbWl0LFxuICAgICAgICAgICAgICAgICAgICBzZGpzLC8vIOS4iuWIgOiuoeaVsO+8iOW3peWNleW9k+WJjeaVsOmHh++8iVxuICAgICAgICAgICAgICAgICAgICBtb2RsTGlmZVdvcm5pbmc6IGxpZmVXYXJuUmF0aW8gLy8g5paw5aKeXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9NZXNDdXR0ZXJMZWRnZXIvU3VibWl0VG9vbEFjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEub3V0U3VtID09PSBcIjBcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcy5kYXRhLm91dE1zZyB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5vdXRNc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zaG93VG9hc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuZGF0YS5vdXRNc2csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyDlkI7nu63pgLvovpHnu6fnu63miafooYxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+S4iuWIgOaPkOS6pOWksei0pe+8jOivt+ajgOafpee9kee7nCcpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7IC8vIOaKm+WHuuS7peS+v+iHquWKqOS/neWtmOmAu+i+keaNleiOt+W5tuS/neeVmSBpc0RpcnR5XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOS4i+WIgOaXtuS8oOmAkiB4ZGpzID0g5bel5Y2VIGN1cnJlbnRDak51bVxuICAgICAgICAgICAgYXN5bmMgaGFuZGxlRG93blRvb2woKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLndvcmtPcmRlck5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCflt6XljZXlj7fkuI3og73kuLrnqbonKTsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn5py65Y+w5Y+35LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFRvb2xObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn5YiA5YW357yW5Y+35LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIC8v5LiL5YiA5LiN5by65Yi25b2V5YWl5L2/55So5LiK6ZmQXG4gICAgICAgICAgICAgICAgLy9pZiAoIXRoaXMudXNlTGltaXRJbnB1dCkgeyB0aGlzLiRzaG93TWVzc2FnZSgn5L2/55So5LiK6ZmQ5LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVzZUxpbWl0ID0gTnVtYmVyKHRoaXMudXNlTGltaXRJbnB1dCk7XG4gICAgICAgICAgICAgICAgLy9pZiAoaXNOYU4odXNlTGltaXQpIHx8IHVzZUxpbWl0IDw9IDApIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+i+k+WFpeacieaViOeahOS9v+eUqOS4iumZkCcpOyByZXR1cm47IH1cblxuICAgICAgICAgICAgICAgIC8vIOS4i+WIgOiuoeaVsOWQjOagt+WPluW3peWNleacgOaWsOmHh+mbhuaVsFxuICAgICAgICAgICAgICAgIGNvbnN0IHhkanMgPSB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSAhPSBudWxsID8gTnVtYmVyKHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlmZVdhcm5SYXRpbyA9IHRoaXMubm9ybWFsaXplTGlmZVdhcm4odGhpcy5saWZlV2FybklucHV0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgICAgICB3b3JrT3JkZXJObzogdGhpcy53b3JrT3JkZXJObyxcbiAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcbiAgICAgICAgICAgICAgICAgICAgdG9vbE5vOiB0aGlzLnNlbGVjdGVkVG9vbE5vLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAn5LiL5py6JyxcbiAgICAgICAgICAgICAgICAgICAgdXNlTGltaXQsXG4gICAgICAgICAgICAgICAgICAgIHhkanMsLy8g5LiL5YiA6K6h5pWwXG4gICAgICAgICAgICAgICAgICAgIG1vZGxMaWZlV29ybmluZzogbGlmZVdhcm5SYXRpbyAvLyDmlrDlop5cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc0N1dHRlckxlZGdlci9TdWJtaXRUb29sQWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5vdXRTdW0gPT09IFwiMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVzLmRhdGEub3V0TXNnIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLm91dE1zZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcy5kYXRhLm91dE1zZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIOWQjue7remAu+i+kee7p+e7reaJp+ihjFxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn5LiL5YiA5o+Q5Lqk5aSx6LSl77yM6K+35qOA5p+l572R57ucJyk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FuY2VsKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sTm8gPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xOYW1lID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy50b29sTW9kZWwgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUxpbWl0SW5wdXQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSAnJzsgLy8g5paw5aKe77ya5riF56m6XG4gICAgICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgZmV0Y2hGb3JtRGF0YSgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMud29ya09yZGVyTm8gfHwgIXRoaXMubWFjaGluZU5vKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign5bel5Y2V5Y+35oiW5py65Y+w5Y+35Li656m677yM6Lez6L+H6I635Y+W6KGo5Y2V5pWw5o2uJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRm9ybSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgd29ya09yZGVyTm86IHRoaXMud29ya09yZGVyTm8udHJpbSgpLFxuICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLnRyaW0oKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy4kcG9zdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvTWVzQ3V0dGVyTGVkZ2VyL0dldEZvcm1EYXRhJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSB8fCAn6I635Y+W6KGo5Y2V5pWw5o2u5aSx6LSlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IEFycmF5LmlzQXJyYXkocmVzLmRhdGEpID8gcmVzLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLnRiQmlsbExpc3QpID8gcmVzLmRhdGEudGJCaWxsTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLmRhdGEpID8gcmVzLmRhdGEuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdldEZpZWxkID0gKG9iaiwgLi4ua2V5cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIGlmIChvYmo/LltrXSAhPT0gdW5kZWZpbmVkICYmIG9iaj8uW2tdICE9PSBudWxsKSByZXR1cm4gb2JqW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwcGVkID0gKGxpc3QgfHwgW10pLm1hcCh0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwVGltZVJhdyA9IGdldEZpZWxkKHQsICd1UF9USU1FJywgJ1VQX1RJTUUnLCAndVBUaW1lJywgJ1VQVElNRScsICdVcFRpbWUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvd25UaW1lUmF3ID0gZ2V0RmllbGQodCwgJ2Rvd05fVElNRScsICdET1dOX1RJTUUnLCAnZG93blRpbWUnLCAnRE9XTlRJTUUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuUmF3ID0gZ2V0RmllbGQodCwgJ2xpZkVfV0FSTicsICdMSUZFX1dBUk4nLCAnbGlmZVdhcm4nLCAnTElGRVdBUk4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDak51bSA9IGdldEZpZWxkKHQsICdjdXJyZW50Q2pOdW0nLCAnQ1VSUkVOVENKTlVNJywgJ0N1cnJlbnRDak51bScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VDb3VudCA9IGdldEZpZWxkKHQsICd1c0VfQ09VTlQnLCAnVVNFX0NPVU5UJywgJ3VzZUNvdW50Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VMaW1pdCA9IGdldEZpZWxkKHQsICd1c0VfTElNSVQnLCAnVVNFX0xJTUlUJywgJ3VzZUxpbWl0Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwZXJjZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlQ291bnQgIT0gbnVsbCAmJiB1c2VMaW1pdCAhPSBudWxsICYmICFpc05hTih1c2VDb3VudCkgJiYgIWlzTmFOKHVzZUxpbWl0KSAmJiBOdW1iZXIodXNlTGltaXQpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnQgPSAoKE51bWJlcih1c2VDb3VudCkgLyBOdW1iZXIodXNlTGltaXQpKSAqIDEwMCkudG9GaXhlZCgwKSArICclJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VOdW1iZXIgPSB2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcodikucmVwbGFjZSgvWyzvvIUlXS9nLCAnJykudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBwYXJzZUZsb2F0KHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXRQZXJjZW50ID0gbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT09IG51bGwgfHwgbiA9PT0gdW5kZWZpbmVkIHx8IGlzTmFOKG4pKSByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPD0gMSkgcmV0dXJuIGAkeyhuICogMTAwKS50b0ZpeGVkKDApfSVgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtOdW1iZXIobikudG9GaXhlZCgwKX0lYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWZlV2Fybk51bSA9IHBhcnNlTnVtYmVyKGxpZmVXYXJuUmF3KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdhcm5TdGF0dXMgPSBnZXRGaWVsZCh0LCAnc3RhdHVzJywgJ1NUQVRVUycpIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpZmVXYXJuTnVtICE9PSBudWxsICYmIHVzZUNvdW50ICE9IG51bGwgJiYgdXNlTGltaXQgIT0gbnVsbCAmJiAhaXNOYU4odXNlQ291bnQpICYmICFpc05hTih1c2VMaW1pdCkgJiYgTnVtYmVyKHVzZUxpbWl0KSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwZXJjZW50TnVtID0gTnVtYmVyKHVzZUNvdW50KSAvIE51bWJlcih1c2VMaW1pdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FyblN0YXR1cyA9IChwZXJjZW50TnVtID49IGxpZmVXYXJuTnVtKSA/ICfpooToraYnIDogJ+ato+W4uCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMgPSB3YXJuU3RhdHVzIHx8ICfmnKrnn6UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBnZXRGaWVsZCh0LCAnaWQnLCAnSUQnKSB8fCBgJHtnZXRGaWVsZCh0LCAnY3V0dGVSX0lEJykgfHwgZ2V0RmllbGQodCwgJ0NVVFRFUl9JRCcpIHx8ICcnfS0ke3VwVGltZVJhdyB8fCAnJ31gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vOiBnZXRGaWVsZCh0LCAnY3V0dGVSX0lEJywgJ0NVVFRFUl9JRCcsICdjdXR0ZXJJZCcsICdubycpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldEZpZWxkKHQsICdjdXR0ZVJfTkFNRScsICdDVVRURVJfTkFNRScsICdjdXR0ZXJOYW1lJywgJ25hbWUnKSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cFRpbWU6IHRoaXMuZm9ybWF0RGF0ZVRpbWUodXBUaW1lUmF3KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cENvdW50OiBnZXRGaWVsZCh0LCAndVBfQ09VTlQnLCAnVVBfQ09VTlQnLCAndXBDb3VudCcpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25UaW1lOiB0aGlzLmZvcm1hdERhdGVUaW1lKGRvd25UaW1lUmF3KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duQ291bnQ6IGdldEZpZWxkKHQsICdkb3dOX0NPVU5UJywgJ0RPV05fQ09VTlQnLCAnZG93bkNvdW50JykgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlQ291bnQ6IHVzZUNvdW50ID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxpbWl0OiB1c2VMaW1pdCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlUGVyY2VudDogcGVyY2VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlV2FybjogZm9ybWF0UGVyY2VudChsaWZlV2Fybk51bSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FyblN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIOaWsOWinu+8muaMieS4iuWIgOaXtumXtOmZjeW6j+aOkuW6j++8iOi2iuaZmueahOi2iuS4iumdou+8iVxuICAgICAgICAgICAgICAgICAgICBtYXBwZWQuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5pe26Ze05qC85byP5aaCIFwiMTAtMjQgMTY6MDNcIu+8jOi9rOS4uiBEYXRlIOWvueixoeavlOi+g1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2UgPSBzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXMpIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIOihpeW5tOS7ve+8jOWBh+iuvumDveaYr+S7iuW5tFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGAke3llYXJ9LSR7cy5yZXBsYWNlKC8tL2csICctJyl9OjAwYCkuZ2V0VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZShiLnVwVGltZSkgLSBwYXJzZShhLnVwVGltZSk7IC8vIOazqOaEj+i/memHjOmhuuW6j+WPjei/h+adpVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gbWFwcGVkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbEZyb21SZXMgPSBOdW1iZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YT8udG90YWwgPz8gcmVzLmRhdGE/LnRvdGFsQ291bnQgPz8gcmVzLnRvdGFsID8/IHJlcy50b3RhbENvdW50ID8/IG1hcHBlZC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbCA9IE51bWJlci5pc0Zpbml0ZSh0b3RhbEZyb21SZXMpID8gdG90YWxGcm9tUmVzIDogbWFwcGVkLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5booajljZXmlbDmja7plJnor686JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn6I635Y+W5pWw5o2u5aSx6LSl77yM6K+35qOA5p+l572R57uc6L+e5o6lJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbFJlY29yZHMgPSBbXTtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdGb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOiHquWKqOW4puWHuuW3peWNleWIgOWFt+S/oeaBr++8jOW5tuiOt+WPluW3peWNleacgOaWsOmHh+mbhuaVsFxuICAgICAgICAgICAgYXN5bmMgZmV0Y2hEZWZhdWx0VG9vbEZyb21Xb3JrT3JkZXIoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMCAmJiBBcnJheS5pc0FycmF5KHJlcy5kYXRhPy50YkJpbGxMaXN0KSAmJiByZXMuZGF0YS50YkJpbGxMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gcmVzLmRhdGEudGJCaWxsTGlzdFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sTm8gPSBvcmRlci5jdXR0ZXJJZCB8fCBvcmRlci5jdXR0ZVJfSUQgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xOYW1lID0gb3JkZXIuY3V0dGVyTmFtZSB8fCBvcmRlci5jdXR0ZVJfTkFNRSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbE1vZGVsID0gb3JkZXIuY3V0dGVyTW9kZWwgfHwgb3JkZXIuY3V0dGVSX01PREVMIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5YWz6ZSu77ya6I635Y+W5bel5Y2V5pyA5paw6YeH6ZuG5pWwXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSA9IG9yZGVyLkN1cnJlbnRDak51bSA/PyBvcmRlci5jdXJyZW50Q2pOdW0gPz8gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOaWsOWinu+8muiHquWKqOWhq+WFheWvv+WRveavlOmihOitpuWAvFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yZGVyLm1vZGxMaWZlV29ybmluZyAhPT0gdW5kZWZpbmVkICYmIG9yZGVyLm1vZGxMaWZlV29ybmluZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm4gPSBOdW1iZXIob3JkZXIubW9kbExpZmVXb3JuaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSB3YXJuIDw9IDEgPyAod2FybiAqIDEwMCkudG9GaXhlZCgwKSA6IHdhcm4udG9GaXhlZCgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign6Ieq5Yqo5bim5Ye65bel5Y2V5YiA5YW35aSx6LSlJywgZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9ybWF0RGF0ZVRpbWUoZGF0ZVRpbWVTdHIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVUaW1lU3RyKSByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IFN0cmluZyhkYXRlVGltZVN0cikudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoL15cXGR7MTB9JC8udGVzdChzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKE51bWJlcihzKSAqIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2QuZ2V0TW9udGgoKSArIDF9LSR7ZC5nZXREYXRlKCl9ICR7ZC5nZXRIb3VycygpfToke1N0cmluZyhkLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgvXlxcZHsxM30kLy50ZXN0KHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoTnVtYmVyKHMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2QuZ2V0SG91cnMoKX06JHtTdHJpbmcoZC5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVRpbWVTdHIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2RhdGUuZ2V0TW9udGgoKSArIDF9LSR7ZGF0ZS5nZXREYXRlKCl9ICR7ZGF0ZS5nZXRIb3VycygpfToke1N0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gU3RyaW5nKGRhdGVUaW1lU3RyKS5tYXRjaCgvKFxcZHsxLDR9Wy1cXC9dXFxkezEsMn1bLVxcL11cXGR7MSwyfSkuKj8oXFxkezEsMn06XFxkezJ9KS8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHJldHVybiBgJHttYXRjaFsxXS5yZXBsYWNlKC8tL2csICcvJykucmVwbGFjZSgvXlxcZHs0fVxcLy8sIChtKSA9PiBtKX0gJHttYXRjaFsyXX1gO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGVUaW1lU3RyKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRlVGltZVN0cik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb3VudGVkKCkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaFRvb2xzKCcnKTtcbiAgICAgICAgICAgIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKSB8fCAnJztcbiAgICAgICAgICAgIHRoaXMud29ya09yZGVyTm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2RhYTAwMScpIHx8ICcnO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tYWNoaW5lTm8gJiYgdGhpcy53b3JrT3JkZXJObykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hGb3JtRGF0YSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIOi/m+WFpemhtemdouaXtui1i+WAvOesrOS4gOihjCBjdXJyZW50Q2pOdW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9vbFJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMudG9vbFJlY29yZHNbMF0sICdjdXJyZW50Q2pOdW0nLCB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCfmnLrlj7Dlj7fmiJblt6XljZXlj7fkuLrnqbrvvIzml6Dms5Xojrflj5booajljZXmlbDmja4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g5ZCv5Yqo6Ieq5Yqo5L+d5a2Y5a6a5pe25ZmoXG4gICAgICAgICAgICAvL3RoaXMuc3RhcnRBdXRvU2F2ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBiZWZvcmVEZXN0cm95KCkge1xuICAgICAgICAgICAgLy8g5riF55CG5a6a5pe25Zmo77yM6Ziy5q2i5YaF5a2Y5rOE5ryPXG4gICAgICAgICAgICB0aGlzLnN0b3BBdXRvU2F2ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuICAgIC50b3Atc2VjdGlvbi1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJ2aDtcbiAgICAgICAgd2lkdGg6IDk5dnc7XG4gICAgICAgIG1heC13aWR0aDogMTkyMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlOWVjZWY7XG4gICAgfVxuXG4gICAgLmZvcm0tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICAgICAgLmZvcm0tcm93Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgLmZvcm0tY2VsbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICAgICAuZm9ybS1jZWxsOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgMjglO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWNlbGw6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAzMiU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tY2VsbDpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIyMHB4OyAvKiDpmZDliLbmnIDlpKflrr3luqbvvIzpgb/lhY3mkpHlvIAgKi9cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB9XG5cbiAgICAuaW5wdXQge1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDIwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RmZTY7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogNTZweCAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuXG4gICAgICAgIC5pbnB1dC5zbWFsbC1mb250IHtcbiAgICAgICAgICAgIC8qIOS4jeiuvue9ruWtl+S9k+Wkp+WwjyAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0OmRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XG4gICAgICAgICAgICBjb2xvcjogI2MwYzRjYztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgIC5pbnB1dC13aXRoLXVuaXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDA7XG4gICAgfVxuXG4gICAgICAgIC5pbnB1dC13aXRoLXVuaXQgLmlucHV0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dC13aXRoLXVuaXQgLmlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogNjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgIC51bml0LXRleHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJ0bi1ibHVlLCAuYnRuLWJsdWUubGFyZ2UtYnRuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBmZjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGhlaWdodDogNzBweCAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICAgIH1cblxuICAgICAgICAuYnRuLWJsdWUubGFyZ2UtYnRuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNjBweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDcycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuM2VtO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMjQsMTQ0LDI1NSwwLjA4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA3MnB4OyAvKiDlnoLnm7TlsYXkuK0gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyog5L+d6K+BbGluZS1oZWlnaHTnlJ/mlYggKi9cbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuLWJsdWU6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQwYTlmZjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tYmx1ZTphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA5NmRkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tYmx1ZTpkaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYmFlN2ZmO1xuICAgICAgICAgICAgY29sb3I6ICM5MWQ1ZmY7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAuYnV0dG9uLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDMycHg7XG4gICAgICAgIG1hcmdpbjogMnZoIDA7XG4gICAgfVxuXG4gICAgLnNhdmUtYnRuLCAuY2FuY2VsLWJ0biB7XG4gICAgICAgIHdpZHRoOiAyOCU7XG4gICAgICAgIHBhZGRpbmc6IDEuNXZoO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBMkU5O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgfVxuXG4gICAgLmNhbmNlbC1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICB9XG5cbiAgICAuc2F2ZS1idG46aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDBhOWZmO1xuICAgIH1cblxuICAgIC5zYXZlLWJ0bjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDk2ZGQ5O1xuICAgIH1cblxuICAgIC5zYXZlLWJ0bjpkaXNhYmxlZCwgLmNhbmNlbC1idG46ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgLyog5by556qX5qC35byPICovXG4gICAgLmRpYWxvZy1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xOCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgIH1cblxuICAgIC5kaWFsb2cge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBwYWRkaW5nOiAzdmggM3Z3O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICB3aWR0aDogOTB2dztcbiAgICAgICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcwdmg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDg1dmg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLDAsMCwwLjEyKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnZoO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAgICAgLmZvcm0tZ3JvdXAgLmlucHV0IHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICAgICAgfVxuXG4gICAgLnRvb2wtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luOiAxdmggMDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC50b29sLWJ0biB7XG4gICAgICAgIGZsZXg6IDAgMCBjYWxjKDIwJSAtIDEwcHgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgICAgICAudG9vbC1idG4uYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMEEyRTk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjMDA4NmMyO1xuICAgICAgICB9XG5cbiAgICAuZGlhbG9nLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDJ2aDtcbiAgICAgICAgcGFkZGluZy10b3A6IDJ2aDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgICAgICAuZGlhbG9nLWFjdGlvbnMgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGlhbG9nLWFjdGlvbnMgPiBkaXY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGdhcDogMThweDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZGlhbG9nLWFjdGlvbnMgLmJ0bi1ibHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIH1cblxuICAgIC5idG4tZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICB9XG5cbiAgICAudGFibGUtc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDF2aCAwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTsgLyog56Gu5L+d6KGo5qC85a655Zmo5Y2g5ruh5a695bqmICovXG4gICAgfVxuXG4gICAgdGFibGUuc3R5bGVkLXRhYmxlIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxODAwcHg7IC8qIOS7jjE2MDBweOWinuWKoOWIsDE4MDBweCAqL1xuICAgICAgICB3aWR0aDogOTh2dzsgLyog5LuOOTV2d+WinuWKoOWIsDk4dncgKi9cbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjYmZiZmJmO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwwLDAsMC4wNik7XG4gICAgfVxuXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0aGVhZCB0aCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNiZmJmYmY7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0Ym9keSB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U4ZThlODtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMTBweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIH1cblxuICAgIC50YWJsZS1zZWN0aW9uIHRhYmxlIHRoOmZpcnN0LWNoaWxkLCAudGFibGUtc2VjdGlvbiB0YWJsZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2JmYmZiZjtcbiAgICB9XG5cbiAgICAudGFibGUtc2VjdGlvbiB0YWJsZSB0aDpsYXN0LWNoaWxkLCAudGFibGUtc2VjdGlvbiB0YWJsZSB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2JmYmZiZjtcbiAgICB9XG5cbiAgICAucm93LW9kZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgfVxuXG4gICAgICAgIC5yb3ctb2RkICsgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICAgICAgfVxuXG4gICAgLm51bSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB9XG5cbiAgICAubGVmdCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIH1cblxuICAgIC53YXJuLWNlbGwge1xuICAgICAgICBjb2xvcjogI2Q5MzAyNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgLm9rLWNlbGwge1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICB9XG5cbiAgICAud2Fybi1iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmNGQ0ZjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgLyog5ZON5bqU5byP6LCD5pW0ICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICAuZm9ybS1jZWxsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybS1sYWJlbCB7XG4gICAgICAgICAgICB3aWR0aDogOTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuLWJsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAxOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlucHV0LWxpZmUtd2FybiB7XG4gICAgICAgIHdpZHRoOiA0OHB4ICFpbXBvcnRhbnQ7IC8qIOeojeW+ruaUvuWuve+8jOmBv+WFjeWtl+S9k+a6ouWHuiAqL1xuICAgICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLmlucHV0LFxuICAgIC5pbnB1dC5zbWFsbC1mb250LFxuICAgIC5pbnB1dC11c2UtbGltaXQsXG4gICAgLmlucHV0LXRvb2wtbW9kZWwsXG4gICAgLmlucHV0LXRvb2wtbmFtZSxcbiAgICAuaW5wdXQtbGlmZS13YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmlucHV0LXRvb2wtbW9kZWwge1xuICAgICAgICB3aWR0aDogMzIwcHggIWltcG9ydGFudDsgLyog5Y6f5Li6MjAwcHjvvIznjrDliqDplb8gKi9cbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAuaW5wdXQtdG9vbC1uYW1lIHtcbiAgICAgICAgd2lkdGg6IDEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgfVxuXG4gICAgLmhpZ2hsaWdodC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjMTg5MGZmICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnRvb2wtZGlyLWNlbGwge1xuICAgICAgICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTZweDsgLyog5LiO6KeE5qC85Z6L5Y+36L6T5YWl5qGG5ouJ5byA6Led56a7ICovXG4gICAgfVxuXG4gICAgLmZvcm0tY2VsbC1mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleDogMCAwIDYwJTtcbiAgICAgICAgbWluLXdpZHRoOiAzMjBweDtcbiAgICB9XG5cbiAgICAgICAgLmZvcm0tY2VsbC1mbGV4IC5mb3JtLWxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybS1jZWxsLWZsZXggLmlucHV0LXVzZS1saW1pdCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgIC5pbnB1dC11c2UtbGltaXQge1xuICAgICAgICB3aWR0aDogNDUwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgZmxleDogbm9uZSAhaW1wb3J0YW50OyAvKiDlhbPplK7vvJrlvbvlupXnpoHmraJmbGV45ouJ5Ly4ICovXG4gICAgfVxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 3));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 9));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n machineNo: '',\n //鏈哄彴缂栫爜\n workOrderNo: '',\n //宸ュ崟鍙穃n activeToolNo: '',\n // 褰撳墠閫変腑鐨勫垁鍏风紪鍙穃n pageIndex: 1,\n pageSize: 20,\n //鍗曢〉鏄剧ず鐨勫垁鍏锋暟閲廫n total: 0,\n toolList: [],\n selectedToolNo: '',\n toolName: '',\n toolModel: '',\n showToolDialog: false,\n searchKey: '',\n filteredTools: [],\n useLimitInput: '',\n lifeWarnInput: '',\n // 鏂板锛氬鍛芥瘮棰勮鍊煎師濮嬭緭鍏n toolRecords: [],\n loadingTools: false,\n loadingForm: false,\n submitting: false,\n _searchTimer: null,\n workOrderCurrentCjNum: null,\n // 宸ュ崟褰撳墠鏁伴噰\n\n // 鑷姩淇濆瓨鐩稿叧\n autoSaveTimer: null,\n isDirty: false,\n // 琛ㄥ崟鏄惁鏈夋湭淇濆瓨鍙樻洿\n autoSaveIntervalMs: 5 * 60 * 1000,\n // 榛樿 5 鍒嗛挓\n autoSaveEnabled: true,\n autoSaveActionName: 'handleUpTool',\n // 鑷姩瑙﹀彂鐨勬柟娉曞悕锛屽彲鏀逛负鑷畾涔変繚瀛樻柟娉昞n\n // 鏂板锛氳皟鏈虹浉鍏冲瓧娈礬n isTiaojiUserSelectShow: false,\n // 璋冩満甯堝倕閫夋嫨寮圭獥\n tiaojiStaffNo: '',\n // 褰撳墠閫変腑鐨勮皟鏈哄笀鍌�(鏍煎紡: 宸ュ彿:濮撳悕)\n tiaojiOkQty: '',\n // 璋冩満鑹搧鏁癨n tiaojiBadQty: '',\n // 璋冩満涓嶈壇鍝佹暟\n tiaojiUsers: [],\n // 璋冩満甯堝倕鍒楄〃\n tiaojiUserSearch: '',\n // 鎼滅储鍏抽敭璇峔n\n // 鏂板锛氭姤璇曚骇鏁版墍闇�瀛楁\n orderId: null,\n // 宸ュ崟ID\n order: {} // 宸ュ崟鏁版嵁\n };\n },\n\n computed: {\n totalPages: function totalPages() {\n return Math.max(1, Math.ceil(this.total / this.pageSize) || 1);\n },\n // 鏂板锛氳皟鏈哄笀鍌呮樉绀哄悕绉癨n tiaojiStaffDisplay: function tiaojiStaffDisplay() {\n if (!this.tiaojiStaffNo) return '';\n var segs = this.tiaojiStaffNo.split(':');\n return segs.length > 1 ? \"\".concat(segs[0], \" \").concat(segs[1]) : this.tiaojiStaffNo;\n },\n // 鏂板锛氳繃婊ゅ悗鐨勮皟鏈哄笀鍌呭垪琛╘n filteredTiaojiUsers: function filteredTiaojiUsers() {\n if (!this.tiaojiUserSearch) return this.tiaojiUsers;\n var kw = this.tiaojiUserSearch.trim().toLowerCase();\n return this.tiaojiUsers.filter(function (u) {\n return u.toLowerCase().includes(kw);\n });\n }\n },\n watch: {\n // 鏍囪鑴忔暟鎹細鎸夐渶鐩戝惉瀛楁鍙樺寲\n selectedToolNo: function selectedToolNo() {\n this.isDirty = true;\n },\n useLimitInput: function useLimitInput() {\n this.isDirty = true;\n },\n lifeWarnInput: function lifeWarnInput() {\n this.isDirty = true;\n },\n toolName: function toolName() {\n this.isDirty = true;\n },\n toolModel: function toolModel() {\n this.isDirty = true;\n }\n },\n methods: {\n //鏌ヨ褰撳墠鏁伴噰鏁帮紝浣滀负涓嬪垁璁℃暟瀹炴椂鏄剧ず\n fetchCurrentCjNum: function fetchCurrentCjNum(toolNo) {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var _res$data, res, _ref, _found$CurrentCjNum, found;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this.machineNo) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", null);\n case 2:\n _context.prev = 2;\n _context.next = 5;\n return _this.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context.sent;\n if (!(res.status === 0 && Array.isArray((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList))) {\n _context.next = 9;\n break;\n }\n found = res.data.tbBillList.find(function (x) {\n return x.cutterId === toolNo || x.cutteR_ID === toolNo;\n });\n return _context.abrupt(\"return\", found ? (_ref = (_found$CurrentCjNum = found.CurrentCjNum) !== null && _found$CurrentCjNum !== void 0 ? _found$CurrentCjNum : found.currentCjNum) !== null && _ref !== void 0 ? _ref : null : null);\n case 9:\n _context.next = 14;\n break;\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](2);\n __f__(\"warn\", '鑾峰彇currentCjNum澶辫触', _context.t0, \" at components/mold.vue:334\");\n case 14:\n return _context.abrupt(\"return\", null);\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 11]]);\n }))();\n },\n // 鏂板锛氬埛鏂版寜閽鐞嗘柟娉昞n handleRefresh: function handleRefresh() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.fetchTools('');\n if (!(_this2.machineNo && _this2.workOrderNo)) {\n _context2.next = 7;\n break;\n }\n _context2.next = 4;\n return _this2.fetchFormData();\n case 4:\n _context2.next = 6;\n return _this2.fetchDefaultToolFromWorkOrder();\n case 6:\n // 鍒锋柊鍚庤祴鍊肩涓�琛� currentCjNum\n if (_this2.toolRecords.length > 0) {\n _this2.$set(_this2.toolRecords[0], 'currentCjNum', _this2.workOrderCurrentCjNum);\n }\n case 7:\n _this2.$showMessage('鍒锋柊瀹屾垚');\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n // 鑷姩淇濆瓨锛氬惎鍔╘n startAutoSave: function startAutoSave() {\n var _this3 = this;\n if (!this.autoSaveEnabled) return;\n this.stopAutoSave();\n this.autoSaveTimer = setInterval(function () {\n _this3.autoSaveTick();\n }, this.autoSaveIntervalMs);\n },\n // 鑷姩淇濆瓨锛氬仠姝n stopAutoSave: function stopAutoSave() {\n if (this.autoSaveTimer) {\n clearInterval(this.autoSaveTimer);\n this.autoSaveTimer = null;\n }\n },\n // 鑷姩淇濆瓨锛氭瘡娆″畾鏃舵墽琛屾椂鐨勯�昏緫\n autoSaveTick: function autoSaveTick() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var fn;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (_this4.autoSaveEnabled) {\n _context3.next = 2;\n break;\n }\n return _context3.abrupt(\"return\");\n case 2:\n if (_this4.isDirty) {\n _context3.next = 4;\n break;\n }\n return _context3.abrupt(\"return\");\n case 4:\n if (!(_this4.submitting || _this4.loadingForm)) {\n _context3.next = 6;\n break;\n }\n return _context3.abrupt(\"return\");\n case 6:\n fn = _this4.autoSaveActionName && typeof _this4[_this4.autoSaveActionName] === 'function' ? _this4[_this4.autoSaveActionName] : null;\n if (fn) {\n _context3.next = 10;\n break;\n }\n __f__(\"warn\", '鑷姩淇濆瓨锛氭湭鎵惧埌鏂规硶', _this4.autoSaveActionName, \" at components/mold.vue:377\");\n return _context3.abrupt(\"return\");\n case 10:\n _context3.prev = 10;\n _this4.submitting = true;\n _context3.next = 14;\n return fn.call(_this4);\n case 14:\n // 璋冪敤淇濆瓨鏂规硶锛堜緥濡� handleUpTool锛塡n // 濡傛灉淇濆瓨鎴愬姛锛屾竻鑴忔爣璁帮紙淇濆瓨鏂规硶鍐呴儴鑻ュけ璐ユ病鏈夋姏鍑哄彲淇濇寔姝ゆ柟寮忥級\n _this4.isDirty = false;\n _context3.next = 20;\n break;\n case 17:\n _context3.prev = 17;\n _context3.t0 = _context3[\"catch\"](10);\n __f__(\"error\", '鑷姩淇濆瓨澶辫触锛�', _context3.t0, \" at components/mold.vue:387\");\n case 20:\n _context3.prev = 20;\n _this4.submitting = false;\n return _context3.finish(20);\n case 23:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[10, 17, 20, 23]]);\n }))();\n },\n // 鏂板锛氬鍛芥瘮棰勮鍊煎綊涓�鍖� (杩斿洖 0~1 鎴� null)\n normalizeLifeWarn: function normalizeLifeWarn(v) {\n if (v == null) return null;\n var raw = String(v).trim().replace(/[%锛匽/g, '');\n if (raw === '') return null;\n var num = Number(raw);\n if (!isFinite(num) || num <= 0) return null;\n return num > 1 ? num / 100 : num;\n },\n openToolDialog: function openToolDialog() {\n this.showToolDialog = true;\n this.pageIndex = 1;\n this.fetchTools(this.searchKey);\n },\n closeToolDialog: function closeToolDialog() {\n this.showToolDialog = false;\n },\n fetchTools: function fetchTools(searchKey) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var res, _ref2, _ref3, _ref4, _res$data$total, _res$data2, _res$data3, payload, getField, mapped, totalFromRes;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _this5.loadingTools = true;\n _context4.prev = 1;\n _context4.next = 4;\n return _this5.$post({\n url: '/MesCutterLedger/QueryTools',\n data: JSON.stringify({\n searchKey: searchKey,\n pageIndex: _this5.pageIndex,\n pageSize: _this5.pageSize\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 4:\n res = _context4.sent;\n if (res.status === 0) {\n payload = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n getField = function getField(obj) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var k = _keys[_i];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n }; // 杩欓噷闇�瑕佹妸 lifeWarn 瀛楁涔熷甫鍑烘潵\n mapped = (payload || []).map(function (t) {\n return {\n no: getField(t, 'cutterId', 'CUTTER_ID', 'cutteR_ID', 'daA001', 'no'),\n name: getField(t, 'cutterName', 'CUTTER_NAME', 'cutteR_NAME', 'name'),\n model: getField(t, 'cutterModel', 'CUTTER_MODEL', 'cutteR_MODEL', 'model'),\n lifeWarn: getField(t, 'modlLifeWorning', 'lifeWarn', 'LIFE_WARN', 'lifE_WARN')\n };\n });\n _this5.filteredTools = mapped;\n _this5.toolList = mapped.slice();\n totalFromRes = Number((_ref2 = (_ref3 = (_ref4 = (_res$data$total = (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.total) !== null && _res$data$total !== void 0 ? _res$data$total : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.totalCount) !== null && _ref4 !== void 0 ? _ref4 : res.total) !== null && _ref3 !== void 0 ? _ref3 : res.totalCount) !== null && _ref2 !== void 0 ? _ref2 : mapped.length);\n _this5.total = Number.isFinite(totalFromRes) ? totalFromRes : mapped.length;\n if (_this5.pageIndex > _this5.totalPages) {\n _this5.pageIndex = _this5.totalPages;\n }\n } else {\n _this5.$showMessage(res.message || '鏌ヨ澶辫触');\n }\n _context4.next = 12;\n break;\n case 8:\n _context4.prev = 8;\n _context4.t0 = _context4[\"catch\"](1);\n __f__(\"error\", 'fetchTools 閿欒锛�', _context4.t0, \" at components/mold.vue:456\");\n _this5.$showMessage('鏌ヨ鍒�鍏峰け璐ワ紝璇锋鏌ョ綉缁滄垨鎺ュ彛');\n case 12:\n _context4.prev = 12;\n _this5.loadingTools = false;\n return _context4.finish(12);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[1, 8, 12, 15]]);\n }))();\n },\n prevPage: function prevPage() {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (!(_this6.pageIndex > 1)) {\n _context5.next = 4;\n break;\n }\n _this6.pageIndex--;\n _context5.next = 4;\n return _this6.fetchTools(_this6.searchKey);\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n nextPage: function nextPage() {\n var _this7 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n if (!(_this7.pageIndex < _this7.totalPages)) {\n _context6.next = 4;\n break;\n }\n _this7.pageIndex++;\n _context6.next = 4;\n return _this7.fetchTools(_this7.searchKey);\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n onSearchKeyInput: function onSearchKeyInput() {\n var _this8 = this;\n clearTimeout(this._searchTimer);\n this._searchTimer = setTimeout(function () {\n _this8.searchTool();\n }, 300);\n },\n searchTool: function searchTool() {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _this9.pageIndex = 1;\n _context7.next = 3;\n return _this9.fetchTools(_this9.searchKey);\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n selectTool: function selectTool(tool) {\n this.selectedToolNo = tool.no;\n this.toolName = tool.name;\n this.toolModel = tool.model;\n this.activeToolNo = tool.no;\n // 鏂板锛氬甫鍑哄鍛芥瘮棰勮鍊糪n if (tool.lifeWarn !== undefined && tool.lifeWarn !== null) {\n // 鏍煎紡鍖栦负鐧惧垎姣斿瓧绗︿覆\n var warn = Number(tool.lifeWarn);\n this.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n this.lifeWarnInput = '';\n }\n },\n confirmTool: function confirmTool() {\n this.showToolDialog = false;\n },\n setUseLimit: function setUseLimit() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var v;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n if (_this10.selectedToolNo) {\n _context8.next = 3;\n break;\n }\n _this10.$showMessage('璇烽�夋嫨鍒�鍏峰悗鍐嶈缃笂闄�');\n return _context8.abrupt(\"return\");\n case 3:\n v = Number(_this10.useLimitInput);\n if (!(isNaN(v) || v <= 0)) {\n _context8.next = 7;\n break;\n }\n _this10.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺');\n return _context8.abrupt(\"return\");\n case 7:\n _this10.toolRecords = _this10.toolRecords.map(function (r) {\n if (r.no === _this10.selectedToolNo) {\n return _objectSpread(_objectSpread({}, r), {}, {\n useLimit: v\n });\n }\n return r;\n });\n _this10.toolList = _this10.toolList.map(function (t) {\n return t.no === _this10.selectedToolNo ? _objectSpread(_objectSpread({}, t), {}, {\n useLimit: v\n }) : t;\n });\n _this10.$showMessage('浣跨敤涓婇檺宸茶缃紙浠呭墠绔樉绀猴級');\n case 10:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n },\n // 涓婂垁鏃朵紶閫� sdjs = 宸ュ崟 currentCjNum\n handleUpTool: function handleUpTool() {\n var _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var useLimit, sdjs, lifeWarnRatio, payload, res;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n if (_this11.workOrderNo) {\n _context9.next = 3;\n break;\n }\n _this11.$showMessage('宸ュ崟鍙蜂笉鑳戒负绌�');\n return _context9.abrupt(\"return\");\n case 3:\n if (_this11.machineNo) {\n _context9.next = 6;\n break;\n }\n _this11.$showMessage('鏈哄彴鍙蜂笉鑳戒负绌�');\n return _context9.abrupt(\"return\");\n case 6:\n if (_this11.selectedToolNo) {\n _context9.next = 9;\n break;\n }\n _this11.$showMessage('鍒�鍏风紪鍙蜂笉鑳戒负绌�');\n return _context9.abrupt(\"return\");\n case 9:\n if (_this11.useLimitInput) {\n _context9.next = 12;\n break;\n }\n _this11.$showMessage('浣跨敤涓婇檺涓嶈兘涓虹┖');\n return _context9.abrupt(\"return\");\n case 12:\n useLimit = Number(_this11.useLimitInput);\n if (!(isNaN(useLimit) || useLimit <= 0)) {\n _context9.next = 16;\n break;\n }\n _this11.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺');\n return _context9.abrupt(\"return\");\n case 16:\n // sdjs 浣跨敤宸ュ崟 currentCjNum\n sdjs = _this11.workOrderCurrentCjNum != null ? Number(_this11.workOrderCurrentCjNum) : null;\n lifeWarnRatio = _this11.normalizeLifeWarn(_this11.lifeWarnInput);\n payload = {\n workOrderNo: _this11.workOrderNo,\n machineNo: _this11.machineNo,\n toolNo: _this11.selectedToolNo,\n type: '涓婃満',\n useLimit: useLimit,\n sdjs: sdjs,\n // 涓婂垁璁℃暟锛堝伐鍗曞綋鍓嶆暟閲囷級\n modlLifeWorning: lifeWarnRatio // 鏂板\n };\n _context9.prev = 19;\n _this11.submitting = true;\n _context9.next = 23;\n return _this11.$post({\n url: '/MesCutterLedger/SubmitToolAction',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 23:\n res = _context9.sent;\n if (!(res.data && res.data.outSum === \"0\")) {\n _context9.next = 29;\n break;\n }\n uni.showToast({\n title: res.data.outMsg || '',\n icon: 'error'\n });\n return _context9.abrupt(\"return\");\n case 29:\n if (res.data && res.data.outMsg) {\n uni.showToast({\n title: res.data.outMsg,\n icon: 'none'\n });\n }\n case 30:\n if (!(res.status === 0)) {\n _context9.next = 33;\n break;\n }\n _context9.next = 33;\n return _this11.fetchFormData();\n case 33:\n _context9.next = 40;\n break;\n case 35:\n _context9.prev = 35;\n _context9.t0 = _context9[\"catch\"](19);\n __f__(\"error\", _context9.t0, \" at components/mold.vue:566\");\n _this11.$showMessage('涓婂垁鎻愪氦澶辫触锛岃妫�鏌ョ綉缁�');\n throw _context9.t0;\n case 40:\n _context9.prev = 40;\n _this11.submitting = false;\n return _context9.finish(40);\n case 43:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, null, [[19, 35, 40, 43]]);\n }))();\n },\n // 涓嬪垁鏃朵紶閫� xdjs = 宸ュ崟 currentCjNum\n handleDownTool: function handleDownTool() {\n var _this12 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n var useLimit, xdjs, lifeWarnRatio, payload, res;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (_this12.workOrderNo) {\n _context10.next = 3;\n break;\n }\n _this12.$showMessage('宸ュ崟鍙蜂笉鑳戒负绌�');\n return _context10.abrupt(\"return\");\n case 3:\n if (_this12.machineNo) {\n _context10.next = 6;\n break;\n }\n _this12.$showMessage('鏈哄彴鍙蜂笉鑳戒负绌�');\n return _context10.abrupt(\"return\");\n case 6:\n if (_this12.selectedToolNo) {\n _context10.next = 9;\n break;\n }\n _this12.$showMessage('鍒�鍏风紪鍙蜂笉鑳戒负绌�');\n return _context10.abrupt(\"return\");\n case 9:\n //涓嬪垁涓嶅己鍒跺綍鍏ヤ娇鐢ㄤ笂闄怽n //if (!this.useLimitInput) { this.$showMessage('浣跨敤涓婇檺涓嶈兘涓虹┖'); return; }\n useLimit = Number(_this12.useLimitInput); //if (isNaN(useLimit) || useLimit <= 0) { this.$showMessage('璇疯緭鍏ユ湁鏁堢殑浣跨敤涓婇檺'); return; }\n // 涓嬪垁璁℃暟鍚屾牱鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n xdjs = _this12.workOrderCurrentCjNum != null ? Number(_this12.workOrderCurrentCjNum) : null;\n lifeWarnRatio = _this12.normalizeLifeWarn(_this12.lifeWarnInput);\n payload = {\n workOrderNo: _this12.workOrderNo,\n machineNo: _this12.machineNo,\n toolNo: _this12.selectedToolNo,\n type: '涓嬫満',\n useLimit: useLimit,\n xdjs: xdjs,\n // 涓嬪垁璁℃暟\n modlLifeWorning: lifeWarnRatio // 鏂板\n };\n _context10.prev = 13;\n _this12.submitting = true;\n _context10.next = 17;\n return _this12.$post({\n url: '/MesCutterLedger/SubmitToolAction',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 17:\n res = _context10.sent;\n if (!(res.data && res.data.outSum === \"0\")) {\n _context10.next = 23;\n break;\n }\n uni.showToast({\n title: res.data.outMsg || '',\n icon: 'error'\n });\n return _context10.abrupt(\"return\");\n case 23:\n if (res.data && res.data.outMsg) {\n uni.showToast({\n title: res.data.outMsg,\n icon: 'none'\n });\n }\n case 24:\n if (!(res.status === 0)) {\n _context10.next = 27;\n break;\n }\n _context10.next = 27;\n return _this12.fetchFormData();\n case 27:\n _context10.next = 34;\n break;\n case 29:\n _context10.prev = 29;\n _context10.t0 = _context10[\"catch\"](13);\n __f__(\"error\", _context10.t0, \" at components/mold.vue:619\");\n _this12.$showMessage('涓嬪垁鎻愪氦澶辫触锛岃妫�鏌ョ綉缁�');\n throw _context10.t0;\n case 34:\n _context10.prev = 34;\n _this12.submitting = false;\n return _context10.finish(34);\n case 37:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, null, [[13, 29, 34, 37]]);\n }))();\n },\n cancel: function cancel() {\n this.selectedToolNo = '';\n this.toolName = '';\n this.toolModel = '';\n this.useLimitInput = '';\n this.lifeWarnInput = ''; // 鏂板锛氭竻绌篭n this.isDirty = false;\n },\n fetchFormData: function fetchFormData() {\n var _this13 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {\n var payload, _ref5, _ref6, _ref7, _res$data$total2, _res$data4, _res$data5, res, list, getField, mapped, totalFromRes;\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n if (!(!_this13.workOrderNo || !_this13.machineNo)) {\n _context11.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁', \" at components/mold.vue:636\");\n return _context11.abrupt(\"return\");\n case 3:\n _this13.loadingForm = true;\n payload = {\n workOrderNo: _this13.workOrderNo.trim(),\n machineNo: _this13.machineNo.trim()\n };\n _context11.prev = 5;\n _context11.next = 8;\n return _this13.$post({\n url: '/MesCutterLedger/GetFormData',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 8:\n res = _context11.sent;\n if (!(res.status !== 0)) {\n _context11.next = 13;\n break;\n }\n _this13.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');\n _this13.toolRecords = [];\n return _context11.abrupt(\"return\");\n case 13:\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n getField = function getField(obj) {\n for (var _len2 = arguments.length, keys = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n keys[_key2 - 1] = arguments[_key2];\n }\n for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {\n var k = _keys2[_i2];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n };\n mapped = (list || []).map(function (t) {\n var _getField, _getField2;\n var upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');\n var downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');\n var lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');\n var currentCjNum = getField(t, 'currentCjNum', 'CURRENTCJNUM', 'CurrentCjNum');\n var useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');\n var useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');\n var percent = '';\n if (useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n percent = (Number(useCount) / Number(useLimit) * 100).toFixed(0) + '%';\n }\n var parseNumber = function parseNumber(v) {\n if (v === null || v === undefined || v === '') return null;\n var s = String(v).replace(/[,锛�%]/g, '').trim();\n var n = parseFloat(s);\n return Number.isFinite(n) ? n : null;\n };\n var formatPercent = function formatPercent(n) {\n if (n === null || n === undefined || isNaN(n)) return '';\n if (n <= 1) return \"\".concat((n * 100).toFixed(0), \"%\");\n return \"\".concat(Number(n).toFixed(0), \"%\");\n };\n var lifeWarnNum = parseNumber(lifeWarnRaw);\n var warnStatus = getField(t, 'status', 'STATUS') || '';\n if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n var percentNum = Number(useCount) / Number(useLimit);\n warnStatus = percentNum >= lifeWarnNum ? '棰勮' : '姝e父';\n } else {\n warnStatus = warnStatus || '鏈煡';\n }\n return {\n id: getField(t, 'id', 'ID') || \"\".concat(getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || '', \"-\").concat(upTimeRaw || ''),\n no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',\n name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',\n upTime: _this13.formatDateTime(upTimeRaw),\n upCount: (_getField = getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount')) !== null && _getField !== void 0 ? _getField : '',\n downTime: _this13.formatDateTime(downTimeRaw),\n downCount: (_getField2 = getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount')) !== null && _getField2 !== void 0 ? _getField2 : '',\n useCount: useCount !== null && useCount !== void 0 ? useCount : '',\n useLimit: useLimit !== null && useLimit !== void 0 ? useLimit : '',\n lifePercent: percent,\n lifeWarn: formatPercent(lifeWarnNum),\n warnStatus: warnStatus,\n currentCjNum: currentCjNum\n };\n }); // 鏂板锛氭寜涓婂垁鏃堕棿闄嶅簭鎺掑簭锛堣秺鏅氱殑瓒婁笂闈級\n mapped.sort(function (a, b) {\n // 鏃堕棿鏍煎紡濡� \"10-24 16:03\"锛岃浆涓� Date 瀵硅薄姣旇緝\n var parse = function parse(s) {\n if (!s) return 0;\n // 琛ュ勾浠斤紝鍋囪閮芥槸浠婂勾\n var year = new Date().getFullYear();\n return new Date(\"\".concat(year, \"-\").concat(s.replace(/-/g, '-'), \":00\")).getTime();\n };\n return parse(b.upTime) - parse(a.upTime); // 娉ㄦ剰杩欓噷椤哄簭鍙嶈繃鏉n });\n\n _this13.toolRecords = mapped;\n totalFromRes = Number((_ref5 = (_ref6 = (_ref7 = (_res$data$total2 = (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : _res$data4.total) !== null && _res$data$total2 !== void 0 ? _res$data$total2 : (_res$data5 = res.data) === null || _res$data5 === void 0 ? void 0 : _res$data5.totalCount) !== null && _ref7 !== void 0 ? _ref7 : res.total) !== null && _ref6 !== void 0 ? _ref6 : res.totalCount) !== null && _ref5 !== void 0 ? _ref5 : mapped.length);\n _this13.total = Number.isFinite(totalFromRes) ? totalFromRes : mapped.length;\n _context11.next = 27;\n break;\n case 22:\n _context11.prev = 22;\n _context11.t0 = _context11[\"catch\"](5);\n __f__(\"error\", '鑾峰彇琛ㄥ崟鏁版嵁閿欒:', _context11.t0, \" at components/mold.vue:735\");\n _this13.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this13.toolRecords = [];\n case 27:\n _context11.prev = 27;\n _this13.loadingForm = false;\n return _context11.finish(27);\n case 30:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, null, [[5, 22, 27, 30]]);\n }))();\n },\n // 鑷姩甯﹀嚭宸ュ崟鍒�鍏蜂俊鎭紝骞惰幏鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n fetchDefaultToolFromWorkOrder: function fetchDefaultToolFromWorkOrder() {\n var _this14 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {\n var _res$data6, res, _ref8, _order$CurrentCjNum, order, warn;\n return _regenerator.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n if (_this14.machineNo) {\n _context12.next = 2;\n break;\n }\n return _context12.abrupt(\"return\");\n case 2:\n _context12.prev = 2;\n _context12.next = 5;\n return _this14.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this14.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context12.sent;\n if (res.status === 0 && Array.isArray((_res$data6 = res.data) === null || _res$data6 === void 0 ? void 0 : _res$data6.tbBillList) && res.data.tbBillList.length > 0) {\n order = res.data.tbBillList[0]; // 鏂板锛氫繚瀛樺伐鍗曟暟鎹紝鐢ㄤ簬鎶ヨ瘯浜ф暟\n _this14.order = order;\n _this14.orderId = order.id || order.ID || order.orderId || null;\n _this14.selectedToolNo = order.cutterId || order.cutteR_ID || '';\n _this14.toolName = order.cutterName || order.cutteR_NAME || '';\n _this14.toolModel = order.cutterModel || order.cutteR_MODEL || '';\n // 鍏抽敭锛氳幏鍙栧伐鍗曟渶鏂伴噰闆嗘暟\n _this14.workOrderCurrentCjNum = (_ref8 = (_order$CurrentCjNum = order.CurrentCjNum) !== null && _order$CurrentCjNum !== void 0 ? _order$CurrentCjNum : order.currentCjNum) !== null && _ref8 !== void 0 ? _ref8 : null;\n // 鏂板锛氳嚜鍔ㄥ~鍏呭鍛芥瘮棰勮鍊糪n if (order.modlLifeWorning !== undefined && order.modlLifeWorning !== null) {\n warn = Number(order.modlLifeWorning);\n _this14.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n _this14.lifeWarnInput = '';\n }\n } else {\n _this14.workOrderCurrentCjNum = null;\n _this14.order = {};\n _this14.orderId = null;\n }\n _context12.next = 15;\n break;\n case 9:\n _context12.prev = 9;\n _context12.t0 = _context12[\"catch\"](2);\n __f__(\"warn\", '鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', _context12.t0, \" at components/mold.vue:776\");\n _this14.workOrderCurrentCjNum = null;\n _this14.order = {};\n _this14.orderId = null;\n case 15:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, null, [[2, 9]]);\n }))();\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (!dateTimeStr) return '';\n try {\n var s = String(dateTimeStr).trim();\n if (/^\\d{10}$/.test(s)) {\n var d = new Date(Number(s) * 1000);\n return \"\".concat(d.getMonth() + 1, \"-\").concat(d.getDate(), \" \").concat(d.getHours(), \":\").concat(String(d.getMinutes()).padStart(2, '0'));\n }\n if (/^\\d{13}$/.test(s)) {\n var _d = new Date(Number(s));\n return \"\".concat(_d.getMonth() + 1, \"-\").concat(_d.getDate(), \" \").concat(_d.getHours(), \":\").concat(String(_d.getMinutes()).padStart(2, '0'));\n }\n var date = new Date(dateTimeStr);\n if (!isNaN(date.getTime())) {\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n }\n var match = String(dateTimeStr).match(/(\\d{1,4}[-\\/]\\d{1,2}[-\\/]\\d{1,2}).*?(\\d{1,2}:\\d{2})/);\n if (match) return \"\".concat(match[1].replace(/-/g, '/').replace(/^\\d{4}\\//, function (m) {\n return m;\n }), \" \").concat(match[2]);\n return String(dateTimeStr);\n } catch (_unused) {\n return String(dateTimeStr);\n }\n },\n // 鏂板锛氶�夋嫨璋冩満甯堝倕\n selectTiaojiUser: function selectTiaojiUser(u) {\n this.tiaojiStaffNo = u;\n this.isTiaojiUserSelectShow = false;\n this.tiaojiUserSearch = '';\n },\n // 鏂板锛氶�佹鍛煎彨 + 鎶ヨ瘯浜ф暟\n handleInspectionCall: function handleInspectionCall() {\n var _this15 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {\n var _this15$order, _this15$order2;\n var okQty, badQty, staffNo, totalQty, payload, res;\n return _regenerator.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (_this15.tiaojiStaffNo) {\n _context13.next = 3;\n break;\n }\n _this15.$showMessage('璇烽�夋嫨璋冩満甯堝倕');\n return _context13.abrupt(\"return\");\n case 3:\n okQty = Number(_this15.tiaojiOkQty);\n badQty = Number(_this15.tiaojiBadQty);\n if (!(isNaN(okQty) || okQty < 0)) {\n _context13.next = 8;\n break;\n }\n _this15.$showMessage('璇疯緭鍏ユ湁鏁堢殑璋冩満鑹搧鏁�');\n return _context13.abrupt(\"return\");\n case 8:\n if (!(isNaN(badQty) || badQty < 0)) {\n _context13.next = 11;\n break;\n }\n _this15.$showMessage('璇疯緭鍏ユ湁鏁堢殑璋冩満涓嶈壇鍝佹暟');\n return _context13.abrupt(\"return\");\n case 11:\n staffNo = _this15.tiaojiStaffNo.split(':')[0];\n totalQty = okQty + badQty; // 璇曚骇鎬绘暟 = 鑹搧鏁� + 涓嶈壇鍝佹暟\n // 璋冪敤鎶ヨ瘯浜ф暟鎺ュ彛(浣跨敤鎶ュ伐鐣岄潰鐨勬帴鍙�)\n payload = {\n orderNo: _this15.workOrderNo,\n orderId: _this15.orderId,\n // 闇�瑕佷粠宸ュ崟鏁版嵁涓幏鍙朶n bf: totalQty,\n // 璇曚骇鎬绘暟\n staffNo: staffNo,\n initCjNum: ((_this15$order = _this15.order) === null || _this15$order === void 0 ? void 0 : _this15$order.initCjNum) || 0,\n currentCjNum: ((_this15$order2 = _this15.order) === null || _this15$order2 === void 0 ? void 0 : _this15$order2.currentCjNum) || 0,\n type: 'tiaoji',\n // 鏍囪瘑涓鸿皟鏈烘姤宸n tiaojiOkQty: okQty,\n // 鏂板:鑹搧鏁癨n tiaojiBadQty: badQty // 鏂板:涓嶈壇鍝佹暟\n };\n _context13.prev = 14;\n _this15.submitting = true;\n // 璋冪敤鎶ュ伐鐣岄潰鐨勬姤璇曚骇鏁版帴鍙n _context13.next = 18;\n return _this15.$post({\n url: '/MesInvItemBarcodes/AddBFToBarcodes',\n data: payload\n });\n case 18:\n res = _context13.sent;\n if (!(res.status == 1)) {\n _context13.next = 22;\n break;\n }\n _this15.$showMessage(res.message);\n return _context13.abrupt(\"return\");\n case 22:\n _this15.$showMessage('璋冩満鎶ュ伐鎴愬姛');\n // 娓呯┖杈撳叆\n _this15.tiaojiOkQty = '';\n _this15.tiaojiBadQty = '';\n // 鍒锋柊鏁版嵁\n _context13.next = 27;\n return _this15.fetchFormData();\n case 27:\n _context13.next = 29;\n return _this15.fetchDefaultToolFromWorkOrder();\n case 29:\n _context13.next = 35;\n break;\n case 31:\n _context13.prev = 31;\n _context13.t0 = _context13[\"catch\"](14);\n __f__(\"error\", '璋冩満鎶ュ伐閿欒:', _context13.t0, \" at components/mold.vue:871\");\n _this15.$showMessage('璋冩満鎶ュ伐澶辫触锛岃妫�鏌ョ綉缁�');\n case 35:\n _context13.prev = 35;\n _this15.submitting = false;\n return _context13.finish(35);\n case 38:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, null, [[14, 31, 35, 38]]);\n }))();\n },\n // 鏂板锛氳幏鍙栬皟鏈哄笀鍌呭垪琛╘n fetchTiaojiStaff: function fetchTiaojiStaff() {\n var _this16 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {\n var res, staff;\n return _regenerator.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n _context14.next = 3;\n return _this16.$post({\n url: '/MesStaff/GetAllXS0101BYtj' // 涓庢姤宸ョ晫闈娇鐢ㄧ浉鍚屾帴鍙n });\n case 3:\n res = _context14.sent;\n if (res.status === 0 && res.data && res.data.tbBillList) {\n staff = res.data.tbBillList;\n _this16.tiaojiUsers = staff.map(function (s) {\n return s.staffNo + ':' + s.staffName;\n });\n }\n _context14.next = 10;\n break;\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n __f__(\"error\", '鑾峰彇璋冩満甯堝倕鍒楄〃澶辫触:', _context14.t0, \" at components/mold.vue:889\");\n case 10:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, null, [[0, 7]]);\n }))();\n }\n },\n mounted: function mounted() {\n var _this17 = this;\n this.fetchTools('');\n this.machineNo = uni.getStorageSync('machineNo') || '';\n this.workOrderNo = uni.getStorageSync('daa001') || '';\n\n // 鏂板锛氳幏鍙栬皟鏈哄笀鍌呭垪琛╘n this.fetchTiaojiStaff();\n if (this.machineNo && this.workOrderNo) {\n this.fetchFormData().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {\n return _regenerator.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n _context15.next = 2;\n return _this17.fetchDefaultToolFromWorkOrder();\n case 2:\n // 杩涘叆椤甸潰鏃惰祴鍊肩涓�琛� currentCjNum\n if (_this17.toolRecords.length > 0) {\n _this17.$set(_this17.toolRecords[0], 'currentCjNum', _this17.workOrderCurrentCjNum);\n }\n case 3:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n })));\n } else {\n __f__(\"warn\", '鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇琛ㄥ崟鏁版嵁', \" at components/mold.vue:910\");\n }\n\n // 鍚姩鑷姩淇濆瓨瀹氭椂鍣╘n //this.startAutoSave();\n },\n beforeDestroy: function beforeDestroy() {\n // 娓呯悊瀹氭椂鍣紝闃叉鍐呭瓨娉勬紡\n this.stopAutoSave();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9tb2xkLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwibWFjaGluZU5vIiwid29ya09yZGVyTm8iLCJhY3RpdmVUb29sTm8iLCJwYWdlSW5kZXgiLCJwYWdlU2l6ZSIsInRvdGFsIiwidG9vbExpc3QiLCJzZWxlY3RlZFRvb2xObyIsInRvb2xOYW1lIiwidG9vbE1vZGVsIiwic2hvd1Rvb2xEaWFsb2ciLCJzZWFyY2hLZXkiLCJmaWx0ZXJlZFRvb2xzIiwidXNlTGltaXRJbnB1dCIsImxpZmVXYXJuSW5wdXQiLCJ0b29sUmVjb3JkcyIsImxvYWRpbmdUb29scyIsImxvYWRpbmdGb3JtIiwic3VibWl0dGluZyIsIl9zZWFyY2hUaW1lciIsIndvcmtPcmRlckN1cnJlbnRDak51bSIsImF1dG9TYXZlVGltZXIiLCJpc0RpcnR5IiwiYXV0b1NhdmVJbnRlcnZhbE1zIiwiYXV0b1NhdmVFbmFibGVkIiwiYXV0b1NhdmVBY3Rpb25OYW1lIiwiaXNUaWFvamlVc2VyU2VsZWN0U2hvdyIsInRpYW9qaVN0YWZmTm8iLCJ0aWFvamlPa1F0eSIsInRpYW9qaUJhZFF0eSIsInRpYW9qaVVzZXJzIiwidGlhb2ppVXNlclNlYXJjaCIsIm9yZGVySWQiLCJvcmRlciIsImNvbXB1dGVkIiwidG90YWxQYWdlcyIsInRpYW9qaVN0YWZmRGlzcGxheSIsImZpbHRlcmVkVGlhb2ppVXNlcnMiLCJ3YXRjaCIsIm1ldGhvZHMiLCJmZXRjaEN1cnJlbnRDak51bSIsInVybCIsImhlYWRlcnMiLCJyZXMiLCJmb3VuZCIsIngiLCJoYW5kbGVSZWZyZXNoIiwic3RhcnRBdXRvU2F2ZSIsInN0b3BBdXRvU2F2ZSIsImNsZWFySW50ZXJ2YWwiLCJhdXRvU2F2ZVRpY2siLCJmbiIsIm5vcm1hbGl6ZUxpZmVXYXJuIiwib3BlblRvb2xEaWFsb2ciLCJjbG9zZVRvb2xEaWFsb2ciLCJmZXRjaFRvb2xzIiwicGF5bG9hZCIsImdldEZpZWxkIiwia2V5cyIsIm1hcHBlZCIsIm5vIiwibmFtZSIsIm1vZGVsIiwibGlmZVdhcm4iLCJ0b3RhbEZyb21SZXMiLCJwcmV2UGFnZSIsIm5leHRQYWdlIiwib25TZWFyY2hLZXlJbnB1dCIsImNsZWFyVGltZW91dCIsInNlYXJjaFRvb2wiLCJzZWxlY3RUb29sIiwiY29uZmlybVRvb2wiLCJzZXRVc2VMaW1pdCIsInYiLCJpc05hTiIsInVzZUxpbWl0IiwiaGFuZGxlVXBUb29sIiwic2RqcyIsImxpZmVXYXJuUmF0aW8iLCJ0b29sTm8iLCJ0eXBlIiwibW9kbExpZmVXb3JuaW5nIiwidW5pIiwidGl0bGUiLCJpY29uIiwiaGFuZGxlRG93blRvb2wiLCJ4ZGpzIiwiY2FuY2VsIiwiZmV0Y2hGb3JtRGF0YSIsImxpc3QiLCJwZXJjZW50Iiwid2FyblN0YXR1cyIsImlkIiwidXBUaW1lIiwidXBDb3VudCIsImRvd25UaW1lIiwiZG93bkNvdW50IiwidXNlQ291bnQiLCJsaWZlUGVyY2VudCIsImN1cnJlbnRDak51bSIsImZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyIiwid2FybiIsImZvcm1hdERhdGVUaW1lIiwic2VsZWN0VGlhb2ppVXNlciIsImhhbmRsZUluc3BlY3Rpb25DYWxsIiwib2tRdHkiLCJiYWRRdHkiLCJzdGFmZk5vIiwidG90YWxRdHkiLCJvcmRlck5vIiwiYmYiLCJpbml0Q2pOdW0iLCJmZXRjaFRpYW9qaVN0YWZmIiwic3RhZmYiLCJtb3VudGVkIiwiYmVmb3JlRGVzdHJveSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFzUEE7RUFDQUE7SUFDQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFBQTs7TUFFQTtNQUNBQztNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFDQUM7TUFBQTs7TUFFQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTs7TUFFQTtNQUNBQztNQUFBO01BQ0FDO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQUE7TUFBQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBL0I7TUFBQTtJQUFBO0lBQ0FNO01BQUE7SUFBQTtJQUNBQztNQUFBO0lBQUE7SUFDQU47TUFBQTtJQUFBO0lBQ0FDO01BQUE7SUFBQTtFQUNBO0VBQ0E4QjtJQUNBO0lBQ0FDO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUEsSUFDQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUFBLE9BRUE7a0JBQ0FDO2tCQUNBMUM7b0JBQUFDO2tCQUFBO2tCQUNBMEM7b0JBQUE7a0JBQUE7Z0JBQ0E7Y0FBQTtnQkFKQUM7Z0JBQUEsTUFLQUE7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0FDO2tCQUFBLE9BQ0FDO2dCQUFBLEVBQ0E7Z0JBQUEsaUNBQ0FEO2NBQUE7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFHQTtjQUFBO2dCQUFBLGlDQUVBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFB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QkFBQTtnQkFFQTtnQkFDQTtjQUFBO2dCQUFBO2dCQUVBO2dCQUFBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBRUE7SUFFQTtJQUNBcUU7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUVBO2tCQUNBdkU7Z0JBQ0E7Y0FBQTtnQkFGQUU7Z0JBR0E7a0JBQ0FzRTtrQkFDQTtvQkFBQTtrQkFBQTtnQkFDQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUVBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBRUE7RUFDQTtFQUNBQztJQUFBO0lBQ0E7SUFDQTtJQUNBOztJQUVBO0lBQ0E7SUFFQTtNQUNBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2dCQUNBO2dCQUNBO2tCQUNBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBLENBQ0E7SUFDQTtNQUNBO0lBQ0E7O0lBRUE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiI2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cbiAgICA8dmlldyBjbGFzcz1cInBhZ2VcIj5cbiAgICAgICAgPCEtLSDliIDlhbfpgInmi6nljLogLS0+XG4gICAgICAgIDx2aWV3IGNsYXNzPVwidG9wLXNlY3Rpb24tZ3JpZFwiPlxuICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzvvJrnp7vpmaTliIDlhbfnm67lvZXmjInpkq4gLS0+XG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmb3JtLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPuWIgOWFt+e8luWPt++8mjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0IHNtYWxsLWZvbnRcIiB2LW1vZGVsPVwic2VsZWN0ZWRUb29sTm9cIiBwbGFjZWhvbGRlcj1cIuivt+mAmui/h+WIgOWFt+ebruW9lemAieaLqVwiIGRpc2FibGVkIC8+XG4gICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiZm9ybS1jZWxsIGZvcm0tY2VsbC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgaGlnaGxpZ2h0LWxhYmVsXCI+5L2/55So5LiK6ZmQ77yaPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXQgc21hbGwtZm9udCBpbnB1dC11c2UtbGltaXRcIiB0eXBlPVwibnVtYmVyXCIgdi1tb2RlbD1cInVzZUxpbWl0SW5wdXRcIiBwbGFjZWhvbGRlcj1cIuavj+asoeS4iuWIgOaXtuaJi+Whq+S4iumZkFwiIDpkaXNhYmxlZD1cIiFzZWxlY3RlZFRvb2xObyB8fCBsb2FkaW5nRm9ybVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjE2cHg7XCI+5a+/5ZG95q+U6aKE6K2m5YC877yaPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJpbnB1dC13aXRoLXVuaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0IHNtYWxsLWZvbnQgaW5wdXQtbGlmZS13YXJuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwibGlmZVdhcm5JbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLlpoI5MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiIXNlbGVjdGVkVG9vbE5vIHx8IGxvYWRpbmdGb3JtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidW5pdC10ZXh0XCI+JTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgIDwvdmlldz5cblxuICAgICAgICAgICAgPCEtLSDnrKzkuozooYzvvJrlnKjmnIDlkI7mt7vliqDliIDlhbfnm67lvZXmjInpkq4gLS0+XG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICAgICAgPCEtLSDliIDlhbflkI3np7AgLS0+XG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmb3JtLWNlbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPuWIgOWFt+WQjeensO+8mjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0IHNtYWxsLWZvbnQgaW5wdXQtdG9vbC1uYW1lXCIgdi1tb2RlbD1cInRvb2xOYW1lXCIgcGxhY2Vob2xkZXI9XCLliIDlhbfluKblh7pcIiBkaXNhYmxlZCAvPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8IS0tIOinhOagvOWei+WPtyAtLT5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+6KeE5qC85Z6L5Y+377yaPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXQgc21hbGwtZm9udCBpbnB1dC10b29sLW1vZGVsXCIgdi1tb2RlbD1cInRvb2xNb2RlbFwiIHBsYWNlaG9sZGVyPVwi5YiA5YW35bim5Ye6XCIgZGlzYWJsZWQgLz5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICAgICAgPCEtLSDliIDlhbfnm67lvZXmjInpkq7lj7Pnp7sgLS0+XG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmb3JtLWNlbGwgdG9vbC1kaXItY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWJsdWUgbGFyZ2UtYnRuXCIgQGNsaWNrPVwib3BlblRvb2xEaWFsb2dcIiA6ZGlzYWJsZWQ9XCJsb2FkaW5nVG9vbHNcIj7liIDlhbfnm67lvZU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICAgICAgPCEtLSDmlrDlop7vvJrliLfmlrDmjInpkq4gLS0+XG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmb3JtLWNlbGxcIiBzdHlsZT1cImZsZXg6MCAwIGF1dG87IG1hcmdpbi1sZWZ0OjE2cHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYmx1ZSBsYXJnZS1idG5cIiBAY2xpY2s9XCJoYW5kbGVSZWZyZXNoXCIgOmRpc2FibGVkPVwibG9hZGluZ0Zvcm0gfHwgc3VibWl0dGluZ1wiPuWIt+aWsDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgPC92aWV3PiAgPCEtLSDov5nph4zpl63lkIggdG9wLXNlY3Rpb24tZ3JpZCAtLT5cbiAgICAgICAgPCEtLSDmk43kvZzmjInpkq4gLSDnp7vlh7ogdG9wLXNlY3Rpb24tZ3JpZCAtLT5cbiAgICAgICAgPHZpZXcgY2xhc3M9XCJidXR0b24tcm93XCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZS1idG5cIiBAY2xpY2s9XCJoYW5kbGVVcFRvb2xcIiA6ZGlzYWJsZWQ9XCJzdWJtaXR0aW5nIHx8IGxvYWRpbmdGb3JtXCI+5LiK5YiA5o+Q5LqkPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZS1idG5cIiBAY2xpY2s9XCJoYW5kbGVEb3duVG9vbFwiIDpkaXNhYmxlZD1cInN1Ym1pdHRpbmcgfHwgbG9hZGluZ0Zvcm1cIj7kuIvliIDmj5DkuqQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWwtYnRuXCIgQGNsaWNrPVwiY2FuY2VsXCIgOmRpc2FibGVkPVwic3VibWl0dGluZyB8fCBsb2FkaW5nRm9ybVwiPua4heepuuWIgOWFt+mAieaLqTwvYnV0dG9uPlxuICAgICAgICA8L3ZpZXc+XG5cbiAgICAgICAgPCEtLSDmlrDlop7vvJrosIPmnLrmlbDmja7ovpPlhaXljLrln58gLS0+XG4gICAgICAgIDx2aWV3IGNsYXNzPVwidGlhb2ppLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidGlhb2ppLXJvd1wiPlxuICAgICAgICAgICAgICAgIDwhLS0g5b2T5YmN6LCD5py65biI5YKFIC0tPlxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiY3VycmVudC11c2VyLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5b2T5YmN6LCD5py65biI5YKF77yaPC90ZXh0PlxuICAgICAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImN1cnJlbnQtdXNlci1uYW1lXCI+e3sgdGlhb2ppU3RhZmZEaXNwbGF5IHx8ICfmnKrpgInmi6knIH19PC90ZXh0PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2VsZWN0LXVzZXItYnRuXCIgQGNsaWNrPVwiaXNUaWFvamlVc2VyU2VsZWN0U2hvdyA9IHRydWVcIj7pgInkuro8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG5cbiAgICAgICAgICAgICAgICA8IS0tIOiwg+acuuiJr+WTgeaVsCAtLT5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInRpYW9qaS1pbnB1dC1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0Puiwg+acuuiJr+WTgeaVsO+8mjwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHYtbW9kZWw9XCJ0aWFvamlPa1F0eVwiIGNsYXNzPVwiaW5wIHRpYW9qaS1pbnB1dFwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeaVsOmHj1wiIC8+XG4gICAgICAgICAgICAgICAgPC92aWV3PlxuXG4gICAgICAgICAgICAgICAgPCEtLSDosIPmnLrkuI3oia/lk4HmlbAgLS0+XG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ0aWFvamktaW5wdXQtc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dD7osIPmnLrkuI3oia/lk4HmlbDvvJo8L3RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwidGlhb2ppQmFkUXR5XCIgY2xhc3M9XCJpbnAgdGlhb2ppLWlucHV0XCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5pWw6YePXCIgLz5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG5cbiAgICAgICAgICAgICAgICA8IS0tIOmAgeajgOWRvOWPq+aMiemSriAtLT5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInRpYW9qaS1zdWJtaXQtc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZGV0YWlscy1idG5cIiBAY2xpY2s9XCJoYW5kbGVJbnNwZWN0aW9uQ2FsbFwiPumAgeajgOWRvOWPqzwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgPC92aWV3PlxuXG4gICAgICAgIDwhLS0g6YCJ5oup6LCD5py65biI5YKF5by556qXIC0tPlxuICAgICAgICA8dmlldyB2LWlmPVwiaXNUaWFvamlVc2VyU2VsZWN0U2hvd1wiIGNsYXNzPVwib3ZlcmxheVwiPlxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJwb3B1cCB1c2VyLXNlbGVjdC1wb3B1cFwiPlxuICAgICAgICAgICAgICAgIDwhLS0g5pCc57Si5qCPIC0tPlxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidXNlci1zZWFyY2gtYmFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsLnRyaW09XCJ0aWFvamlVc2VyU2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLovpPlhaXlt6Xlj7fmiJblp5PlkI3mkJzntKJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQGtleWRvd24uZW50ZXIucHJldmVudCAvPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHYtaWY9XCJ0aWFvamlVc2VyU2VhcmNoXCIgY2xhc3M9XCJ1c2VyLXNlYXJjaC1jbGVhclwiIEBjbGljaz1cInRpYW9qaVVzZXJTZWFyY2g9JydcIj7muIXnqbo8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1c2VyLXNlYXJjaC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICDljLnphY3vvJp7eyBmaWx0ZXJlZFRpYW9qaVVzZXJzLmxlbmd0aCB9fSAvIHt7IHRpYW9qaVVzZXJzLmxlbmd0aCB9fVxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidXNlci1saXN0LXNjcm9sbFwiPlxuICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImZpbHRlcmVkVGlhb2ppVXNlcnMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInVzZXItbGlzdC1ncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB2LWZvcj1cIih1LCBpbmRleCkgaW4gZmlsdGVyZWRUaWFvamlVc2Vyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiWyd1c2VyLWxpc3QtYnRuJywgeydzZWxlY3RlZCc6IHU9PT10aWFvamlTdGFmZk5vfV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwic2VsZWN0VGlhb2ppVXNlcih1KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItY29kZVwiPnt7IHUuc3BsaXQoJzonKVswXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLW5hbWVcIj57eyB1LnNwbGl0KCc6JylbMV0gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IHYtZWxzZSBjbGFzcz1cIm5vLXVzZXItcmVzdWx0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICDmnKrmib7liLDljLnphY3kurrlkZhcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInVzZXItcG9wdXAtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjbGVhbi1idG4gd2lkZS1idG5cIiBAY2xpY2s9XCJpc1RpYW9qaVVzZXJTZWxlY3RTaG93ID0gZmFsc2VcIj7lhbPpl608L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgIDwvdmlldz5cblxuICAgICAgICA8IS0tIOWIgOWFt+ebruW9leW8ueeqlyAtLT5cbiAgICAgICAgPHZpZXcgdi1pZj1cInNob3dUb29sRGlhbG9nXCIgY2xhc3M9XCJkaWFsb2ctb3ZlcmxheVwiPlxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJkaWFsb2dcIj5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHYtbW9kZWw9XCJzZWFyY2hLZXlcIiBwbGFjZWhvbGRlcj1cIui+k+WFpeWIgOWFt+e8lueggeOAgeWQjeensOaooeeziuaQnOe0olwiIGNsYXNzPVwiaW5wdXRcIiBAaW5wdXQ9XCJvblNlYXJjaEtleUlucHV0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1ibHVlXCIgQGNsaWNrPVwic2VhcmNoVG9vbFwiIDpkaXNhYmxlZD1cImxvYWRpbmdUb29sc1wiPuaQnOe0ojwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInRvb2wtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHYtZm9yPVwidG9vbCBpbiBmaWx0ZXJlZFRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwidG9vbC5ub1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwieyBhY3RpdmU6IGFjdGl2ZVRvb2xObyA9PT0gdG9vbC5ubyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzZWxlY3RUb29sKHRvb2wpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0b29sLm5vIH19IHwge3sgdG9vbC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmlldz5cbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cImRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1ibHVlXCIgQGNsaWNrPVwicHJldlBhZ2VcIiA6ZGlzYWJsZWQ9XCJwYWdlSW5kZXggPT09IDEgfHwgbG9hZGluZ1Rvb2xzXCI+5LiK5LiA6aG1PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbjogMCAxMnB4O1wiPuesrHt7IHBhZ2VJbmRleCB9femhtSAvIOWFsXt7IHRvdGFsUGFnZXMgfX3pobU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWJsdWVcIiBAY2xpY2s9XCJuZXh0UGFnZVwiIDpkaXNhYmxlZD1cInBhZ2VJbmRleCA9PT0gdG90YWxQYWdlcyB8fCBsb2FkaW5nVG9vbHNcIj7kuIvkuIDpobU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDE4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWJsdWVcIiBAY2xpY2s9XCJjb25maXJtVG9vbFwiPuehruWumjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1kaXNhYmxlZFwiIEBjbGljaz1cImNsb3NlVG9vbERpYWxvZ1wiPuWPlua2iDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgICAgICA8L3ZpZXc+XG4gICAgICAgIDwvdmlldz5cblxuICAgICAgICA8IS0tIOmakOiXj+WIgOWFt+S9v+eUqOiusOW9leihqOagvCAtLT5cbiAgICAgICAgPHZpZXcgdi1pZj1cImZhbHNlXCIgY2xhc3M9XCJ0YWJsZS1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJzdHlsZWQtdGFibGVcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjclXCI+5YiA5YW357yW5Y+3PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjEyJVwiPuWIgOWFt+WQjeensDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIrliIDml7bpl7Q8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4iuWIgOiuoeaVsDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIvliIDml7bpl7Q8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4i+WIgOiuoeaVsDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5L2/55So5qyh5pWwPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kvb/nlKjkuIrpmZA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlCU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlOmihOitpuWAvDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPumihOitpueKtuaAgTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPuWIgOWFt+WcqOacuueKtuaAgTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihpdGVtLCBpZHgpIGluIHRvb2xSZWNvcmRzXCIgOmtleT1cIml0ZW0uaWRcIiA6Y2xhc3M9XCJ7J3Jvdy1vZGQnOiBpZHggJSAyID09PSAwfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0ubm8gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPnt7IGl0ZW0ubmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS51cFRpbWUgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+e3sgaXRlbS51cENvdW50ICE9IG51bGwgPyBpdGVtLnVwQ291bnQgOiAnJyB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5kb3duVGltZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOWPquacieesrOS4gOihjOaYvuekuiBjdXJyZW50Q2pOdW3vvIzlhbblroPooYzmmL7npLogZG93bkNvdW50IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzvvJrkuIvmnLrml7bkuI3lrp7ml7bmmL7npLogY3VycmVudENqTnVt77yM5pi+56S6IGRvd25Db3VudCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCA/IGl0ZW0uY3VycmVudENqTnVtIDogJycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93bkNvdW50ICE9IG51bGwgPyBpdGVtLmRvd25Db3VudCA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25Db3VudCAhPSBudWxsID8gaXRlbS5kb3duQ291bnQgOiAnJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLeS9v+eUqOasoeaVsC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSDnrKzkuIDooYzlrp7ml7borqHnrpfkvb/nlKjmrKHmlbDvvIzoi6XkuLrkuIvmnLrliJnkuI3lrp7ml7bmmL7npLogLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiIWl0ZW0uZG93blRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCAmJiBpdGVtLnVwQ291bnQgIT0gbnVsbCA/IChOdW1iZXIoaXRlbS5jdXJyZW50Q2pOdW0pIC0gTnVtYmVyKGl0ZW0udXBDb3VudCkpIDogKGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS51c2VDb3VudCAhPSBudWxsID8gaXRlbS51c2VDb3VudCA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLnVzZUxpbWl0ICE9IG51bGwgPyBpdGVtLnVzZUxpbWl0IDogJycgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLeWvv+WRveavlCUtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaWR4ID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g56ys5LiA6KGM5a6e5pe26K6h566X5a+/5ZG95q+UJe+8jOiLpeS4uuS4i+acuuWImeS4jeWunuaXtuaYvuekuiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmN1cnJlbnRDak51bSAhPSBudWxsICYmIGl0ZW0udXBDb3VudCAhPSBudWxsICYmIGl0ZW0udXNlTGltaXQgIT0gbnVsbCAmJiBOdW1iZXIoaXRlbS51c2VMaW1pdCkgPiAwID8gTWF0aC5yb3VuZCgoTnVtYmVyKGl0ZW0uY3VycmVudENqTnVtKSAtIE51bWJlcihpdGVtLnVwQ291bnQpKSAvIE51bWJlcihpdGVtLnVzZUxpbWl0KSAqIDEwMCkgKyAnJScgOiAoaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxpZmVQZXJjZW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLmxpZmVXYXJuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA6Y2xhc3M9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnID8gJ3dhcm4tY2VsbCcgOiAoaXRlbS53YXJuU3RhdHVzID09PSAn5q2j5bi4JyA/ICdvay1jZWxsJyA6ICcnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnXCIgY2xhc3M9XCJ3YXJuLWJhZGdlXCI+6K2m5ZGKPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtZWxzZT57eyBpdGVtLndhcm5TdGF0dXMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93blRpbWUgPyAn5LiL5py6JyA6ICflnKjmnLonIH19PCEtLeWcqOacuueKtuaAgS0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCIhdG9vbFJlY29yZHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCI+5pqC5peg5pWw5o2uPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC92aWV3PlxuXG4gICAgICAgIDwhLS0g6K+05piOIC0tPlxuICAgICAgICA8IS0tPHZpZXcgY2xhc3M9XCJ0b29sLWRlc2NcIj5cbiAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6cmVkO1wiPifkvb/nlKjkuIrpmZAn5Lul5LiL5YiA5pe255qEJ+S9v+eUqOS4iumZkCfkuLrorqHnrpfmoIflh4Y8L3A+XG4gICAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOnJlZDtcIj7lr7/lkb3mr5TpooTorablgLzpu5jorqTkuLo5MCU8L3A+XG4gICAgICAgIDwvdmlldz4tLT5cbiAgICA8L3ZpZXc+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgICAgZGF0YSgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWFjaGluZU5vOiAnJywvL+acuuWPsOe8lueggVxuICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiAnJywvL+W3peWNleWPt1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2xObzogJycsIC8vIOW9k+WJjemAieS4reeahOWIgOWFt+e8luWPt1xuICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMSxcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogMjAsIC8v5Y2V6aG15pi+56S655qE5YiA5YW35pWw6YePXG4gICAgICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICAgICAgdG9vbExpc3Q6IFtdLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVG9vbE5vOiAnJyxcbiAgICAgICAgICAgICAgICB0b29sTmFtZTogJycsXG4gICAgICAgICAgICAgICAgdG9vbE1vZGVsOiAnJyxcbiAgICAgICAgICAgICAgICBzaG93VG9vbERpYWxvZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VhcmNoS2V5OiAnJyxcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZFRvb2xzOiBbXSxcbiAgICAgICAgICAgICAgICB1c2VMaW1pdElucHV0OiAnJyxcbiAgICAgICAgICAgICAgICBsaWZlV2FybklucHV0OiAnJywgLy8g5paw5aKe77ya5a+/5ZG95q+U6aKE6K2m5YC85Y6f5aeL6L6T5YWlXG4gICAgICAgICAgICAgICAgdG9vbFJlY29yZHM6IFtdLFxuICAgICAgICAgICAgICAgIGxvYWRpbmdUb29sczogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9hZGluZ0Zvcm06IGZhbHNlLFxuICAgICAgICAgICAgICAgIHN1Ym1pdHRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIF9zZWFyY2hUaW1lcjogbnVsbCxcbiAgICAgICAgICAgICAgICB3b3JrT3JkZXJDdXJyZW50Q2pOdW06IG51bGwsIC8vIOW3peWNleW9k+WJjeaVsOmHh1xuXG4gICAgICAgICAgICAgICAgLy8g6Ieq5Yqo5L+d5a2Y55u45YWzXG4gICAgICAgICAgICAgICAgYXV0b1NhdmVUaW1lcjogbnVsbCxcbiAgICAgICAgICAgICAgICBpc0RpcnR5OiBmYWxzZSwgLy8g6KGo5Y2V5piv5ZCm5pyJ5pyq5L+d5a2Y5Y+Y5pu0XG4gICAgICAgICAgICAgICAgYXV0b1NhdmVJbnRlcnZhbE1zOiA1ICogNjAgKiAxMDAwLCAvLyDpu5jorqQgNSDliIbpkp9cbiAgICAgICAgICAgICAgICBhdXRvU2F2ZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgYXV0b1NhdmVBY3Rpb25OYW1lOiAnaGFuZGxlVXBUb29sJywgLy8g6Ieq5Yqo6Kem5Y+R55qE5pa55rOV5ZCN77yM5Y+v5pS55Li66Ieq5a6a5LmJ5L+d5a2Y5pa55rOVXG5cbiAgICAgICAgICAgICAgICAvLyDmlrDlop7vvJrosIPmnLrnm7jlhbPlrZfmrrVcbiAgICAgICAgICAgICAgICBpc1RpYW9qaVVzZXJTZWxlY3RTaG93OiBmYWxzZSwgLy8g6LCD5py65biI5YKF6YCJ5oup5by556qXXG4gICAgICAgICAgICAgICAgdGlhb2ppU3RhZmZObzogJycsIC8vIOW9k+WJjemAieS4reeahOiwg+acuuW4iOWChSjmoLzlvI86IOW3peWPtzrlp5PlkI0pXG4gICAgICAgICAgICAgICAgdGlhb2ppT2tRdHk6ICcnLCAvLyDosIPmnLroia/lk4HmlbBcbiAgICAgICAgICAgICAgICB0aWFvamlCYWRRdHk6ICcnLCAvLyDosIPmnLrkuI3oia/lk4HmlbBcbiAgICAgICAgICAgICAgICB0aWFvamlVc2VyczogW10sIC8vIOiwg+acuuW4iOWCheWIl+ihqFxuICAgICAgICAgICAgICAgIHRpYW9qaVVzZXJTZWFyY2g6ICcnLCAvLyDmkJzntKLlhbPplK7or41cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8g5paw5aKe77ya5oql6K+V5Lqn5pWw5omA6ZyA5a2X5q61XG4gICAgICAgICAgICAgICAgb3JkZXJJZDogbnVsbCwgLy8g5bel5Y2VSURcbiAgICAgICAgICAgICAgICBvcmRlcjoge30gLy8g5bel5Y2V5pWw5o2uXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBjb21wdXRlZDoge1xuICAgICAgICAgICAgdG90YWxQYWdlcygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHRoaXMudG90YWwgLyB0aGlzLnBhZ2VTaXplKSB8fCAxKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrosIPmnLrluIjlgoXmmL7npLrlkI3np7BcbiAgICAgICAgICAgIHRpYW9qaVN0YWZmRGlzcGxheSgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGlhb2ppU3RhZmZObykgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlZ3MgPSB0aGlzLnRpYW9qaVN0YWZmTm8uc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2Vncy5sZW5ndGggPiAxID8gYCR7c2Vnc1swXX0gJHtzZWdzWzFdfWAgOiB0aGlzLnRpYW9qaVN0YWZmTm87XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8g5paw5aKe77ya6L+H5ruk5ZCO55qE6LCD5py65biI5YKF5YiX6KGoXG4gICAgICAgICAgICBmaWx0ZXJlZFRpYW9qaVVzZXJzKCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aWFvamlVc2VyU2VhcmNoKSByZXR1cm4gdGhpcy50aWFvamlVc2VycztcbiAgICAgICAgICAgICAgICBjb25zdCBrdyA9IHRoaXMudGlhb2ppVXNlclNlYXJjaC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50aWFvamlVc2Vycy5maWx0ZXIodSA9PiB1LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoa3cpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2F0Y2g6IHtcbiAgICAgICAgICAgIC8vIOagh+iusOiEj+aVsOaNru+8muaMiemcgOebkeWQrOWtl+auteWPmOWMllxuICAgICAgICAgICAgc2VsZWN0ZWRUb29sTm8oKSB7IHRoaXMuaXNEaXJ0eSA9IHRydWU7IH0sXG4gICAgICAgICAgICB1c2VMaW1pdElucHV0KCkgeyB0aGlzLmlzRGlydHkgPSB0cnVlOyB9LFxuICAgICAgICAgICAgbGlmZVdhcm5JbnB1dCgpIHsgdGhpcy5pc0RpcnR5ID0gdHJ1ZTsgfSxcbiAgICAgICAgICAgIHRvb2xOYW1lKCkgeyB0aGlzLmlzRGlydHkgPSB0cnVlOyB9LFxuICAgICAgICAgICAgdG9vbE1vZGVsKCkgeyB0aGlzLmlzRGlydHkgPSB0cnVlOyB9XG4gICAgICAgIH0sXG4gICAgICAgIG1ldGhvZHM6IHtcbiAgICAgICAgICAgIC8v5p+l6K+i5b2T5YmN5pWw6YeH5pWw77yM5L2c5Li65LiL5YiA6K6h5pWw5a6e5pe25pi+56S6XG4gICAgICAgICAgICBhc3luYyBmZXRjaEN1cnJlbnRDak51bSh0b29sTm8pIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFjaGluZU5vKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9Xb21kYWEvR2V0V29tZGFhc0J5U2hvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8gfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDAgJiYgQXJyYXkuaXNBcnJheShyZXMuZGF0YT8udGJCaWxsTGlzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gcmVzLmRhdGEudGJCaWxsTGlzdC5maW5kKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LmN1dHRlcklkID09PSB0b29sTm8gfHwgeC5jdXR0ZVJfSUQgPT09IHRvb2xOb1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZCA/IChmb3VuZC5DdXJyZW50Q2pOdW0gPz8gZm91bmQuY3VycmVudENqTnVtID8/IG51bGwpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCfojrflj5ZjdXJyZW50Q2pOdW3lpLHotKUnLCBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrliLfmlrDmjInpkq7lpITnkIbmlrnms5VcbiAgICAgICAgICAgIGFzeW5jIGhhbmRsZVJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaFRvb2xzKCcnKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYWNoaW5lTm8gJiYgdGhpcy53b3JrT3JkZXJObykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRm9ybURhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlcigpO1xuICAgICAgICAgICAgICAgICAgICAvLyDliLfmlrDlkI7otYvlgLznrKzkuIDooYwgY3VycmVudENqTnVtXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnRvb2xSZWNvcmRzWzBdLCAnY3VycmVudENqTnVtJywgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfliLfmlrDlrozmiJAnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDoh6rliqjkv53lrZjvvJrlkK/liqhcbiAgICAgICAgICAgIHN0YXJ0QXV0b1NhdmUoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmF1dG9TYXZlRW5hYmxlZCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEF1dG9TYXZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvU2F2ZVRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9TYXZlVGljaygpO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMuYXV0b1NhdmVJbnRlcnZhbE1zKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDoh6rliqjkv53lrZjvvJrlgZzmraJcbiAgICAgICAgICAgIHN0b3BBdXRvU2F2ZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvU2F2ZVRpbWVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZVRpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvU2F2ZVRpbWVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8g6Ieq5Yqo5L+d5a2Y77ya5q+P5qyh5a6a5pe25omn6KGM5pe255qE6YC76L6RXG4gICAgICAgICAgICBhc3luYyBhdXRvU2F2ZVRpY2soKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmF1dG9TYXZlRW5hYmxlZCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0RpcnR5KSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3VibWl0dGluZyB8fCB0aGlzLmxvYWRpbmdGb3JtKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmbiA9IHRoaXMuYXV0b1NhdmVBY3Rpb25OYW1lICYmIHR5cGVvZiB0aGlzW3RoaXMuYXV0b1NhdmVBY3Rpb25OYW1lXSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IHRoaXNbdGhpcy5hdXRvU2F2ZUFjdGlvbk5hbWVdXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIWZuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign6Ieq5Yqo5L+d5a2Y77ya5pyq5om+5Yiw5pa55rOVJywgdGhpcy5hdXRvU2F2ZUFjdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZm4uY2FsbCh0aGlzKTsgLy8g6LCD55So5L+d5a2Y5pa55rOV77yI5L6L5aaCIGhhbmRsZVVwVG9vbO+8iVxuICAgICAgICAgICAgICAgICAgICAvLyDlpoLmnpzkv53lrZjmiJDlip/vvIzmuIXohI/moIforrDvvIjkv53lrZjmlrnms5XlhoXpg6joi6XlpLHotKXmsqHmnInmipvlh7rlj6/kv53mjIHmraTmlrnlvI/vvIlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfoh6rliqjkv53lrZjlpLHotKXvvJonLCBlKTtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrlr7/lkb3mr5TpooTorablgLzlvZLkuIDljJYgKOi/lOWbniAwfjEg5oiWIG51bGwpXG4gICAgICAgICAgICBub3JtYWxpemVMaWZlV2Fybih2KSB7XG4gICAgICAgICAgICAgICAgaWYgKHYgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF3ID0gU3RyaW5nKHYpLnRyaW0oKS5yZXBsYWNlKC9bJe+8hV0vZywgJycpO1xuICAgICAgICAgICAgICAgIGlmIChyYXcgPT09ICcnKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIocmF3KTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKG51bSkgfHwgbnVtIDw9IDApIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIHJldHVybiBudW0gPiAxID8gKG51bSAvIDEwMCkgOiBudW07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlblRvb2xEaWFsb2coKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VG9vbERpYWxvZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXggPSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hUb29scyh0aGlzLnNlYXJjaEtleSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xvc2VUb29sRGlhbG9nKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2xEaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyBmZXRjaFRvb2xzKHNlYXJjaEtleSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1Rvb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9NZXNDdXR0ZXJMZWRnZXIvUXVlcnlUb29scycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBBcnJheS5pc0FycmF5KHJlcy5kYXRhKSA/IHJlcy5kYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAocmVzLmRhdGEgJiYgcmVzLmRhdGEudGJCaWxsTGlzdCkgPyByZXMuZGF0YS50YkJpbGxMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLmRhdGEpID8gcmVzLmRhdGEuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0RmllbGQgPSAob2JqLCAuLi5rZXlzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIGlmIChvYmo/LltrXSAhPT0gdW5kZWZpbmVkICYmIG9iaj8uW2tdICE9PSBudWxsKSByZXR1cm4gb2JqW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g6L+Z6YeM6ZyA6KaB5oqKIGxpZmVXYXJuIOWtl+auteS5n+W4puWHuuadpVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwcGVkID0gKHBheWxvYWQgfHwgW10pLm1hcCh0ID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm86IGdldEZpZWxkKHQsICdjdXR0ZXJJZCcsICdDVVRURVJfSUQnLCAnY3V0dGVSX0lEJywgJ2RhQTAwMScsICdubycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldEZpZWxkKHQsICdjdXR0ZXJOYW1lJywgJ0NVVFRFUl9OQU1FJywgJ2N1dHRlUl9OQU1FJywgJ25hbWUnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDogZ2V0RmllbGQodCwgJ2N1dHRlck1vZGVsJywgJ0NVVFRFUl9NT0RFTCcsICdjdXR0ZVJfTU9ERUwnLCAnbW9kZWwnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlV2FybjogZ2V0RmllbGQodCwgJ21vZGxMaWZlV29ybmluZycsICdsaWZlV2FybicsICdMSUZFX1dBUk4nLCAnbGlmRV9XQVJOJylcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFRvb2xzID0gbWFwcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sTGlzdCA9IG1hcHBlZC5zbGljZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbEZyb21SZXMgPSBOdW1iZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGE/LnRvdGFsID8/IHJlcy5kYXRhPy50b3RhbENvdW50ID8/IHJlcy50b3RhbCA/PyByZXMudG90YWxDb3VudCA/PyBtYXBwZWQubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbCA9IE51bWJlci5pc0Zpbml0ZSh0b3RhbEZyb21SZXMpID8gdG90YWxGcm9tUmVzIDogbWFwcGVkLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZ2VJbmRleCA+IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy50b3RhbFBhZ2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UocmVzLm1lc3NhZ2UgfHwgJ+afpeivouWksei0pScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2ZldGNoVG9vbHMg6ZSZ6K+v77yaJywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+afpeivouWIgOWFt+Wksei0pe+8jOivt+ajgOafpee9kee7nOaIluaOpeWPoycpO1xuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1Rvb2xzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIHByZXZQYWdlKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZ2VJbmRleCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXgtLTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaFRvb2xzKHRoaXMuc2VhcmNoS2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgbmV4dFBhZ2UoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnZUluZGV4IDwgdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZUluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hUb29scyh0aGlzLnNlYXJjaEtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uU2VhcmNoS2V5SW5wdXQoKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3NlYXJjaFRpbWVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWFyY2hUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRvb2woKTtcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIHNlYXJjaFRvb2woKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXggPSAxO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hUb29scyh0aGlzLnNlYXJjaEtleSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0VG9vbCh0b29sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2xObyA9IHRvb2wubm87XG4gICAgICAgICAgICAgICAgdGhpcy50b29sTmFtZSA9IHRvb2wubmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xNb2RlbCA9IHRvb2wubW9kZWw7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUb29sTm8gPSB0b29sLm5vO1xuICAgICAgICAgICAgICAgIC8vIOaWsOWinu+8muW4puWHuuWvv+WRveavlOmihOitpuWAvFxuICAgICAgICAgICAgICAgIGlmICh0b29sLmxpZmVXYXJuICE9PSB1bmRlZmluZWQgJiYgdG9vbC5saWZlV2FybiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyDmoLzlvI/ljJbkuLrnmb7liIbmr5TlrZfnrKbkuLJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybiA9IE51bWJlcih0b29sLmxpZmVXYXJuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gd2FybiA8PSAxID8gKHdhcm4gKiAxMDApLnRvRml4ZWQoMCkgOiB3YXJuLnRvRml4ZWQoMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpcm1Ub29sKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2xEaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyBzZXRVc2VMaW1pdCgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRUb29sTm8pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+mAieaLqeWIgOWFt+WQjuWGjeiuvue9ruS4iumZkCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBOdW1iZXIodGhpcy51c2VMaW1pdElucHV0KTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odikgfHwgdiA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfor7fovpPlhaXmnInmlYjnmoTkvb/nlKjkuIrpmZAnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gdGhpcy50b29sUmVjb3Jkcy5tYXAociA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyLm5vID09PSB0aGlzLnNlbGVjdGVkVG9vbE5vKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5yLCB1c2VMaW1pdDogdiB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudG9vbExpc3QgPSB0aGlzLnRvb2xMaXN0Lm1hcCh0ID0+IHQubm8gPT09IHRoaXMuc2VsZWN0ZWRUb29sTm8gPyB7IC4uLnQsIHVzZUxpbWl0OiB2IH0gOiB0KTtcbiAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn5L2/55So5LiK6ZmQ5bey6K6+572u77yI5LuF5YmN56uv5pi+56S677yJJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8g5LiK5YiA5pe25Lyg6YCSIHNkanMgPSDlt6XljZUgY3VycmVudENqTnVtXG4gICAgICAgICAgICBhc3luYyBoYW5kbGVVcFRvb2woKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLndvcmtPcmRlck5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCflt6XljZXlj7fkuI3og73kuLrnqbonKTsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn5py65Y+w5Y+35LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFRvb2xObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn5YiA5YW357yW5Y+35LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIC8v5LiK5YiA5by65Yi25b2V5YWl5L2/55So5LiK6ZmQXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZUxpbWl0SW5wdXQpIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+S9v+eUqOS4iumZkOS4jeiDveS4uuepuicpOyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICBjb25zdCB1c2VMaW1pdCA9IE51bWJlcih0aGlzLnVzZUxpbWl0SW5wdXQpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hTih1c2VMaW1pdCkgfHwgdXNlTGltaXQgPD0gMCkgeyB0aGlzLiRzaG93TWVzc2FnZSgn6K+36L6T5YWl5pyJ5pWI55qE5L2/55So5LiK6ZmQJyk7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAgICAgLy8gc2RqcyDkvb/nlKjlt6XljZUgY3VycmVudENqTnVtXG4gICAgICAgICAgICAgICAgY29uc3Qgc2RqcyA9IHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtICE9IG51bGwgPyBOdW1iZXIodGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0pIDogbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWZlV2FyblJhdGlvID0gdGhpcy5ub3JtYWxpemVMaWZlV2Fybih0aGlzLmxpZmVXYXJuSW5wdXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiB0aGlzLndvcmtPcmRlck5vLFxuICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxuICAgICAgICAgICAgICAgICAgICB0b29sTm86IHRoaXMuc2VsZWN0ZWRUb29sTm8sXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICfkuIrmnLonLFxuICAgICAgICAgICAgICAgICAgICB1c2VMaW1pdCxcbiAgICAgICAgICAgICAgICAgICAgc2RqcywvLyDkuIrliIDorqHmlbDvvIjlt6XljZXlvZPliY3mlbDph4fvvIlcbiAgICAgICAgICAgICAgICAgICAgbW9kbExpZmVXb3JuaW5nOiBsaWZlV2FyblJhdGlvIC8vIOaWsOWinlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy4kcG9zdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvTWVzQ3V0dGVyTGVkZ2VyL1N1Ym1pdFRvb2xBY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLm91dFN1bSA9PT0gXCIwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zaG93VG9hc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuZGF0YS5vdXRNc2cgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEub3V0TXNnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVzLmRhdGEub3V0TXNnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8g5ZCO57ut6YC76L6R57un57ut5omn6KGMXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRm9ybURhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfkuIrliIDmj5DkuqTlpLHotKXvvIzor7fmo4Dmn6XnvZHnu5wnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyOyAvLyDmipvlh7rku6Xkvr/oh6rliqjkv53lrZjpgLvovpHmjZXojrflubbkv53nlZkgaXNEaXJ0eVxuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDkuIvliIDml7bkvKDpgJIgeGRqcyA9IOW3peWNlSBjdXJyZW50Q2pOdW1cbiAgICAgICAgICAgIGFzeW5jIGhhbmRsZURvd25Ub29sKCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy53b3JrT3JkZXJObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn5bel5Y2V5Y+35LiN6IO95Li656m6Jyk7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYWNoaW5lTm8pIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+acuuWPsOWPt+S4jeiDveS4uuepuicpOyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRUb29sTm8pIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+WIgOWFt+e8luWPt+S4jeiDveS4uuepuicpOyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICAvL+S4i+WIgOS4jeW8uuWItuW9leWFpeS9v+eUqOS4iumZkFxuICAgICAgICAgICAgICAgIC8vaWYgKCF0aGlzLnVzZUxpbWl0SW5wdXQpIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+S9v+eUqOS4iumZkOS4jeiDveS4uuepuicpOyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICBjb25zdCB1c2VMaW1pdCA9IE51bWJlcih0aGlzLnVzZUxpbWl0SW5wdXQpO1xuICAgICAgICAgICAgICAgIC8vaWYgKGlzTmFOKHVzZUxpbWl0KSB8fCB1c2VMaW1pdCA8PSAwKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fovpPlhaXmnInmlYjnmoTkvb/nlKjkuIrpmZAnKTsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICAvLyDkuIvliIDorqHmlbDlkIzmoLflj5blt6XljZXmnIDmlrDph4fpm4bmlbBcbiAgICAgICAgICAgICAgICBjb25zdCB4ZGpzID0gdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gIT0gbnVsbCA/IE51bWJlcih0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSkgOiBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuUmF0aW8gPSB0aGlzLm5vcm1hbGl6ZUxpZmVXYXJuKHRoaXMubGlmZVdhcm5JbnB1dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgd29ya09yZGVyTm86IHRoaXMud29ya09yZGVyTm8sXG4gICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXG4gICAgICAgICAgICAgICAgICAgIHRvb2xObzogdGhpcy5zZWxlY3RlZFRvb2xObyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ+S4i+acuicsXG4gICAgICAgICAgICAgICAgICAgIHVzZUxpbWl0LFxuICAgICAgICAgICAgICAgICAgICB4ZGpzLC8vIOS4i+WIgOiuoeaVsFxuICAgICAgICAgICAgICAgICAgICBtb2RsTGlmZVdvcm5pbmc6IGxpZmVXYXJuUmF0aW8gLy8g5paw5aKeXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9NZXNDdXR0ZXJMZWRnZXIvU3VibWl0VG9vbEFjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEub3V0U3VtID09PSBcIjBcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcy5kYXRhLm91dE1zZyB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5vdXRNc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zaG93VG9hc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuZGF0YS5vdXRNc2csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyDlkI7nu63pgLvovpHnu6fnu63miafooYxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+S4i+WIgOaPkOS6pOWksei0pe+8jOivt+ajgOafpee9kee7nCcpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbmNlbCgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVG9vbE5vID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy50b29sTmFtZSA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMudG9vbE1vZGVsID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VMaW1pdElucHV0ID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gJyc7IC8vIOaWsOWinu+8mua4heepulxuICAgICAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGZldGNoRm9ybURhdGEoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLndvcmtPcmRlck5vIHx8ICF0aGlzLm1hY2hpbmVObykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+W3peWNleWPt+aIluacuuWPsOWPt+S4uuepuu+8jOi3s+i/h+iOt+WPluihqOWNleaVsOaNricpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0Zvcm0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiB0aGlzLndvcmtPcmRlck5vLnRyaW0oKSxcbiAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVOby50cmltKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc0N1dHRlckxlZGdlci9HZXRGb3JtRGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UocmVzLm1lc3NhZ2UgfHwgJ+iOt+WPluihqOWNleaVsOaNruWksei0pScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sUmVjb3JkcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBBcnJheS5pc0FycmF5KHJlcy5kYXRhKSA/IHJlcy5kYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS50YkJpbGxMaXN0KSA/IHJlcy5kYXRhLnRiQmlsbExpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS5kYXRhKSA/IHJlcy5kYXRhLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZXRGaWVsZCA9IChvYmosIC4uLmtleXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSBpZiAob2JqPy5ba10gIT09IHVuZGVmaW5lZCAmJiBvYmo/LltrXSAhPT0gbnVsbCkgcmV0dXJuIG9ialtrXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IChsaXN0IHx8IFtdKS5tYXAodCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cFRpbWVSYXcgPSBnZXRGaWVsZCh0LCAndVBfVElNRScsICdVUF9USU1FJywgJ3VQVGltZScsICdVUFRJTUUnLCAnVXBUaW1lJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb3duVGltZVJhdyA9IGdldEZpZWxkKHQsICdkb3dOX1RJTUUnLCAnRE9XTl9USU1FJywgJ2Rvd25UaW1lJywgJ0RPV05USU1FJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWZlV2FyblJhdyA9IGdldEZpZWxkKHQsICdsaWZFX1dBUk4nLCAnTElGRV9XQVJOJywgJ2xpZmVXYXJuJywgJ0xJRkVXQVJOJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q2pOdW0gPSBnZXRGaWVsZCh0LCAnY3VycmVudENqTnVtJywgJ0NVUlJFTlRDSk5VTScsICdDdXJyZW50Q2pOdW0nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlQ291bnQgPSBnZXRGaWVsZCh0LCAndXNFX0NPVU5UJywgJ1VTRV9DT1VOVCcsICd1c2VDb3VudCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlTGltaXQgPSBnZXRGaWVsZCh0LCAndXNFX0xJTUlUJywgJ1VTRV9MSU1JVCcsICd1c2VMaW1pdCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGVyY2VudCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZUNvdW50ICE9IG51bGwgJiYgdXNlTGltaXQgIT0gbnVsbCAmJiAhaXNOYU4odXNlQ291bnQpICYmICFpc05hTih1c2VMaW1pdCkgJiYgTnVtYmVyKHVzZUxpbWl0KSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50ID0gKChOdW1iZXIodXNlQ291bnQpIC8gTnVtYmVyKHVzZUxpbWl0KSkgKiAxMDApLnRvRml4ZWQoMCkgKyAnJSc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlTnVtYmVyID0gdiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09ICcnKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gU3RyaW5nKHYpLnJlcGxhY2UoL1ss77yFJV0vZywgJycpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gcGFyc2VGbG9hdChzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pID8gbiA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0UGVyY2VudCA9IG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09PSBudWxsIHx8IG4gPT09IHVuZGVmaW5lZCB8fCBpc05hTihuKSkgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuIDw9IDEpIHJldHVybiBgJHsobiAqIDEwMCkudG9GaXhlZCgwKX0lYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7TnVtYmVyKG4pLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlmZVdhcm5OdW0gPSBwYXJzZU51bWJlcihsaWZlV2FyblJhdyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3YXJuU3RhdHVzID0gZ2V0RmllbGQodCwgJ3N0YXR1cycsICdTVEFUVVMnKSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaWZlV2Fybk51bSAhPT0gbnVsbCAmJiB1c2VDb3VudCAhPSBudWxsICYmIHVzZUxpbWl0ICE9IG51bGwgJiYgIWlzTmFOKHVzZUNvdW50KSAmJiAhaXNOYU4odXNlTGltaXQpICYmIE51bWJlcih1c2VMaW1pdCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudE51bSA9IE51bWJlcih1c2VDb3VudCkgLyBOdW1iZXIodXNlTGltaXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMgPSAocGVyY2VudE51bSA+PSBsaWZlV2Fybk51bSkgPyAn6aKE6K2mJyA6ICfmraPluLgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuU3RhdHVzID0gd2FyblN0YXR1cyB8fCAn5pyq55+lJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogZ2V0RmllbGQodCwgJ2lkJywgJ0lEJykgfHwgYCR7Z2V0RmllbGQodCwgJ2N1dHRlUl9JRCcpIHx8IGdldEZpZWxkKHQsICdDVVRURVJfSUQnKSB8fCAnJ30tJHt1cFRpbWVSYXcgfHwgJyd9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBubzogZ2V0RmllbGQodCwgJ2N1dHRlUl9JRCcsICdDVVRURVJfSUQnLCAnY3V0dGVySWQnLCAnbm8nKSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBnZXRGaWVsZCh0LCAnY3V0dGVSX05BTUUnLCAnQ1VUVEVSX05BTUUnLCAnY3V0dGVyTmFtZScsICduYW1lJykgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBUaW1lOiB0aGlzLmZvcm1hdERhdGVUaW1lKHVwVGltZVJhdyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBDb3VudDogZ2V0RmllbGQodCwgJ3VQX0NPVU5UJywgJ1VQX0NPVU5UJywgJ3VwQ291bnQnKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duVGltZTogdGhpcy5mb3JtYXREYXRlVGltZShkb3duVGltZVJhdyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bkNvdW50OiBnZXRGaWVsZCh0LCAnZG93Tl9DT1VOVCcsICdET1dOX0NPVU5UJywgJ2Rvd25Db3VudCcpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNvdW50OiB1c2VDb3VudCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VMaW1pdDogdXNlTGltaXQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlmZVBlcmNlbnQ6IHBlcmNlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlmZVdhcm46IGZvcm1hdFBlcmNlbnQobGlmZVdhcm5OdW0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENqTnVtXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyDmlrDlop7vvJrmjInkuIrliIDml7bpl7TpmY3luo/mjpLluo/vvIjotormmZrnmoTotorkuIrpnaLvvIlcbiAgICAgICAgICAgICAgICAgICAgbWFwcGVkLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOaXtumXtOagvOW8j+WmgiBcIjEwLTI0IDE2OjAzXCLvvIzovazkuLogRGF0ZSDlr7nosaHmr5TovoNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlID0gcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzKSByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDooaXlubTku73vvIzlgYforr7pg73mmK/ku4rlubRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShgJHt5ZWFyfS0ke3MucmVwbGFjZSgvLS9nLCAnLScpfTowMGApLmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2UoYi51cFRpbWUpIC0gcGFyc2UoYS51cFRpbWUpOyAvLyDms6jmhI/ov5nph4zpobrluo/lj43ov4fmnaVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sUmVjb3JkcyA9IG1hcHBlZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG90YWxGcm9tUmVzID0gTnVtYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGE/LnRvdGFsID8/IHJlcy5kYXRhPy50b3RhbENvdW50ID8/IHJlcy50b3RhbCA/PyByZXMudG90YWxDb3VudCA/PyBtYXBwZWQubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWwgPSBOdW1iZXIuaXNGaW5pdGUodG90YWxGcm9tUmVzKSA/IHRvdGFsRnJvbVJlcyA6IG1hcHBlZC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6I635Y+W6KGo5Y2V5pWw5o2u6ZSZ6K+vOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+iOt+WPluaVsOaNruWksei0pe+8jOivt+ajgOafpee9kee7nOi/nuaOpScpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gW107XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRm9ybSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDoh6rliqjluKblh7rlt6XljZXliIDlhbfkv6Hmga/vvIzlubbojrflj5blt6XljZXmnIDmlrDph4fpm4bmlbBcbiAgICAgICAgICAgIGFzeW5jIGZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYWNoaW5lTm8pIHJldHVybjtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9Xb21kYWEvR2V0V29tZGFhc0J5U2hvdycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8gfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDAgJiYgQXJyYXkuaXNBcnJheShyZXMuZGF0YT8udGJCaWxsTGlzdCkgJiYgcmVzLmRhdGEudGJCaWxsTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmRlciA9IHJlcy5kYXRhLnRiQmlsbExpc3RbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOaWsOWinu+8muS/neWtmOW3peWNleaVsOaNru+8jOeUqOS6juaKpeivleS6p+aVsFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmRlciA9IG9yZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmRlcklkID0gb3JkZXIuaWQgfHwgb3JkZXIuSUQgfHwgb3JkZXIub3JkZXJJZCB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVG9vbE5vID0gb3JkZXIuY3V0dGVySWQgfHwgb3JkZXIuY3V0dGVSX0lEIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sTmFtZSA9IG9yZGVyLmN1dHRlck5hbWUgfHwgb3JkZXIuY3V0dGVSX05BTUUgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xNb2RlbCA9IG9yZGVyLmN1dHRlck1vZGVsIHx8IG9yZGVyLmN1dHRlUl9NT0RFTCB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWFs+mUru+8muiOt+WPluW3peWNleacgOaWsOmHh+mbhuaVsFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBvcmRlci5DdXJyZW50Q2pOdW0gPz8gb3JkZXIuY3VycmVudENqTnVtID8/IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmlrDlop7vvJroh6rliqjloavlhYXlr7/lkb3mr5TpooTorablgLxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmRlci5tb2RsTGlmZVdvcm5pbmcgIT09IHVuZGVmaW5lZCAmJiBvcmRlci5tb2RsTGlmZVdvcm5pbmcgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXJuID0gTnVtYmVyKG9yZGVyLm1vZGxMaWZlV29ybmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gd2FybiA8PSAxID8gKHdhcm4gKiAxMDApLnRvRml4ZWQoMCkgOiB3YXJuLnRvRml4ZWQoMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlmZVdhcm5JbnB1dCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmRlciA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmRlcklkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCfoh6rliqjluKblh7rlt6XljZXliIDlhbflpLHotKUnLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZGVyID0ge307XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3JkZXJJZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvcm1hdERhdGVUaW1lKGRhdGVUaW1lU3RyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlVGltZVN0cikgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcoZGF0ZVRpbWVTdHIpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9eXFxkezEwfSQvLnRlc3QocykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShOdW1iZXIocykgKiAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2QuZ2V0SG91cnMoKX06JHtTdHJpbmcoZC5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoL15cXGR7MTN9JC8udGVzdChzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKE51bWJlcihzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZC5nZXRNb250aCgpICsgMX0tJHtkLmdldERhdGUoKX0gJHtkLmdldEhvdXJzKCl9OiR7U3RyaW5nKGQuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVUaW1lU3RyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkYXRlLmdldE1vbnRoKCkgKyAxfS0ke2RhdGUuZ2V0RGF0ZSgpfSAke2RhdGUuZ2V0SG91cnMoKX06JHtTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IFN0cmluZyhkYXRlVGltZVN0cikubWF0Y2goLyhcXGR7MSw0fVstXFwvXVxcZHsxLDJ9Wy1cXC9dXFxkezEsMn0pLio/KFxcZHsxLDJ9OlxcZHsyfSkvKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSByZXR1cm4gYCR7bWF0Y2hbMV0ucmVwbGFjZSgvLS9nLCAnLycpLnJlcGxhY2UoL15cXGR7NH1cXC8vLCAobSkgPT4gbSl9ICR7bWF0Y2hbMl19YDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRlVGltZVN0cik7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZGF0ZVRpbWVTdHIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIOaWsOWinu+8mumAieaLqeiwg+acuuW4iOWChVxuICAgICAgICAgICAgc2VsZWN0VGlhb2ppVXNlcih1KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aWFvamlTdGFmZk5vID0gdTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVGlhb2ppVXNlclNlbGVjdFNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRpYW9qaVVzZXJTZWFyY2ggPSAnJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIOaWsOWinu+8mumAgeajgOWRvOWPqyArIOaKpeivleS6p+aVsFxuICAgICAgICAgICAgYXN5bmMgaGFuZGxlSW5zcGVjdGlvbkNhbGwoKSB7XG4gICAgICAgICAgICAgICAgLy8g6aqM6K+B5b+F5aGr6aG5XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRpYW9qaVN0YWZmTm8pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+mAieaLqeiwg+acuuW4iOWChScpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGNvbnN0IG9rUXR5ID0gTnVtYmVyKHRoaXMudGlhb2ppT2tRdHkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhZFF0eSA9IE51bWJlcih0aGlzLnRpYW9qaUJhZFF0eSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKG9rUXR5KSB8fCBva1F0eSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+i+k+WFpeacieaViOeahOiwg+acuuiJr+WTgeaVsCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIChpc05hTihiYWRRdHkpIHx8IGJhZFF0eSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+i+k+WFpeacieaViOeahOiwg+acuuS4jeiJr+WTgeaVsCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YWZmTm8gPSB0aGlzLnRpYW9qaVN0YWZmTm8uc3BsaXQoJzonKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFF0eSA9IG9rUXR5ICsgYmFkUXR5OyAvLyDor5XkuqfmgLvmlbAgPSDoia/lk4HmlbAgKyDkuI3oia/lk4HmlbBcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyDosIPnlKjmiqXor5XkuqfmlbDmjqXlj6Mo5L2/55So5oql5bel55WM6Z2i55qE5o6l5Y+jKVxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyTm86IHRoaXMud29ya09yZGVyTm8sXG4gICAgICAgICAgICAgICAgICAgIG9yZGVySWQ6IHRoaXMub3JkZXJJZCwgLy8g6ZyA6KaB5LuO5bel5Y2V5pWw5o2u5Lit6I635Y+WXG4gICAgICAgICAgICAgICAgICAgIGJmOiB0b3RhbFF0eSwgLy8g6K+V5Lqn5oC75pWwXG4gICAgICAgICAgICAgICAgICAgIHN0YWZmTm86IHN0YWZmTm8sXG4gICAgICAgICAgICAgICAgICAgIGluaXRDak51bTogdGhpcy5vcmRlcj8uaW5pdENqTnVtIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDak51bTogdGhpcy5vcmRlcj8uY3VycmVudENqTnVtIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0aWFvamknLCAvLyDmoIfor4bkuLrosIPmnLrmiqXlt6VcbiAgICAgICAgICAgICAgICAgICAgdGlhb2ppT2tRdHk6IG9rUXR5LCAvLyDmlrDlop466Imv5ZOB5pWwXG4gICAgICAgICAgICAgICAgICAgIHRpYW9qaUJhZFF0eTogYmFkUXR5IC8vIOaWsOWinjrkuI3oia/lk4HmlbBcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIOiwg+eUqOaKpeW3peeVjOmdoueahOaKpeivleS6p+aVsOaOpeWPo1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9NZXNJbnZJdGVtQmFyY29kZXMvQWRkQkZUb0JhcmNvZGVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHBheWxvYWRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfosIPmnLrmiqXlt6XmiJDlip8nKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g5riF56m66L6T5YWlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGlhb2ppT2tRdHkgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aWFvamlCYWRRdHkgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgLy8g5Yi35paw5pWw5o2uXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+iwg+acuuaKpeW3pemUmeivrzonLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn6LCD5py65oql5bel5aSx6LSl77yM6K+35qOA5p+l572R57ucJyk7XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8g5paw5aKe77ya6I635Y+W6LCD5py65biI5YKF5YiX6KGoXG4gICAgICAgICAgICBhc3luYyBmZXRjaFRpYW9qaVN0YWZmKCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc1N0YWZmL0dldEFsbFhTMDEwMUJZdGonIC8vIOS4juaKpeW3peeVjOmdouS9v+eUqOebuOWQjOaOpeWPo1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDAgJiYgcmVzLmRhdGEgJiYgcmVzLmRhdGEudGJCaWxsTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhZmYgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aWFvamlVc2VycyA9IHN0YWZmLm1hcChzID0+IHMuc3RhZmZObyArICc6JyArIHMuc3RhZmZOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5bosIPmnLrluIjlgoXliJfooajlpLHotKU6JywgZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vdW50ZWQoKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoVG9vbHMoJycpO1xuICAgICAgICAgICAgdGhpcy5tYWNoaW5lTm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycpIHx8ICcnO1xuICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJObyA9IHVuaS5nZXRTdG9yYWdlU3luYygnZGFhMDAxJykgfHwgJyc7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIOaWsOWinu+8muiOt+WPluiwg+acuuW4iOWCheWIl+ihqFxuICAgICAgICAgICAgdGhpcy5mZXRjaFRpYW9qaVN0YWZmKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1hY2hpbmVObyAmJiB0aGlzLndvcmtPcmRlck5vKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaEZvcm1EYXRhKCkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hEZWZhdWx0VG9vbEZyb21Xb3JrT3JkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g6L+b5YWl6aG16Z2i5pe26LWL5YC856ys5LiA6KGMIGN1cnJlbnRDak51bVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b29sUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy50b29sUmVjb3Jkc1swXSwgJ2N1cnJlbnRDak51bScsIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+acuuWPsOWPt+aIluW3peWNleWPt+S4uuepuu+8jOaXoOazleiOt+WPluihqOWNleaVsOaNricpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDlkK/liqjoh6rliqjkv53lrZjlrprml7blmahcbiAgICAgICAgICAgIC8vdGhpcy5zdGFydEF1dG9TYXZlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGJlZm9yZURlc3Ryb3koKSB7XG4gICAgICAgICAgICAvLyDmuIXnkIblrprml7blmajvvIzpmLLmraLlhoXlrZjms4TmvI9cbiAgICAgICAgICAgIHRoaXMuc3RvcEF1dG9TYXZlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4gICAgLnRvcC1zZWN0aW9uLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnZoO1xuICAgICAgICB3aWR0aDogOTl2dztcbiAgICAgICAgbWF4LXdpZHRoOiAxOTIwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U5ZWNlZjtcbiAgICB9XG5cbiAgICAuZm9ybS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgICAgICAuZm9ybS1yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAuZm9ybS1jZWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgICAgIC5mb3JtLWNlbGw6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyOCU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tY2VsbDpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgZmxleDogMCAwIDMyJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybS1jZWxsOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjIwcHg7IC8qIOmZkOWItuacgOWkp+WuveW6pu+8jOmBv+WFjeaSkeW8gCAqL1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgLmZvcm0tbGFiZWwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgIH1cblxuICAgIC5pbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMjBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGZlNjtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB9XG5cbiAgICAgICAgLmlucHV0LnNtYWxsLWZvbnQge1xuICAgICAgICAgICAgLyog5LiN6K6+572u5a2X5L2T5aSn5bCPICovXG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQ6ZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmYTtcbiAgICAgICAgICAgIGNvbG9yOiAjYzBjNGNjO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgLmlucHV0LXdpdGgtdW5pdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMDtcbiAgICB9XG5cbiAgICAgICAgLmlucHV0LXdpdGgtdW5pdCAuaW5wdXQge1xuICAgICAgICAgICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LXdpdGgtdW5pdCAuaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgLnVuaXQtdGV4dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYnRuLWJsdWUsIC5idG4tYmx1ZS5sYXJnZS1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5MGZmO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMTRweCAzMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgaGVpZ2h0OiA3MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgfVxuXG4gICAgICAgIC5idG4tYmx1ZS5sYXJnZS1idG4ge1xuICAgICAgICAgICAgcGFkZGluZzogMCA2MHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIGhlaWdodDogNzJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgyNCwxNDQsMjU1LDAuMDgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDcycHg7IC8qIOWeguebtOWxheS4rSAqL1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiDkv53or4FsaW5lLWhlaWdodOeUn+aViCAqL1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tYmx1ZTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDBhOWZmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0bi1ibHVlOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDk2ZGQ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0bi1ibHVlOmRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNiYWU3ZmY7XG4gICAgICAgICAgICBjb2xvcjogIzkxZDVmZjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgIC5idXR0b24tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMzJweDtcbiAgICAgICAgbWFyZ2luOiAydmggMDtcbiAgICB9XG5cbiAgICAuc2F2ZS1idG4sIC5jYW5jZWwtYnRuIHtcbiAgICAgICAgd2lkdGg6IDI4JTtcbiAgICAgICAgcGFkZGluZzogMS41dmg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG5cbiAgICAuY2FuY2VsLWJ0biB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgIH1cblxuICAgIC5zYXZlLWJ0bjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MGE5ZmY7XG4gICAgfVxuXG4gICAgLnNhdmUtYnRuOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwOTZkZDk7XG4gICAgfVxuXG4gICAgLnNhdmUtYnRuOmRpc2FibGVkLCAuY2FuY2VsLWJ0bjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvKiDlvLnnqpfmoLflvI8gKi9cbiAgICAuZGlhbG9nLW92ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjE4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgfVxuXG4gICAgLmRpYWxvZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIHBhZGRpbmc6IDN2aCAzdnc7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgICAgIHdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICAgICAgbWluLWhlaWdodDogNzB2aDtcbiAgICAgICAgbWF4LWhlaWdodDogODV2aDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAuMTIpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAydmg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgICAgICAuZm9ybS1ncm91cCAuaW5wdXQge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgICAgICB9XG5cbiAgICAudG9vbC1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW46IDF2aCAwO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnRvb2wtYnRuIHtcbiAgICAgICAgZmxleDogMCAwIGNhbGMoMjAlIC0gMTBweCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QwZDBkMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzLCBjb2xvciAwLjE1cztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgfVxuXG4gICAgICAgIC50b29sLWJ0bi5hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwQTJFOTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkICMwMDg2YzI7XG4gICAgICAgIH1cblxuICAgIC5kaWFsb2ctYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMnZoO1xuICAgICAgICBwYWRkaW5nLXRvcDogMnZoO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgICAgIC5kaWFsb2ctYWN0aW9ucyA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaWFsb2ctYWN0aW9ucyA+IGRpdjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZ2FwOiAxOHB4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaWFsb2ctYWN0aW9ucyAuYnRuLWJsdWUge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAyNHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgfVxuXG4gICAgLmJ0bi1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIH1cblxuICAgIC50YWJsZS1zZWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMXZoIDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlOyAvKiDnoa7kv53ooajmoLzlrrnlmajljaDmu6Hlrr3luqYgKi9cbiAgICB9XG5cbiAgICB0YWJsZS5zdHlsZWQtdGFibGUge1xuICAgICAgICBtYXgtd2lkdGg6IDE4MDBweDsgLyog5LuOMTYwMHB45aKe5Yqg5YiwMTgwMHB4ICovXG4gICAgICAgIHdpZHRoOiA5OHZ3OyAvKiDku445NXZ35aKe5Yqg5YiwOTh2dyAqL1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNiZmJmYmY7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLDAsMCwwLjA2KTtcbiAgICB9XG5cbiAgICAgICAgdGFibGUuc3R5bGVkLXRhYmxlIHRoZWFkIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2JmYmZiZjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGFibGUuc3R5bGVkLXRhYmxlIHRib2R5IHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xuICAgICAgICAgICAgcGFkZGluZzogMTRweCAxMHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgfVxuXG4gICAgLnRhYmxlLXNlY3Rpb24gdGFibGUgdGg6Zmlyc3QtY2hpbGQsIC50YWJsZS1zZWN0aW9uIHRhYmxlIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjYmZiZmJmO1xuICAgIH1cblxuICAgIC50YWJsZS1zZWN0aW9uIHRhYmxlIHRoOmxhc3QtY2hpbGQsIC50YWJsZS1zZWN0aW9uIHRhYmxlIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjYmZiZmJmO1xuICAgIH1cblxuICAgIC5yb3ctb2RkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG5cbiAgICAgICAgLnJvdy1vZGQgKyB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgICAgICB9XG5cbiAgICAubnVtIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIH1cblxuICAgIC5sZWZ0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgfVxuXG4gICAgLndhcm4tY2VsbCB7XG4gICAgICAgIGNvbG9yOiAjZDkzMDI1O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAub2stY2VsbCB7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgIH1cblxuICAgIC53YXJuLWJhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY0ZDRmO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgcGFkZGluZzogMnB4IDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAvKiDlk43lupTlvI/osIPmlbQgKi9cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIC5mb3JtLWNlbGwge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiA5MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tYmx1ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5wdXQtbGlmZS13YXJuIHtcbiAgICAgICAgd2lkdGg6IDQ4cHggIWltcG9ydGFudDsgLyog56iN5b6u5pS+5a6977yM6YG/5YWN5a2X5L2T5rqi5Ye6ICovXG4gICAgICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAuaW5wdXQsXG4gICAgLmlucHV0LnNtYWxsLWZvbnQsXG4gICAgLmlucHV0LXVzZS1saW1pdCxcbiAgICAuaW5wdXQtdG9vbC1tb2RlbCxcbiAgICAuaW5wdXQtdG9vbC1uYW1lLFxuICAgIC5pbnB1dC1saWZlLXdhcm4ge1xuICAgICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW5wdXQtdG9vbC1tb2RlbCB7XG4gICAgICAgIHdpZHRoOiAzMjBweCAhaW1wb3J0YW50OyAvKiDljp/kuLoyMDBweO+8jOeOsOWKoOmVvyAqL1xuICAgICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgIH1cblxuICAgIC5pbnB1dC10b29sLW5hbWUge1xuICAgICAgICB3aWR0aDogMTIwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAuaGlnaGxpZ2h0LWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICMxODkwZmYgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudG9vbC1kaXItY2VsbCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyAvKiDkuI7op4TmoLzlnovlj7fovpPlhaXmoYbmi4nlvIDot53nprsgKi9cbiAgICB9XG5cbiAgICAuZm9ybS1jZWxsLWZsZXgge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4OiAwIDAgNjAlO1xuICAgICAgICBtaW4td2lkdGg6IDMyMHB4O1xuICAgIH1cblxuICAgICAgICAuZm9ybS1jZWxsLWZsZXggLmZvcm0tbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWNlbGwtZmxleCAuaW5wdXQtdXNlLWxpbWl0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgfVxuXG4gICAgLmlucHV0LXVzZS1saW1pdCB7XG4gICAgICAgIHdpZHRoOiA0NTBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgICBmbGV4OiBub25lICFpbXBvcnRhbnQ7IC8qIOWFs+mUru+8muW9u+W6leemgeatomZsZXjmi4nkvLggKi9cbiAgICB9XG5cbiAgICAvKiDmlrDlop7vvJrosIPmnLrljLrln5/moLflvI8gKi9cbiAgICAudGlhb2ppLXNlY3Rpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAydmggMDtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTllY2VmO1xuICAgIH1cblxuICAgIC50aWFvamktcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDIwcHg7XG4gICAgfVxuXG4gICAgLyog5b2T5YmN6LCD5py65biI5YKF5Yy65Z+fIC0g5LiO5oql5bel55WM6Z2i5L+d5oyB5LiA6Ie0ICovXG4gICAgLmN1cnJlbnQtdXNlci1zZWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkICNmMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMjJweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAuY3VycmVudC11c2VyLW5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgIH1cblxuICAgIC8qIOmAieS6uuaMiemSriAtIOiTneiJsuS4u+mimO+8jOS4juaKpeW3peeVjOmdouS/neaMgeS4gOiHtCAqL1xuICAgIC5zZWxlY3QtdXNlci1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDBhMmU5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDIycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xuICAgICAgICBoZWlnaHQ6IDY2cHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICAgICAuc2VsZWN0LXVzZXItYnRuOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDhhYzI7XG4gICAgICAgIH1cblxuICAgIC8qIOiwg+acuuaVsOmHj+i+k+WFpeWMuuWfnyAqL1xuICAgIC50aWFvamktaW5wdXQtc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgIH1cblxuICAgIC50aWFvamktaW5wdXQge1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA2NnB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjODA4MDgwO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC8qIOmAgeajgOWRvOWPq+aMiemSriAtIOS4juaKpeW3peeVjOmdoueahOehruiupOaPkOS6pOaMiemSruS/neaMgeS4gOiHtCAqL1xuICAgIC5kZXRhaWxzLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMzRweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTJlOTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGhlaWdodDogNjZweDtcbiAgICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7XG4gICAgfVxuXG4gICAgICAgIC5kZXRhaWxzLWJ0bjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA4YWMyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRldGFpbHMtYnRuOmRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYmFlN2ZmO1xuICAgICAgICB9XG5cbiAgICAudGlhb2ppLXN1Ym1pdC1zZWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvKiDpgInkurrlvLnnqpfmoLflvI8gLSDkuI7miqXlt6XnlYzpnaLkv53mjIHkuIDoh7QgKi9cbiAgICAub3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC40NSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgIH1cblxuICAgIC51c2VyLXNlbGVjdC1wb3B1cCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIHdpZHRoOiAxNjAwcHg7XG4gICAgICAgIG1heC13aWR0aDogOTl2dztcbiAgICAgICAgbWluLXdpZHRoOiAxMDAwcHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogNTIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAuMTIpO1xuICAgICAgICB6LWluZGV4OiAxMDAxO1xuICAgIH1cblxuICAgIC51c2VyLXNlYXJjaC1iYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE4cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggNjRweCAwIDY0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAudXNlci1zZWFyY2gtaW5wdXQge1xuICAgICAgICBmbGV4OiAxIDEgMjYwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGhlaWdodDogNTRweDtcbiAgICB9XG5cbiAgICAgICAgLnVzZXItc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzAwN2FmZjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsMTIyLDI1NSwuMTUpO1xuICAgICAgICB9XG5cbiAgICAudXNlci1zZWFyY2gtY2xlYXIge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDI4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjlmNDM7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgICAgIC51c2VyLXNlYXJjaC1jbGVhcjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmY4OTIwO1xuICAgICAgICB9XG5cbiAgICAudXNlci1zZWFyY2gtaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgY29sb3I6ICM1NTU7XG4gICAgfVxuXG4gICAgLnVzZXItbGlzdC1zY3JvbGwge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcGFkZGluZzogMzJweCA2NHB4IDAgNjRweDtcbiAgICB9XG5cbiAgICAudXNlci1saXN0LWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDIwMHB4LDFmcikpO1xuICAgICAgICBnYXA6IDIycHggMjJweDtcbiAgICB9XG5cbiAgICAudXNlci1saXN0LWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMGEyZTk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgICAgICAudXNlci1saXN0LWJ0biAudXNlci1jb2RlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbGlzdC1idG4gLnVzZXItbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbGlzdC1idG4uc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwNzJjOTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwyNTUsMjU1LC42KSBpbnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLWxpc3QtYnRuOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDhlZDA7XG4gICAgICAgIH1cblxuICAgIC5uby11c2VyLXJlc3VsdCB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIGNvbG9yOiAjNjY2O1xuICAgIH1cblxuICAgIC51c2VyLXBvcHVwLWZvb3RlciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDY0cHggMzJweCA2NHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmNsZWFuLWJ0biB7XG4gICAgICAgIHdpZHRoOiAyNCU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42dnc7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7XG4gICAgfVxuXG4gICAgICAgIC5jbGVhbi1idG4ud2lkZS1idG4ge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGVhbi1idG46aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwNjJjOTtcbiAgICAgICAgfVxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n");
/***/ }),
/* 63 */
@@ -9724,7 +9689,11 @@
),
_c(
"view",
- { staticClass: _vm._$s(3, "sc", "table-section"), attrs: { _i: 3 } },
+ {
+ staticClass: _vm._$s(3, "sc", "table-section"),
+ class: _vm._$s(3, "c", { expanded: _vm.toolExpanded }),
+ attrs: { _i: 3 },
+ },
[
_c(
"view",
@@ -9756,11 +9725,7 @@
),
_c(
"table",
- {
- staticClass: _vm._$s(7, "sc", "styled-table"),
- class: _vm._$s(7, "c", { expanded: _vm.toolExpanded }),
- attrs: { _i: 7 },
- },
+ { staticClass: _vm._$s(7, "sc", "styled-table"), attrs: { _i: 7 } },
[
_c("thead", [
_c("tr", [
@@ -10142,6 +10107,20 @@
)
),
]),
+ _c("button", {
+ staticClass: _vm._$s(
+ 55,
+ "sc",
+ "inline-expand-btn"
+ ),
+ attrs: { _i: 55 },
+ on: {
+ click: function ($event) {
+ return _vm.toggleExpand("tool")
+ },
+ },
+ }),
+ _c("span"),
]
),
])
@@ -10155,21 +10134,25 @@
),
_c(
"view",
- { staticClass: _vm._$s(55, "sc", "table-section"), attrs: { _i: 55 } },
+ {
+ staticClass: _vm._$s(57, "sc", "table-section"),
+ class: _vm._$s(57, "c", { expanded: _vm.inspectionExpanded }),
+ attrs: { _i: 57 },
+ },
[
_c(
"view",
{
- staticClass: _vm._$s(56, "sc", "table-header"),
- attrs: { _i: 56 },
+ staticClass: _vm._$s(58, "sc", "table-header"),
+ attrs: { _i: 58 },
},
[
_c("h3"),
_c(
"button",
{
- staticClass: _vm._$s(58, "sc", "expand-btn"),
- attrs: { _i: 58 },
+ staticClass: _vm._$s(60, "sc", "expand-btn"),
+ attrs: { _i: 60 },
on: {
click: function ($event) {
return _vm.toggleExpand("inspection")
@@ -10179,7 +10162,7 @@
[
_vm._v(
_vm._$s(
- 58,
+ 60,
"t0-0",
_vm._s(_vm.inspectionExpanded ? "鏀惰捣" : "灞曞紑")
)
@@ -10191,9 +10174,8 @@
_c(
"table",
{
- staticClass: _vm._$s(59, "sc", "styled-table"),
- class: _vm._$s(59, "c", { expanded: _vm.inspectionExpanded }),
- attrs: { _i: 59 },
+ staticClass: _vm._$s(61, "sc", "styled-table"),
+ attrs: { _i: 61 },
},
[
_c("thead", [
@@ -10212,27 +10194,27 @@
"tbody",
[
_vm._l(
- _vm._$s(71, "f", {
+ _vm._$s(73, "f", {
forItems: _vm.visibleInspectionRecords,
}),
function (item, idx, $21, $31) {
return _c(
"tr",
{
- key: _vm._$s(71, "f", {
+ key: _vm._$s(73, "f", {
forIndex: $21,
key: item.id || idx,
}),
- class: _vm._$s("71-" + $31, "c", {
+ class: _vm._$s("73-" + $31, "c", {
"row-odd": idx % 2 === 0,
}),
- attrs: { _i: "71-" + $31 },
+ attrs: { _i: "73-" + $31 },
},
[
_c("td", [
_vm._v(
_vm._$s(
- "72-" + $31,
+ "74-" + $31,
"t0-0",
_vm._s(item.releaseNo || "")
)
@@ -10241,7 +10223,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "73-" + $31,
+ "75-" + $31,
"t0-0",
_vm._s(item.fcheckBy || "")
)
@@ -10250,7 +10232,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "74-" + $31,
+ "76-" + $31,
"t0-0",
_vm._s(_vm.formatDate(item.fcheckDate))
)
@@ -10259,7 +10241,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "75-" + $31,
+ "77-" + $31,
"t0-0",
_vm._s(item.lineNo || "")
)
@@ -10268,7 +10250,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "76-" + $31,
+ "78-" + $31,
"t0-0",
_vm._s(item.fsubmit == 1 ? "宸叉彁浜�" : "鏈彁浜�")
)
@@ -10277,7 +10259,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "77-" + $31,
+ "79-" + $31,
"t0-0",
_vm._s(item.fcancel == "Y" ? "浣滃簾" : "鏈綔搴�")
)
@@ -10286,7 +10268,7 @@
_c("td", [
_vm._v(
_vm._$s(
- "78-" + $31,
+ "80-" + $31,
"t0-0",
_vm._s(item.fsecondResu || "")
)
@@ -10295,13 +10277,13 @@
_c(
"td",
{
- staticClass: _vm._$s("79-" + $31, "sc", "left"),
- attrs: { _i: "79-" + $31 },
+ staticClass: _vm._$s("81-" + $31, "sc", "left"),
+ attrs: { _i: "81-" + $31 },
},
[
_vm._v(
_vm._$s(
- "79-" + $31,
+ "81-" + $31,
"t0-0",
_vm._s(item.remeke || "")
)
@@ -10312,31 +10294,45 @@
)
}
),
- _vm._$s(80, "i", !_vm.inspectionRecords.length)
- ? _c("tr", { attrs: { _i: 80 } }, [_c("td", {})])
+ _vm._$s(82, "i", !_vm.inspectionRecords.length)
+ ? _c("tr", { attrs: { _i: 82 } }, [_c("td", {})])
: _vm._e(),
_vm._$s(
- 82,
+ 84,
"i",
_vm.hasMoreInspectionRecords && !_vm.inspectionExpanded
)
- ? _c("tr", { attrs: { _i: 82 } }, [
+ ? _c("tr", { attrs: { _i: 84 } }, [
_c(
"td",
{
- staticClass: _vm._$s(83, "sc", "more-records-tip"),
- attrs: { _i: 83 },
+ staticClass: _vm._$s(85, "sc", "more-records-tip"),
+ attrs: { _i: 85 },
},
[
_c("span", [
_vm._v(
_vm._$s(
- 84,
+ 86,
"t0-0",
_vm._s(_vm.remainingInspectionRecords)
)
),
]),
+ _c("button", {
+ staticClass: _vm._$s(
+ 87,
+ "sc",
+ "inline-expand-btn"
+ ),
+ attrs: { _i: 87 },
+ on: {
+ click: function ($event) {
+ return _vm.toggleExpand("inspection")
+ },
+ },
+ }),
+ _c("span"),
]
),
])
@@ -10377,7 +10373,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 3));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 9));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n machineNo: '',\n workOrderNo: '',\n selectedToolNo: '',\n toolName: '',\n useLimitInput: '',\n lifeWarnInput: '',\n toolRecords: [],\n inspectionRecords: [],\n // 棣栨璁板綍\n loadingForm: false,\n loadingInspection: false,\n // 棣栨璁板綍鍔犺浇鐘舵�乗n submitting: false,\n workOrderCurrentCjNum: null,\n toolExpanded: false,\n // 鍒�鍏疯〃鏍煎睍寮�鐘舵�乗n inspectionExpanded: false,\n // 棣栨琛ㄦ牸灞曞紑鐘舵�乗n defaultVisibleRows: 3 // 榛樿鏄剧ず鐨勮鏁癨n };\n },\n\n computed: {\n // 鍒�鍏疯〃鏍肩浉鍏宠绠梊n defaultToolRows: function defaultToolRows() {\n var total = this.toolRecords.length;\n if (total <= 3) return total;\n return Math.max(3, Math.floor(total / 2));\n },\n visibleToolRecords: function visibleToolRecords() {\n if (this.toolExpanded) {\n return this.toolRecords;\n } else {\n return this.toolRecords.slice(0, this.defaultToolRows);\n }\n },\n hasMoreToolRecords: function hasMoreToolRecords() {\n return this.toolRecords.length > this.defaultToolRows;\n },\n remainingToolRecords: function remainingToolRecords() {\n return this.toolRecords.length - this.defaultToolRows;\n },\n // 棣栨琛ㄦ牸鐩稿叧璁$畻\n defaultInspectionRows: function defaultInspectionRows() {\n var total = this.inspectionRecords.length;\n if (total <= 2) return total; // 棣栨琛ㄦ牸榛樿鏄剧ず2琛孿n return Math.max(2, Math.floor(total / 2));\n },\n visibleInspectionRecords: function visibleInspectionRecords() {\n if (this.inspectionExpanded) {\n return this.inspectionRecords;\n } else {\n return this.inspectionRecords.slice(0, this.defaultInspectionRows);\n }\n },\n hasMoreInspectionRecords: function hasMoreInspectionRecords() {\n return this.inspectionRecords.length > this.defaultInspectionRows;\n },\n remainingInspectionRecords: function remainingInspectionRecords() {\n return this.inspectionRecords.length - this.defaultInspectionRows;\n }\n },\n methods: {\n // 鍒囨崲琛ㄦ牸灞曞紑鐘舵�乗n toggleExpand: function toggleExpand(tableType) {\n if (tableType === 'tool') {\n this.toolExpanded = !this.toolExpanded;\n } else if (tableType === 'inspection') {\n this.inspectionExpanded = !this.inspectionExpanded;\n }\n },\n // 鍒锋柊鎸夐挳澶勭悊鏂规硶\n handleRefresh: function handleRefresh() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(_this.machineNo && _this.workOrderNo)) {\n _context.next = 4;\n break;\n }\n _context.next = 3;\n return Promise.all([_this.fetchFormData(), _this.fetchDefaultToolFromWorkOrder(), _this.fetchInspectionRecords()]);\n case 3:\n // 鍒锋柊鍚庤祴鍊肩涓�琛� currentCjNum\n if (_this.toolRecords.length > 0) {\n _this.$set(_this.toolRecords[0], 'currentCjNum', _this.workOrderCurrentCjNum);\n }\n case 4:\n _this.$showMessage('鍒锋柊瀹屾垚');\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 鑾峰彇宸ュ崟棣栨璁板綍\n fetchInspectionRecords: function fetchInspectionRecords() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var res, list;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this2.workOrderNo) {\n _context2.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙蜂负绌猴紝璺宠繃鑾峰彇棣栨璁板綍', \" at pages/moldRecord.vue:239\");\n return _context2.abrupt(\"return\");\n case 3:\n _this2.loadingInspection = true;\n _context2.prev = 4;\n _context2.next = 7;\n return _this2.$post({\n url: '/MesCutterLedger/GetInspectionRecords',\n data: JSON.stringify({\n aufnr: _this2.workOrderNo,\n ftype: '棣栨'\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 7:\n res = _context2.sent;\n if (res.status === 0) {\n // 鏍规嵁瀹為檯鎺ュ彛杩斿洖缁撴瀯璋冩暣\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n _this2.inspectionRecords = list || [];\n } else {\n _this2.$showMessage(res.message || '鑾峰彇棣栨璁板綍澶辫触');\n _this2.inspectionRecords = [];\n }\n _context2.next = 16;\n break;\n case 11:\n _context2.prev = 11;\n _context2.t0 = _context2[\"catch\"](4);\n __f__(\"error\", '鑾峰彇棣栨璁板綍閿欒:', _context2.t0, \" at pages/moldRecord.vue:265\");\n _this2.$showMessage('鑾峰彇棣栨璁板綍澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this2.inspectionRecords = [];\n case 16:\n _context2.prev = 16;\n _this2.loadingInspection = false;\n return _context2.finish(16);\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[4, 11, 16, 19]]);\n }))();\n },\n // 鏍煎紡鍖栨棩鏈焅n formatDate: function formatDate(dateStr) {\n if (!dateStr) return '';\n try {\n var date = new Date(dateStr);\n if (isNaN(date.getTime())) return String(dateStr);\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n } catch (_unused) {\n return String(dateStr);\n }\n },\n // 鍏朵粬宸叉湁鏂规硶淇濇寔涓嶅彉...\n fetchDefaultToolFromWorkOrder: function fetchDefaultToolFromWorkOrder() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var _res$data, res, _ref, _order$CurrentCjNum, order, warn;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (_this3.machineNo) {\n _context3.next = 2;\n break;\n }\n return _context3.abrupt(\"return\");\n case 2:\n _context3.prev = 2;\n _context3.next = 5;\n return _this3.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this3.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context3.sent;\n if (res.status === 0 && Array.isArray((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList) && res.data.tbBillList.length > 0) {\n order = res.data.tbBillList[0];\n _this3.selectedToolNo = order.cutterId || order.cutteR_ID || '';\n _this3.toolName = order.cutterName || order.cutteR_NAME || '';\n _this3.workOrderCurrentCjNum = (_ref = (_order$CurrentCjNum = order.CurrentCjNum) !== null && _order$CurrentCjNum !== void 0 ? _order$CurrentCjNum : order.currentCjNum) !== null && _ref !== void 0 ? _ref : null;\n if (order.modlLifeWorning !== undefined && order.modlLifeWorning !== null) {\n warn = Number(order.modlLifeWorning);\n _this3.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n _this3.lifeWarnInput = '';\n }\n } else {\n _this3.workOrderCurrentCjNum = null;\n }\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](2);\n __f__(\"warn\", '鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', _context3.t0, \" at pages/moldRecord.vue:309\");\n _this3.workOrderCurrentCjNum = null;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[2, 9]]);\n }))();\n },\n fetchFormData: function fetchFormData() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var payload, res, list, getField, mapped;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n if (!(!_this4.workOrderNo || !_this4.machineNo)) {\n _context4.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁', \" at pages/moldRecord.vue:316\");\n return _context4.abrupt(\"return\");\n case 3:\n _this4.loadingForm = true;\n payload = {\n workOrderNo: _this4.workOrderNo.trim(),\n machineNo: _this4.machineNo.trim()\n };\n _context4.prev = 5;\n _context4.next = 8;\n return _this4.$post({\n url: '/MesCutterLedger/GetFormData',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 8:\n res = _context4.sent;\n if (!(res.status !== 0)) {\n _context4.next = 13;\n break;\n }\n _this4.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');\n _this4.toolRecords = [];\n return _context4.abrupt(\"return\");\n case 13:\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : []; // 鏁版嵁澶勭悊閫昏緫淇濇寔涓嶅彉...\n getField = function getField(obj) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var k = _keys[_i];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n };\n mapped = (list || []).map(function (t) {\n var _getField, _getField2;\n var upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');\n var downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');\n var lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');\n var currentCjNum = getField(t, 'currentCjNum', 'CURRENTCJNUM', 'CurrentCjNum');\n var useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');\n var useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');\n var percent = '';\n if (useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n percent = (Number(useCount) / Number(useLimit) * 100).toFixed(0) + '%';\n }\n var parseNumber = function parseNumber(v) {\n if (v === null || v === undefined || v === '') return null;\n var s = String(v).replace(/[,锛�%]/g, '').trim();\n var n = parseFloat(s);\n return Number.isFinite(n) ? n : null;\n };\n var formatPercent = function formatPercent(n) {\n if (n === null || n === undefined || isNaN(n)) return '';\n if (n <= 1) return \"\".concat((n * 100).toFixed(0), \"%\");\n return \"\".concat(Number(n).toFixed(0), \"%\");\n };\n var lifeWarnNum = parseNumber(lifeWarnRaw);\n var warnStatus = getField(t, 'status', 'STATUS') || '';\n if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n var percentNum = Number(useCount) / Number(useLimit);\n warnStatus = percentNum >= lifeWarnNum ? '棰勮' : '姝e父';\n } else {\n warnStatus = warnStatus || '鏈煡';\n }\n return {\n id: getField(t, 'id', 'ID') || \"\".concat(getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || '', \"-\").concat(upTimeRaw || ''),\n no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',\n name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',\n upTime: _this4.formatDateTime(upTimeRaw),\n upCount: (_getField = getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount')) !== null && _getField !== void 0 ? _getField : '',\n downTime: _this4.formatDateTime(downTimeRaw),\n downCount: (_getField2 = getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount')) !== null && _getField2 !== void 0 ? _getField2 : '',\n useCount: useCount !== null && useCount !== void 0 ? useCount : '',\n useLimit: useLimit !== null && useLimit !== void 0 ? useLimit : '',\n lifePercent: percent,\n lifeWarn: formatPercent(lifeWarnNum),\n warnStatus: warnStatus,\n currentCjNum: currentCjNum\n };\n });\n mapped.sort(function (a, b) {\n var parse = function parse(s) {\n if (!s) return 0;\n var year = new Date().getFullYear();\n return new Date(\"\".concat(year, \"-\").concat(s.replace(/-/g, '-'), \":00\")).getTime();\n };\n return parse(b.upTime) - parse(a.upTime);\n });\n _this4.toolRecords = mapped;\n _context4.next = 25;\n break;\n case 20:\n _context4.prev = 20;\n _context4.t0 = _context4[\"catch\"](5);\n __f__(\"error\", '鑾峰彇琛ㄥ崟鏁版嵁閿欒:', _context4.t0, \" at pages/moldRecord.vue:409\");\n _this4.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this4.toolRecords = [];\n case 25:\n _context4.prev = 25;\n _this4.loadingForm = false;\n return _context4.finish(25);\n case 28:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[5, 20, 25, 28]]);\n }))();\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (!dateTimeStr) return '';\n try {\n var s = String(dateTimeStr).trim();\n if (/^\\d{10}$/.test(s)) {\n var d = new Date(Number(s) * 1000);\n return \"\".concat(d.getMonth() + 1, \"-\").concat(d.getDate(), \" \").concat(d.getHours(), \":\").concat(String(d.getMinutes()).padStart(2, '0'));\n }\n if (/^\\d{13}$/.test(s)) {\n var _d = new Date(Number(s));\n return \"\".concat(_d.getMonth() + 1, \"-\").concat(_d.getDate(), \" \").concat(_d.getHours(), \":\").concat(String(_d.getMinutes()).padStart(2, '0'));\n }\n var date = new Date(dateTimeStr);\n if (!isNaN(date.getTime())) {\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n }\n var match = String(dateTimeStr).match(/(\\d{1,4}[-\\/]\\d{1,2}[-\\/]\\d{1,2}).*?(\\d{1,2}:\\d{2})/);\n if (match) return \"\".concat(match[1].replace(/-/g, '/').replace(/^\\d{4}\\//, function (m) {\n return m;\n }), \" \").concat(match[2]);\n return String(dateTimeStr);\n } catch (_unused2) {\n return String(dateTimeStr);\n }\n }\n },\n mounted: function mounted() {\n var _this5 = this;\n this.machineNo = uni.getStorageSync('machineNo') || '';\n this.workOrderNo = uni.getStorageSync('daa001') || '';\n if (this.machineNo && this.workOrderNo) {\n this.fetchFormData().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return _this5.fetchDefaultToolFromWorkOrder();\n case 2:\n _context5.next = 4;\n return _this5.fetchInspectionRecords();\n case 4:\n if (_this5.toolRecords.length > 0) {\n _this5.$set(_this5.toolRecords[0], 'currentCjNum', _this5.workOrderCurrentCjNum);\n }\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n })));\n } else {\n __f__(\"warn\", '鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇鏁版嵁', \" at pages/moldRecord.vue:454\");\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9sZFJlY29yZC52dWUiXSwibmFtZXMiOlsiZGF0YSIsIm1hY2hpbmVObyIsIndvcmtPcmRlck5vIiwic2VsZWN0ZWRUb29sTm8iLCJ0b29sTmFtZSIsInVzZUxpbWl0SW5wdXQiLCJsaWZlV2FybklucHV0IiwidG9vbFJlY29yZHMiLCJpbnNwZWN0aW9uUmVjb3JkcyIsImxvYWRpbmdGb3JtIiwibG9hZGluZ0luc3BlY3Rpb24iLCJzdWJtaXR0aW5nIiwid29ya09yZGVyQ3VycmVudENqTnVtIiwidG9vbEV4cGFuZGVkIiwiaW5zcGVjdGlvbkV4cGFuZGVkIiwiZGVmYXVsdFZpc2libGVSb3dzIiwiY29tcHV0ZWQiLCJkZWZhdWx0VG9vbFJvd3MiLCJ2aXNpYmxlVG9vbFJlY29yZHMiLCJoYXNNb3JlVG9vbFJlY29yZHMiLCJyZW1haW5pbmdUb29sUmVjb3JkcyIsImRlZmF1bHRJbnNwZWN0aW9uUm93cyIsInZpc2libGVJbnNwZWN0aW9uUmVjb3JkcyIsImhhc01vcmVJbnNwZWN0aW9uUmVjb3JkcyIsInJlbWFpbmluZ0luc3BlY3Rpb25SZWNvcmRzIiwibWV0aG9kcyIsInRvZ2dsZUV4cGFuZCIsImhhbmRsZVJlZnJlc2giLCJQcm9taXNlIiwiZmV0Y2hJbnNwZWN0aW9uUmVjb3JkcyIsInVybCIsImF1Zm5yIiwiZnR5cGUiLCJoZWFkZXJzIiwicmVzIiwibGlzdCIsImZvcm1hdERhdGUiLCJmZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlciIsIm9yZGVyIiwid2FybiIsImZldGNoRm9ybURhdGEiLCJwYXlsb2FkIiwiZ2V0RmllbGQiLCJrZXlzIiwibWFwcGVkIiwicGVyY2VudCIsIndhcm5TdGF0dXMiLCJpZCIsIm5vIiwibmFtZSIsInVwVGltZSIsInVwQ291bnQiLCJkb3duVGltZSIsImRvd25Db3VudCIsInVzZUNvdW50IiwidXNlTGltaXQiLCJsaWZlUGVyY2VudCIsImxpZmVXYXJuIiwiY3VycmVudENqTnVt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Iiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gICAgPHZpZXcgY2xhc3M9XCJwYWdlXCI+XHJcbiAgICAgICAgPCEtLSDmk43kvZzmjInpkq4gLS0+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJidXR0b24tcm93XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlLWJ0blwiIEBjbGljaz1cImhhbmRsZVJlZnJlc2hcIiA6ZGlzYWJsZWQ9XCJsb2FkaW5nRm9ybSB8fCBzdWJtaXR0aW5nIHx8IGxvYWRpbmdJbnNwZWN0aW9uXCI+5Yi35pawPC9idXR0b24+XHJcbiAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICA8IS0tIOWIgOWFt+S9v+eUqOiusOW9leihqOagvCAtLT5cclxuICAgICAgICA8dmlldyBjbGFzcz1cInRhYmxlLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMz7kuIrkuIvliIDorrDlvZU8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cGFuZC1idG5cIiBAY2xpY2s9XCJ0b2dnbGVFeHBhbmQoJ3Rvb2wnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHRvb2xFeHBhbmRlZCA/ICfmlLbotbcnIDogJ+WxleW8gCcgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInN0eWxlZC10YWJsZVwiIDpjbGFzcz1cInsnZXhwYW5kZWQnOiB0b29sRXhwYW5kZWR9XCI+XHJcbiAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPuWIgOWFt+e8luWPtzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjEyJVwiPuWIgOWFt+WQjeensDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjEwJVwiPuS4iuWIgOaXtumXtDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kuIrliIDorqHmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIvliIDml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5LiL5YiA6K6h5pWwPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS9v+eUqOasoeaVsDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kvb/nlKjkuIrpmZA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5a+/5ZG95q+UJTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7lr7/lkb3mr5TpooTorablgLw8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPumihOitpueKtuaAgTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjclXCI+5YiA5YW35Zyo5py654q25oCBPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgdi1mb3I9XCIoaXRlbSwgaWR4KSBpbiB2aXNpYmxlVG9vbFJlY29yZHNcIiA6a2V5PVwiaXRlbS5pZFwiIDpjbGFzcz1cInsncm93LW9kZCc6IGlkeCAlIDIgPT09IDB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBpdGVtLm5vIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPnt7IGl0ZW0ubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBpdGVtLnVwVGltZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPnt7IGl0ZW0udXBDb3VudCAhPSBudWxsID8gaXRlbS51cENvdW50IDogJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5kb3duVGltZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiFpdGVtLmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uY3VycmVudENqTnVtICE9IG51bGwgPyBpdGVtLmN1cnJlbnRDak51bSA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25Db3VudCAhPSBudWxsID8gaXRlbS5kb3duQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRvd25Db3VudCAhPSBudWxsID8gaXRlbS5kb3duQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImlkeCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiIWl0ZW0uZG93blRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmN1cnJlbnRDak51bSAhPSBudWxsICYmIGl0ZW0udXBDb3VudCAhPSBudWxsID8gKE51bWJlcihpdGVtLmN1cnJlbnRDak51bSkgLSBOdW1iZXIoaXRlbS51cENvdW50KSkgOiAoaXRlbS51c2VDb3VudCAhPSBudWxsID8gaXRlbS51c2VDb3VudCA6ICcnKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS51c2VDb3VudCAhPSBudWxsID8gaXRlbS51c2VDb3VudCA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+e3sgaXRlbS51c2VMaW1pdCAhPSBudWxsID8gaXRlbS51c2VMaW1pdCA6ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibnVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImlkeCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiIWl0ZW0uZG93blRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmN1cnJlbnRDak51bSAhPSBudWxsICYmIGl0ZW0udXBDb3VudCAhPSBudWxsICYmIGl0ZW0udXNlTGltaXQgIT0gbnVsbCAmJiBOdW1iZXIoaXRlbS51c2VMaW1pdCkgPiAwID8gTWF0aC5yb3VuZCgoTnVtYmVyKGl0ZW0uY3VycmVudENqTnVtKSAtIE51bWJlcihpdGVtLnVwQ291bnQpKSAvIE51bWJlcihpdGVtLnVzZUxpbWl0KSAqIDEwMCkgKyAnJScgOiAoaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5saWZlUGVyY2VudCAhPSBudWxsID8gaXRlbS5saWZlUGVyY2VudCA6ICcnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGlmZVBlcmNlbnQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPnt7IGl0ZW0ubGlmZVdhcm4gfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgOmNsYXNzPVwiaXRlbS53YXJuU3RhdHVzID09PSAn6aKE6K2mJyA/ICd3YXJuLWNlbGwnIDogKGl0ZW0ud2FyblN0YXR1cyA9PT0gJ+ato+W4uCcgPyAnb2stY2VsbCcgOiAnJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLndhcm5TdGF0dXMgPT09ICfpooToraYnXCIgY2xhc3M9XCJ3YXJuLWJhZGdlXCI+6K2m5ZGKPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1lbHNlPnt7IGl0ZW0ud2FyblN0YXR1cyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kb3duVGltZSA/ICfkuIvmnLonIDogJ+WcqOacuicgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwiIXRvb2xSZWNvcmRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCI+5pqC5peg5pWw5o2uPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwiaGFzTW9yZVRvb2xSZWNvcmRzICYmICF0b29sRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMlwiIGNsYXNzPVwibW9yZS1yZWNvcmRzLXRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+6L+Y5pyJIHt7IHJlbWFpbmluZ1Rvb2xSZWNvcmRzIH19IOadoeiusOW9le+8jOeCueWHu1wi5bGV5byAXCLmjInpkq7mn6XnnIvlhajpg6g8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICA8IS0tIOW3peWNlemmluajgOiusOW9leihqOagvCAtLT5cclxuICAgICAgICA8dmlldyBjbGFzcz1cInRhYmxlLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMz7lt6XljZXpppbmo4DorrDlvZU8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cGFuZC1idG5cIiBAY2xpY2s9XCJ0b2dnbGVFeHBhbmQoJ2luc3BlY3Rpb24nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGluc3BlY3Rpb25FeHBhbmRlZCA/ICfmlLbotbcnIDogJ+WxleW8gCcgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInN0eWxlZC10YWJsZVwiIDpjbGFzcz1cInsnZXhwYW5kZWQnOiBpbnNwZWN0aW9uRXhwYW5kZWR9XCI+XHJcbiAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7mo4DpqozljZXlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7mo4DpqozkurrlkZg8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7mo4Dpqozml6XmnJ88L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7mnLrlj7DnvJblj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7mj5DkuqTmoIfor4Y8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7mo4Dpqoznu5Pmnpw8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kvZzlup/moIfor4Y8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7lpIfms6g8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihpdGVtLCBpZHgpIGluIHZpc2libGVJbnNwZWN0aW9uUmVjb3Jkc1wiIDprZXk9XCJpdGVtLmlkIHx8IGlkeFwiIDpjbGFzcz1cInsncm93LW9kZCc6IGlkeCAlIDIgPT09IDB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g5L+u5pS55Li65bCP6am85bOw5qC85byPIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5yZWxlYXNlTm8gfHwgJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5mY2hlY2tCeSB8fCAnJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBmb3JtYXREYXRlKGl0ZW0uZmNoZWNrRGF0ZSkgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5saW5lTm8gfHwgJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5mc3VibWl0ID09IDEgPyAn5bey5o+Q5LqkJyA6ICfmnKrmj5DkuqQnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZmNhbmNlbCA9PSAnWScgPyAn5L2c5bqfJyA6ICfmnKrkvZzlup8nIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZnNlY29uZFJlc3UgfHwgJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsZWZ0XCI+e3sgaXRlbS5yZW1la2UgfHwgJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCIhaW5zcGVjdGlvblJlY29yZHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTBcIj7mmoLml6Dpppbmo4DorrDlvZU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCJoYXNNb3JlSW5zcGVjdGlvblJlY29yZHMgJiYgIWluc3BlY3Rpb25FeHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEwXCIgY2xhc3M9XCJtb3JlLXJlY29yZHMtdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7ov5jmnIkge3sgcmVtYWluaW5nSW5zcGVjdGlvblJlY29yZHMgfX0g5p2h6K6w5b2V77yM54K55Ye7XCLlsZXlvIBcIuaMiemSruafpeeci+WFqOmDqDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4gICAgZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgICAgIGRhdGEoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBtYWNoaW5lTm86ICcnLFxyXG4gICAgICAgICAgICAgICAgd29ya09yZGVyTm86ICcnLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRUb29sTm86ICcnLFxyXG4gICAgICAgICAgICAgICAgdG9vbE5hbWU6ICcnLFxyXG4gICAgICAgICAgICAgICAgdXNlTGltaXRJbnB1dDogJycsXHJcbiAgICAgICAgICAgICAgICBsaWZlV2FybklucHV0OiAnJyxcclxuICAgICAgICAgICAgICAgIHRvb2xSZWNvcmRzOiBbXSxcclxuICAgICAgICAgICAgICAgIGluc3BlY3Rpb25SZWNvcmRzOiBbXSwgLy8g6aaW5qOA6K6w5b2VXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nRm9ybTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nSW5zcGVjdGlvbjogZmFsc2UsIC8vIOmmluajgOiusOW9leWKoOi9veeKtuaAgVxyXG4gICAgICAgICAgICAgICAgc3VibWl0dGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB3b3JrT3JkZXJDdXJyZW50Q2pOdW06IG51bGwsXHJcbiAgICAgICAgICAgICAgICB0b29sRXhwYW5kZWQ6IGZhbHNlLCAvLyDliIDlhbfooajmoLzlsZXlvIDnirbmgIFcclxuICAgICAgICAgICAgICAgIGluc3BlY3Rpb25FeHBhbmRlZDogZmFsc2UsIC8vIOmmluajgOihqOagvOWxleW8gOeKtuaAgVxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZpc2libGVSb3dzOiAzLCAvLyDpu5jorqTmmL7npLrnmoTooYzmlbBcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXB1dGVkOiB7XHJcbiAgICAgICAgICAgIC8vIOWIgOWFt+ihqOagvOebuOWFs+iuoeeul1xyXG4gICAgICAgICAgICBkZWZhdWx0VG9vbFJvd3MoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IHRoaXMudG9vbFJlY29yZHMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRvdGFsIDw9IDMpIHJldHVybiB0b3RhbDtcclxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgzLCBNYXRoLmZsb29yKHRvdGFsIC8gMikpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB2aXNpYmxlVG9vbFJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50b29sRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sUmVjb3JkcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbFJlY29yZHMuc2xpY2UoMCwgdGhpcy5kZWZhdWx0VG9vbFJvd3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBoYXNNb3JlVG9vbFJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sUmVjb3Jkcy5sZW5ndGggPiB0aGlzLmRlZmF1bHRUb29sUm93cztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVtYWluaW5nVG9vbFJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sUmVjb3Jkcy5sZW5ndGggLSB0aGlzLmRlZmF1bHRUb29sUm93cztcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIC8vIOmmluajgOihqOagvOebuOWFs+iuoeeul1xyXG4gICAgICAgICAgICBkZWZhdWx0SW5zcGVjdGlvblJvd3MoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IHRoaXMuaW5zcGVjdGlvblJlY29yZHMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRvdGFsIDw9IDIpIHJldHVybiB0b3RhbDsgLy8g6aaW5qOA6KGo5qC86buY6K6k5pi+56S6MuihjFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDIsIE1hdGguZmxvb3IodG90YWwgLyAyKSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHZpc2libGVJbnNwZWN0aW9uUmVjb3JkcygpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3BlY3Rpb25FeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3BlY3Rpb25SZWNvcmRzO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnNwZWN0aW9uUmVjb3Jkcy5zbGljZSgwLCB0aGlzLmRlZmF1bHRJbnNwZWN0aW9uUm93cyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGhhc01vcmVJbnNwZWN0aW9uUmVjb3JkcygpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3BlY3Rpb25SZWNvcmRzLmxlbmd0aCA+IHRoaXMuZGVmYXVsdEluc3BlY3Rpb25Sb3dzO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZW1haW5pbmdJbnNwZWN0aW9uUmVjb3JkcygpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3BlY3Rpb25SZWNvcmRzLmxlbmd0aCAtIHRoaXMuZGVmYXVsdEluc3BlY3Rpb25Sb3dzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtZXRob2RzOiB7XHJcbiAgICAgICAgICAgIC8vIOWIh+aNouihqOagvOWxleW8gOeKtuaAgVxyXG4gICAgICAgICAgICB0b2dnbGVFeHBhbmQodGFibGVUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFibGVUeXBlID09PSAndG9vbCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xFeHBhbmRlZCA9ICF0aGlzLnRvb2xFeHBhbmRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFibGVUeXBlID09PSAnaW5zcGVjdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3BlY3Rpb25FeHBhbmRlZCA9ICF0aGlzLmluc3BlY3Rpb25FeHBhbmRlZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIC8vIOWIt+aWsOaMiemSruWkhOeQhuaWueazlVxyXG4gICAgICAgICAgICBhc3luYyBoYW5kbGVSZWZyZXNoKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWFjaGluZU5vICYmIHRoaXMud29ya09yZGVyTm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hGb3JtRGF0YSgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hJbnNwZWN0aW9uUmVjb3JkcygpXHJcbiAgICAgICAgICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5Yi35paw5ZCO6LWL5YC856ys5LiA6KGMIGN1cnJlbnRDak51bVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMudG9vbFJlY29yZHNbMF0sICdjdXJyZW50Q2pOdW0nLCB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+WIt+aWsOWujOaIkCcpO1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy8g6I635Y+W5bel5Y2V6aaW5qOA6K6w5b2VXHJcbiAgICAgICAgICAgIGFzeW5jIGZldGNoSW5zcGVjdGlvblJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMud29ya09yZGVyTm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+W3peWNleWPt+S4uuepuu+8jOi3s+i/h+iOt+WPlummluajgOiusOW9lScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0luc3BlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc0N1dHRlckxlZGdlci9HZXRJbnNwZWN0aW9uUmVjb3JkcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1Zm5yOiB0aGlzLndvcmtPcmRlck5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnR5cGU6ICfpppbmo4AnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDmoLnmja7lrp7pmYXmjqXlj6Pov5Tlm57nu5PmnoTosIPmlbRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IEFycmF5LmlzQXJyYXkocmVzLmRhdGEpID8gcmVzLmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLnRiQmlsbExpc3QpID8gcmVzLmRhdGEudGJCaWxsTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLmRhdGEpID8gcmVzLmRhdGEuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3BlY3Rpb25SZWNvcmRzID0gbGlzdCB8fCBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSB8fCAn6I635Y+W6aaW5qOA6K6w5b2V5aSx6LSlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zcGVjdGlvblJlY29yZHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+iOt+WPlummluajgOiusOW9lemUmeivrzonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoJ+iOt+WPlummluajgOiusOW9leWksei0pe+8jOivt+ajgOafpee9kee7nOi/nuaOpScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zcGVjdGlvblJlY29yZHMgPSBbXTtcclxuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nSW5zcGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy8g5qC85byP5YyW5pel5pyfXHJcbiAgICAgICAgICAgIGZvcm1hdERhdGUoZGF0ZVN0cikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShkYXRlU3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSByZXR1cm4gU3RyaW5nKGRhdGVTdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkYXRlLmdldE1vbnRoKCkgKyAxfS0ke2RhdGUuZ2V0RGF0ZSgpfSAke2RhdGUuZ2V0SG91cnMoKX06JHtTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZGF0ZVN0cik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAvLyDlhbbku5blt7LmnInmlrnms5Xkv53mjIHkuI3lj5guLi5cclxuICAgICAgICAgICAgYXN5bmMgZmV0Y2hEZWZhdWx0VG9vbEZyb21Xb3JrT3JkZXIoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFjaGluZU5vKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvV29tZGFhL0dldFdvbWRhYXNCeVNob3cnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8gfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDAgJiYgQXJyYXkuaXNBcnJheShyZXMuZGF0YT8udGJCaWxsTGlzdCkgJiYgcmVzLmRhdGEudGJCaWxsTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gcmVzLmRhdGEudGJCaWxsTGlzdFswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2xObyA9IG9yZGVyLmN1dHRlcklkIHx8IG9yZGVyLmN1dHRlUl9JRCB8fCAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sTmFtZSA9IG9yZGVyLmN1dHRlck5hbWUgfHwgb3JkZXIuY3V0dGVSX05BTUUgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtID0gb3JkZXIuQ3VycmVudENqTnVtID8/IG9yZGVyLmN1cnJlbnRDak51bSA/PyBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JkZXIubW9kbExpZmVXb3JuaW5nICE9PSB1bmRlZmluZWQgJiYgb3JkZXIubW9kbExpZmVXb3JuaW5nICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXJuID0gTnVtYmVyKG9yZGVyLm1vZGxMaWZlV29ybmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSB3YXJuIDw9IDEgPyAod2FybiAqIDEwMCkudG9GaXhlZCgwKSA6IHdhcm4udG9GaXhlZCgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlmZVdhcm5JbnB1dCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+iHquWKqOW4puWHuuW3peWNleWIgOWFt+Wksei0pScsIGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGFzeW5jIGZldGNoRm9ybURhdGEoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMud29ya09yZGVyTm8gfHwgIXRoaXMubWFjaGluZU5vKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCflt6XljZXlj7fmiJbmnLrlj7Dlj7fkuLrnqbrvvIzot7Pov4fojrflj5booajljZXmlbDmja4nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdGb3JtID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd29ya09yZGVyTm86IHRoaXMud29ya09yZGVyTm8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8udHJpbSgpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL01lc0N1dHRlckxlZGdlci9HZXRGb3JtRGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKHJlcy5tZXNzYWdlIHx8ICfojrflj5booajljZXmlbDmja7lpLHotKUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sUmVjb3JkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBBcnJheS5pc0FycmF5KHJlcy5kYXRhKSA/IHJlcy5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLnRiQmlsbExpc3QpID8gcmVzLmRhdGEudGJCaWxsTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAocmVzLmRhdGEgJiYgcmVzLmRhdGEuZGF0YSkgPyByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5pWw5o2u5aSE55CG6YC76L6R5L+d5oyB5LiN5Y+YLi4uXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0RmllbGQgPSAob2JqLCAuLi5rZXlzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSBpZiAob2JqPy5ba10gIT09IHVuZGVmaW5lZCAmJiBvYmo/LltrXSAhPT0gbnVsbCkgcmV0dXJuIG9ialtrXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwcGVkID0gKGxpc3QgfHwgW10pLm1hcCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBUaW1lUmF3ID0gZ2V0RmllbGQodCwgJ3VQX1RJTUUnLCAnVVBfVElNRScsICd1UFRpbWUnLCAnVVBUSU1FJywgJ1VwVGltZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb3duVGltZVJhdyA9IGdldEZpZWxkKHQsICdkb3dOX1RJTUUnLCAnRE9XTl9USU1FJywgJ2Rvd25UaW1lJywgJ0RPV05USU1FJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuUmF3ID0gZ2V0RmllbGQodCwgJ2xpZkVfV0FSTicsICdMSUZFX1dBUk4nLCAnbGlmZVdhcm4nLCAnTElGRVdBUk4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENqTnVtID0gZ2V0RmllbGQodCwgJ2N1cnJlbnRDak51bScsICdDVVJSRU5UQ0pOVU0nLCAnQ3VycmVudENqTnVtJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VDb3VudCA9IGdldEZpZWxkKHQsICd1c0VfQ09VTlQnLCAnVVNFX0NPVU5UJywgJ3VzZUNvdW50Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZUxpbWl0ID0gZ2V0RmllbGQodCwgJ3VzRV9MSU1JVCcsICdVU0VfTElNSVQnLCAndXNlTGltaXQnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwZXJjZW50ID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VDb3VudCAhPSBudWxsICYmIHVzZUxpbWl0ICE9IG51bGwgJiYgIWlzTmFOKHVzZUNvdW50KSAmJiAhaXNOYU4odXNlTGltaXQpICYmIE51bWJlcih1c2VMaW1pdCkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50ID0gKChOdW1iZXIodXNlQ291bnQpIC8gTnVtYmVyKHVzZUxpbWl0KSkgKiAxMDApLnRvRml4ZWQoMCkgKyAnJSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlTnVtYmVyID0gdiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IFN0cmluZyh2KS5yZXBsYWNlKC9bLO+8hSVdL2csICcnKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gcGFyc2VGbG9hdChzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0UGVyY2VudCA9IG4gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT09IG51bGwgfHwgbiA9PT0gdW5kZWZpbmVkIHx8IGlzTmFOKG4pKSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobiA8PSAxKSByZXR1cm4gYCR7KG4gKiAxMDApLnRvRml4ZWQoMCl9JWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7TnVtYmVyKG4pLnRvRml4ZWQoMCl9JWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpZmVXYXJuTnVtID0gcGFyc2VOdW1iZXIobGlmZVdhcm5SYXcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdhcm5TdGF0dXMgPSBnZXRGaWVsZCh0LCAnc3RhdHVzJywgJ1NUQVRVUycpIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlmZVdhcm5OdW0gIT09IG51bGwgJiYgdXNlQ291bnQgIT0gbnVsbCAmJiB1c2VMaW1pdCAhPSBudWxsICYmICFpc05hTih1c2VDb3VudCkgJiYgIWlzTmFOKHVzZUxpbWl0KSAmJiBOdW1iZXIodXNlTGltaXQpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudE51bSA9IE51bWJlcih1c2VDb3VudCkgLyBOdW1iZXIodXNlTGltaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FyblN0YXR1cyA9IChwZXJjZW50TnVtID49IGxpZmVXYXJuTnVtKSA/ICfpooToraYnIDogJ+ato+W4uCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuU3RhdHVzID0gd2FyblN0YXR1cyB8fCAn5pyq55+lJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBnZXRGaWVsZCh0LCAnaWQnLCAnSUQnKSB8fCBgJHtnZXRGaWVsZCh0LCAnY3V0dGVSX0lEJykgfHwgZ2V0RmllbGQodCwgJ0NVVFRFUl9JRCcpIHx8ICcnfS0ke3VwVGltZVJhdyB8fCAnJ31gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm86IGdldEZpZWxkKHQsICdjdXR0ZVJfSUQnLCAnQ1VUVEVSX0lEJywgJ2N1dHRlcklkJywgJ25vJykgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBnZXRGaWVsZCh0LCAnY3V0dGVSX05BTUUnLCAnQ1VUVEVSX05BTUUnLCAnY3V0dGVyTmFtZScsICduYW1lJykgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cFRpbWU6IHRoaXMuZm9ybWF0RGF0ZVRpbWUodXBUaW1lUmF3KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwQ291bnQ6IGdldEZpZWxkKHQsICd1UF9DT1VOVCcsICdVUF9DT1VOVCcsICd1cENvdW50JykgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duVGltZTogdGhpcy5mb3JtYXREYXRlVGltZShkb3duVGltZVJhdyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duQ291bnQ6IGdldEZpZWxkKHQsICdkb3dOX0NPVU5UJywgJ0RPV05fQ09VTlQnLCAnZG93bkNvdW50JykgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDb3VudDogdXNlQ291bnQgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VMaW1pdDogdXNlTGltaXQgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlUGVyY2VudDogcGVyY2VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZmVXYXJuOiBmb3JtYXRQZXJjZW50KGxpZmVXYXJuTnVtKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwcGVkLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2UgPSBzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcykgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGAke3llYXJ9LSR7cy5yZXBsYWNlKC8tL2csICctJyl9OjAwYCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2UoYi51cFRpbWUpIC0gcGFyc2UoYS51cFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gbWFwcGVkO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5booajljZXmlbDmja7plJnor686JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfojrflj5bmlbDmja7lpLHotKXvvIzor7fmo4Dmn6XnvZHnu5zov57mjqUnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xSZWNvcmRzID0gW107XHJcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0Zvcm0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGZvcm1hdERhdGVUaW1lKGRhdGVUaW1lU3RyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGVUaW1lU3RyKSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcoZGF0ZVRpbWVTdHIpLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoL15cXGR7MTB9JC8udGVzdChzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoTnVtYmVyKHMpICogMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2QuZ2V0SG91cnMoKX06JHtTdHJpbmcoZC5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9eXFxkezEzfSQvLnRlc3QocykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKE51bWJlcihzKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldE1vbnRoKCkgKyAxfS0ke2QuZ2V0RGF0ZSgpfSAke2QuZ2V0SG91cnMoKX06JHtTdHJpbmcoZC5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVUaW1lU3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZGF0ZS5nZXRNb250aCgpICsgMX0tJHtkYXRlLmdldERhdGUoKX0gJHtkYXRlLmdldEhvdXJzKCl9OiR7U3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gU3RyaW5nKGRhdGVUaW1lU3RyKS5tYXRjaCgvKFxcZHsxLDR9Wy1cXC9dXFxkezEsMn1bLVxcL11cXGR7MSwyfSkuKj8oXFxkezEsMn06XFxkezJ9KS8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgcmV0dXJuIGAke21hdGNoWzFdLnJlcGxhY2UoLy0vZywgJy8nKS5yZXBsYWNlKC9eXFxkezR9XFwvLywgKG0pID0+IG0pfSAke21hdGNoWzJdfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRlVGltZVN0cik7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGVUaW1lU3RyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbW91bnRlZCgpIHtcclxuICAgICAgICAgICAgdGhpcy5tYWNoaW5lTm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycpIHx8ICcnO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtPcmRlck5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdkYWEwMDEnKSB8fCAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hY2hpbmVObyAmJiB0aGlzLndvcmtPcmRlck5vKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoRm9ybURhdGEoKS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaEluc3BlY3Rpb25SZWNvcmRzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9vbFJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy50b29sUmVjb3Jkc1swXSwgJ2N1cnJlbnRDak51bScsIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign5py65Y+w5Y+35oiW5bel5Y2V5Y+35Li656m677yM5peg5rOV6I635Y+W5pWw5o2uJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbiAgICAucGFnZSB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAxNnB4OyAvKiDkuKTkuKrooajmoLzkuYvpl7TnmoTpl7Tot50gKi9cclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW46IDJ2aCAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zYXZlLWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICBwYWRkaW5nOiAxLjV2aDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBMkU5O1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAuc2F2ZS1idG46aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDBhOWZmO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNhdmUtYnRuOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwOTZkZDk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2F2ZS1idG46ZGlzYWJsZWQge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC8qIOihqOagvOWuueWZqOagt+W8jyAqL1xyXG4gICAgLnRhYmxlLXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjBmMGYwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWJsZS1oZWFkZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOGU4ZTg7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC50YWJsZS1oZWFkZXIgaDMge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC5leHBhbmQtYnRuIHtcclxuICAgICAgICBwYWRkaW5nOiA4cHggMjBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTJjNDFhO1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5leHBhbmQtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzczZDEzZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5leHBhbmQtYnRuOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzODllMGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC8qIOihqOagvOagt+W8jyAqL1xyXG4gICAgdGFibGUuc3R5bGVkLXRhYmxlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDE4MDBweDtcclxuICAgICAgICB3aWR0aDogOTh2dztcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xyXG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNiZmJmYmY7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLDAsMCwwLjA2KTtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAxODBweDsgLyog6LCD5pW06auY5bqm5L2/6aG16Z2i6aWx5ruhICovXHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBlYXNlO1xyXG4gICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUuZXhwYW5kZWQge1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDsgLyog5bGV5byA5pe255qE6auY5bqmICovXHJcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUgdGhlYWQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGFibGUuc3R5bGVkLXRhYmxlIHRoZWFkIHRoIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2JmYmZiZjtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTBweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0Ym9keSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDE4MHB4IC0gNTBweCk7IC8qIOWHj+WOu+ihqOWktOmrmOW6piAqL1xyXG4gICAgICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUuZXhwYW5kZWQgdGJvZHkge1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDQwMHB4IC0gNTBweCk7XHJcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUgdGJvZHkgdHIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUgdGJvZHkgdGQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U4ZThlODtcclxuICAgICAgICAgICAgcGFkZGluZzogMTRweCAxMHB4O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0Ym9keSAubGVmdCB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAucm93LW9kZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIH1cclxuXHJcbiAgICAgICAgLnJvdy1vZGQgKyB0ciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC5udW0ge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XHJcbiAgICB9XHJcblxyXG4gICAgLndhcm4tY2VsbCB7XHJcbiAgICAgICAgY29sb3I6ICNkOTMwMjU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm9rLWNlbGwge1xyXG4gICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgfVxyXG5cclxuICAgIC53YXJuLWJhZGdlIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmNGQ0ZjtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAubW9yZS1yZWNvcmRzLXRpcCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGNvbG9yOiAjNjY2O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcclxuICAgIH1cclxuXHJcbiAgICAgICAgLm1vcmUtcmVjb3Jkcy10aXAgc3BhbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICNjY2M7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC8qIOWTjeW6lOW8j+iwg+aVtCAqL1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xyXG4gICAgICAgIC5zYXZlLWJ0biB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGFibGUtaGVhZGVyIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgZ2FwOiA4cHg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmV4cGFuZC1idG4ge1xyXG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///119\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 3));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 9));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n machineNo: '',\n workOrderNo: '',\n selectedToolNo: '',\n toolName: '',\n useLimitInput: '',\n lifeWarnInput: '',\n toolRecords: [],\n inspectionRecords: [],\n // 棣栨璁板綍\n loadingForm: false,\n loadingInspection: false,\n // 棣栨璁板綍鍔犺浇鐘舵�乗n submitting: false,\n workOrderCurrentCjNum: null,\n toolExpanded: false,\n // 鍒�鍏疯〃鏍煎睍寮�鐘舵�乗n inspectionExpanded: false,\n // 棣栨琛ㄦ牸灞曞紑鐘舵�乗n defaultVisibleRows: 3 // 榛樿鏄剧ず鐨勮鏁癨n };\n },\n\n computed: {\n // 鍒�鍏疯〃鏍肩浉鍏宠绠梊n defaultToolRows: function defaultToolRows() {\n var total = this.toolRecords.length;\n if (total <= 3) return total;\n return Math.max(3, Math.floor(total / 2));\n },\n visibleToolRecords: function visibleToolRecords() {\n if (this.toolExpanded) {\n return this.toolRecords;\n } else {\n return this.toolRecords.slice(0, this.defaultToolRows);\n }\n },\n hasMoreToolRecords: function hasMoreToolRecords() {\n return this.toolRecords.length > this.defaultToolRows;\n },\n remainingToolRecords: function remainingToolRecords() {\n return this.toolRecords.length - this.defaultToolRows;\n },\n // 棣栨琛ㄦ牸鐩稿叧璁$畻\n defaultInspectionRows: function defaultInspectionRows() {\n var total = this.inspectionRecords.length;\n if (total <= 2) return total; // 棣栨琛ㄦ牸榛樿鏄剧ず2琛孿n return Math.max(2, Math.floor(total / 2));\n },\n visibleInspectionRecords: function visibleInspectionRecords() {\n if (this.inspectionExpanded) {\n return this.inspectionRecords;\n } else {\n return this.inspectionRecords.slice(0, this.defaultInspectionRows);\n }\n },\n hasMoreInspectionRecords: function hasMoreInspectionRecords() {\n return this.inspectionRecords.length > this.defaultInspectionRows;\n },\n remainingInspectionRecords: function remainingInspectionRecords() {\n return this.inspectionRecords.length - this.defaultInspectionRows;\n }\n },\n methods: {\n // 鍒囨崲琛ㄦ牸灞曞紑鐘舵�乗n toggleExpand: function toggleExpand(tableType) {\n if (tableType === 'tool') {\n this.toolExpanded = !this.toolExpanded;\n } else if (tableType === 'inspection') {\n this.inspectionExpanded = !this.inspectionExpanded;\n }\n },\n // 鍒锋柊鎸夐挳澶勭悊鏂规硶\n handleRefresh: function handleRefresh() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(_this.machineNo && _this.workOrderNo)) {\n _context.next = 4;\n break;\n }\n _context.next = 3;\n return Promise.all([_this.fetchFormData(), _this.fetchDefaultToolFromWorkOrder(), _this.fetchInspectionRecords()]);\n case 3:\n // 鍒锋柊鍚庤祴鍊肩涓�琛� currentCjNum\n if (_this.toolRecords.length > 0) {\n _this.$set(_this.toolRecords[0], 'currentCjNum', _this.workOrderCurrentCjNum);\n }\n case 4:\n _this.$showMessage('鍒锋柊瀹屾垚');\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 鑾峰彇宸ュ崟棣栨璁板綍\n fetchInspectionRecords: function fetchInspectionRecords() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var res, list;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_this2.workOrderNo) {\n _context2.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙蜂负绌猴紝璺宠繃鑾峰彇棣栨璁板綍', \" at pages/moldRecord.vue:243\");\n return _context2.abrupt(\"return\");\n case 3:\n _this2.loadingInspection = true;\n _context2.prev = 4;\n _context2.next = 7;\n return _this2.$post({\n url: '/MesCutterLedger/GetInspectionRecords',\n data: JSON.stringify({\n aufnr: _this2.workOrderNo,\n ftype: '棣栨'\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 7:\n res = _context2.sent;\n if (res.status === 0) {\n // 鏍规嵁瀹為檯鎺ュ彛杩斿洖缁撴瀯璋冩暣\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : [];\n _this2.inspectionRecords = list || [];\n } else {\n _this2.$showMessage(res.message || '鑾峰彇棣栨璁板綍澶辫触');\n _this2.inspectionRecords = [];\n }\n _context2.next = 16;\n break;\n case 11:\n _context2.prev = 11;\n _context2.t0 = _context2[\"catch\"](4);\n __f__(\"error\", '鑾峰彇棣栨璁板綍閿欒:', _context2.t0, \" at pages/moldRecord.vue:269\");\n _this2.$showMessage('鑾峰彇棣栨璁板綍澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this2.inspectionRecords = [];\n case 16:\n _context2.prev = 16;\n _this2.loadingInspection = false;\n return _context2.finish(16);\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[4, 11, 16, 19]]);\n }))();\n },\n // 鏍煎紡鍖栨棩鏈焅n formatDate: function formatDate(dateStr) {\n if (!dateStr) return '';\n try {\n var date = new Date(dateStr);\n if (isNaN(date.getTime())) return String(dateStr);\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n } catch (_unused) {\n return String(dateStr);\n }\n },\n // 鍏朵粬宸叉湁鏂规硶淇濇寔涓嶅彉...\n fetchDefaultToolFromWorkOrder: function fetchDefaultToolFromWorkOrder() {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var _res$data, res, _ref, _order$CurrentCjNum, order, warn;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (_this3.machineNo) {\n _context3.next = 2;\n break;\n }\n return _context3.abrupt(\"return\");\n case 2:\n _context3.prev = 2;\n _context3.next = 5;\n return _this3.$post({\n url: '/Womdaa/GetWomdaasByShow',\n data: JSON.stringify({\n machineNo: _this3.machineNo\n }),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 5:\n res = _context3.sent;\n if (res.status === 0 && Array.isArray((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList) && res.data.tbBillList.length > 0) {\n order = res.data.tbBillList[0];\n _this3.selectedToolNo = order.cutterId || order.cutteR_ID || '';\n _this3.toolName = order.cutterName || order.cutteR_NAME || '';\n _this3.workOrderCurrentCjNum = (_ref = (_order$CurrentCjNum = order.CurrentCjNum) !== null && _order$CurrentCjNum !== void 0 ? _order$CurrentCjNum : order.currentCjNum) !== null && _ref !== void 0 ? _ref : null;\n if (order.modlLifeWorning !== undefined && order.modlLifeWorning !== null) {\n warn = Number(order.modlLifeWorning);\n _this3.lifeWarnInput = warn <= 1 ? (warn * 100).toFixed(0) : warn.toFixed(0);\n } else {\n _this3.lifeWarnInput = '';\n }\n } else {\n _this3.workOrderCurrentCjNum = null;\n }\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](2);\n __f__(\"warn\", '鑷姩甯﹀嚭宸ュ崟鍒�鍏峰け璐�', _context3.t0, \" at pages/moldRecord.vue:313\");\n _this3.workOrderCurrentCjNum = null;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[2, 9]]);\n }))();\n },\n fetchFormData: function fetchFormData() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var payload, res, list, getField, mapped;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n if (!(!_this4.workOrderNo || !_this4.machineNo)) {\n _context4.next = 3;\n break;\n }\n __f__(\"warn\", '宸ュ崟鍙锋垨鏈哄彴鍙蜂负绌猴紝璺宠繃鑾峰彇琛ㄥ崟鏁版嵁', \" at pages/moldRecord.vue:320\");\n return _context4.abrupt(\"return\");\n case 3:\n _this4.loadingForm = true;\n payload = {\n workOrderNo: _this4.workOrderNo.trim(),\n machineNo: _this4.machineNo.trim()\n };\n _context4.prev = 5;\n _context4.next = 8;\n return _this4.$post({\n url: '/MesCutterLedger/GetFormData',\n data: JSON.stringify(payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n case 8:\n res = _context4.sent;\n if (!(res.status !== 0)) {\n _context4.next = 13;\n break;\n }\n _this4.$showMessage(res.message || '鑾峰彇琛ㄥ崟鏁版嵁澶辫触');\n _this4.toolRecords = [];\n return _context4.abrupt(\"return\");\n case 13:\n list = Array.isArray(res.data) ? res.data : res.data && res.data.tbBillList ? res.data.tbBillList : res.data && res.data.data ? res.data.data : []; // 鏁版嵁澶勭悊閫昏緫淇濇寔涓嶅彉...\n getField = function getField(obj) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var k = _keys[_i];\n if ((obj === null || obj === void 0 ? void 0 : obj[k]) !== undefined && (obj === null || obj === void 0 ? void 0 : obj[k]) !== null) return obj[k];\n }\n return null;\n };\n mapped = (list || []).map(function (t) {\n var _getField, _getField2;\n var upTimeRaw = getField(t, 'uP_TIME', 'UP_TIME', 'uPTime', 'UPTIME', 'UpTime');\n var downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');\n var lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');\n var currentCjNum = getField(t, 'currentCjNum', 'CURRENTCJNUM', 'CurrentCjNum');\n var useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');\n var useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');\n var percent = '';\n if (useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n percent = (Number(useCount) / Number(useLimit) * 100).toFixed(0) + '%';\n }\n var parseNumber = function parseNumber(v) {\n if (v === null || v === undefined || v === '') return null;\n var s = String(v).replace(/[,锛�%]/g, '').trim();\n var n = parseFloat(s);\n return Number.isFinite(n) ? n : null;\n };\n var formatPercent = function formatPercent(n) {\n if (n === null || n === undefined || isNaN(n)) return '';\n if (n <= 1) return \"\".concat((n * 100).toFixed(0), \"%\");\n return \"\".concat(Number(n).toFixed(0), \"%\");\n };\n var lifeWarnNum = parseNumber(lifeWarnRaw);\n var warnStatus = getField(t, 'status', 'STATUS') || '';\n if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {\n var percentNum = Number(useCount) / Number(useLimit);\n warnStatus = percentNum >= lifeWarnNum ? '棰勮' : '姝e父';\n } else {\n warnStatus = warnStatus || '鏈煡';\n }\n return {\n id: getField(t, 'id', 'ID') || \"\".concat(getField(t, 'cutteR_ID') || getField(t, 'CUTTER_ID') || '', \"-\").concat(upTimeRaw || ''),\n no: getField(t, 'cutteR_ID', 'CUTTER_ID', 'cutterId', 'no') || '',\n name: getField(t, 'cutteR_NAME', 'CUTTER_NAME', 'cutterName', 'name') || '',\n upTime: _this4.formatDateTime(upTimeRaw),\n upCount: (_getField = getField(t, 'uP_COUNT', 'UP_COUNT', 'upCount')) !== null && _getField !== void 0 ? _getField : '',\n downTime: _this4.formatDateTime(downTimeRaw),\n downCount: (_getField2 = getField(t, 'dowN_COUNT', 'DOWN_COUNT', 'downCount')) !== null && _getField2 !== void 0 ? _getField2 : '',\n useCount: useCount !== null && useCount !== void 0 ? useCount : '',\n useLimit: useLimit !== null && useLimit !== void 0 ? useLimit : '',\n lifePercent: percent,\n lifeWarn: formatPercent(lifeWarnNum),\n warnStatus: warnStatus,\n currentCjNum: currentCjNum\n };\n });\n mapped.sort(function (a, b) {\n var parse = function parse(s) {\n if (!s) return 0;\n var year = new Date().getFullYear();\n return new Date(\"\".concat(year, \"-\").concat(s.replace(/-/g, '-'), \":00\")).getTime();\n };\n return parse(b.upTime) - parse(a.upTime);\n });\n _this4.toolRecords = mapped;\n _context4.next = 25;\n break;\n case 20:\n _context4.prev = 20;\n _context4.t0 = _context4[\"catch\"](5);\n __f__(\"error\", '鑾峰彇琛ㄥ崟鏁版嵁閿欒:', _context4.t0, \" at pages/moldRecord.vue:413\");\n _this4.$showMessage('鑾峰彇鏁版嵁澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');\n _this4.toolRecords = [];\n case 25:\n _context4.prev = 25;\n _this4.loadingForm = false;\n return _context4.finish(25);\n case 28:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[5, 20, 25, 28]]);\n }))();\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (!dateTimeStr) return '';\n try {\n var s = String(dateTimeStr).trim();\n if (/^\\d{10}$/.test(s)) {\n var d = new Date(Number(s) * 1000);\n return \"\".concat(d.getMonth() + 1, \"-\").concat(d.getDate(), \" \").concat(d.getHours(), \":\").concat(String(d.getMinutes()).padStart(2, '0'));\n }\n if (/^\\d{13}$/.test(s)) {\n var _d = new Date(Number(s));\n return \"\".concat(_d.getMonth() + 1, \"-\").concat(_d.getDate(), \" \").concat(_d.getHours(), \":\").concat(String(_d.getMinutes()).padStart(2, '0'));\n }\n var date = new Date(dateTimeStr);\n if (!isNaN(date.getTime())) {\n return \"\".concat(date.getMonth() + 1, \"-\").concat(date.getDate(), \" \").concat(date.getHours(), \":\").concat(String(date.getMinutes()).padStart(2, '0'));\n }\n var match = String(dateTimeStr).match(/(\\d{1,4}[-\\/]\\d{1,2}[-\\/]\\d{1,2}).*?(\\d{1,2}:\\d{2})/);\n if (match) return \"\".concat(match[1].replace(/-/g, '/').replace(/^\\d{4}\\//, function (m) {\n return m;\n }), \" \").concat(match[2]);\n return String(dateTimeStr);\n } catch (_unused2) {\n return String(dateTimeStr);\n }\n }\n },\n mounted: function mounted() {\n var _this5 = this;\n this.machineNo = uni.getStorageSync('machineNo') || '';\n this.workOrderNo = uni.getStorageSync('daa001') || '';\n if (this.machineNo && this.workOrderNo) {\n this.fetchFormData().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return _this5.fetchDefaultToolFromWorkOrder();\n case 2:\n _context5.next = 4;\n return _this5.fetchInspectionRecords();\n case 4:\n if (_this5.toolRecords.length > 0) {\n _this5.$set(_this5.toolRecords[0], 'currentCjNum', _this5.workOrderCurrentCjNum);\n }\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n })));\n } else {\n __f__(\"warn\", '鏈哄彴鍙锋垨宸ュ崟鍙蜂负绌猴紝鏃犳硶鑾峰彇鏁版嵁', \" at pages/moldRecord.vue:458\");\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbW9sZFJlY29yZC52dWUiXSwibmFtZXMiOlsiZGF0YSIsIm1hY2hpbmVObyIsIndvcmtPcmRlck5vIiwic2VsZWN0ZWRUb29sTm8iLCJ0b29sTmFtZSIsInVzZUxpbWl0SW5wdXQiLCJsaWZlV2FybklucHV0IiwidG9vbFJlY29yZHMiLCJpbnNwZWN0aW9uUmVjb3JkcyIsImxvYWRpbmdGb3JtIiwibG9hZGluZ0luc3BlY3Rpb24iLCJzdWJtaXR0aW5nIiwid29ya09yZGVyQ3VycmVudENqTnVtIiwidG9vbEV4cGFuZGVkIiwiaW5zcGVjdGlvbkV4cGFuZGVkIiwiZGVmYXVsdFZpc2libGVSb3dzIiwiY29tcHV0ZWQiLCJkZWZhdWx0VG9vbFJvd3MiLCJ2aXNpYmxlVG9vbFJlY29yZHMiLCJoYXNNb3JlVG9vbFJlY29yZHMiLCJyZW1haW5pbmdUb29sUmVjb3JkcyIsImRlZmF1bHRJbnNwZWN0aW9uUm93cyIsInZpc2libGVJbnNwZWN0aW9uUmVjb3JkcyIsImhhc01vcmVJbnNwZWN0aW9uUmVjb3JkcyIsInJlbWFpbmluZ0luc3BlY3Rpb25SZWNvcmRzIiwibWV0aG9kcyIsInRvZ2dsZUV4cGFuZCIsImhhbmRsZVJlZnJlc2giLCJQcm9taXNlIiwiZmV0Y2hJbnNwZWN0aW9uUmVjb3JkcyIsInVybCIsImF1Zm5yIiwiZnR5cGUiLCJoZWFkZXJzIiwicmVzIiwibGlzdCIsImZvcm1hdERhdGUiLCJmZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlciIsIm9yZGVyIiwid2FybiIsImZldGNoRm9ybURhdGEiLCJwYXlsb2FkIiwiZ2V0RmllbGQiLCJrZXlzIiwibWFwcGVkIiwicGVyY2VudCIsIndhcm5TdGF0dXMiLCJpZCIsIm5vIiwibmFtZSIsInVwVGltZSIsInVwQ291bnQiLCJkb3duVGltZSIsImRvd25Db3VudCIsInVzZUNvdW50IiwidXNlTGltaXQiLCJsaWZlUGVyY2VudCIsImxpZmVXYXJuIiwiY3VycmVudENqTnVt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OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICAgIDx2aWV3IGNsYXNzPVwicGFnZVwiPlxyXG4gICAgICAgIDwhLS0g5pON5L2c5oyJ6ZKuIC0tPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwiYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZS1idG5cIiBAY2xpY2s9XCJoYW5kbGVSZWZyZXNoXCIgOmRpc2FibGVkPVwibG9hZGluZ0Zvcm0gfHwgc3VibWl0dGluZyB8fCBsb2FkaW5nSW5zcGVjdGlvblwiPuWIt+aWsDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgPCEtLSDliIDlhbfkvb/nlKjorrDlvZXooajmoLwgLS0+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1zZWN0aW9uXCIgOmNsYXNzPVwieydleHBhbmRlZCc6IHRvb2xFeHBhbmRlZH1cIj5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMz7kuIrkuIvliIDorrDlvZU8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cGFuZC1idG5cIiBAY2xpY2s9XCJ0b2dnbGVFeHBhbmQoJ3Rvb2wnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHRvb2xFeHBhbmRlZCA/ICfmlLbotbcnIDogJ+WxleW8gCcgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInN0eWxlZC10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6NyVcIj7liIDlhbfnvJblj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMiVcIj7liIDlhbflkI3np7A8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDoxMCVcIj7kuIrliIDml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5LiK5YiA6K6h5pWwPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5LiL5YiA5pe26Ze0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuS4i+WIgOiuoeaVsDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm51bVwiIHN0eWxlPVwid2lkdGg6NyVcIj7kvb/nlKjmrKHmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5L2/55So5LiK6ZmQPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibnVtXCIgc3R5bGU9XCJ3aWR0aDo3JVwiPuWvv+WRveavlCU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJudW1cIiBzdHlsZT1cIndpZHRoOjclXCI+5a+/5ZG95q+U6aKE6K2m5YC8PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6NyVcIj7pooTorabnirbmgIE8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDo3JVwiPuWIgOWFt+WcqOacuueKtuaAgTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtZm9yPVwiKGl0ZW0sIGlkeCkgaW4gdmlzaWJsZVRvb2xSZWNvcmRzXCIgOmtleT1cIml0ZW0uaWRcIiA6Y2xhc3M9XCJ7J3Jvdy1vZGQnOiBpZHggJSAyID09PSAwfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5ubyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnRcIj57eyBpdGVtLm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS51cFRpbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLnVwQ291bnQgIT0gbnVsbCA/IGl0ZW0udXBDb3VudCA6ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZG93blRpbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaWR4ID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCIhaXRlbS5kb3duVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmN1cnJlbnRDak51bSAhPSBudWxsID8gaXRlbS5jdXJyZW50Q2pOdW0gOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kb3duQ291bnQgIT0gbnVsbCA/IGl0ZW0uZG93bkNvdW50IDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kb3duQ291bnQgIT0gbnVsbCA/IGl0ZW0uZG93bkNvdW50IDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiFpdGVtLmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCAmJiBpdGVtLnVwQ291bnQgIT0gbnVsbCA/IChOdW1iZXIoaXRlbS5jdXJyZW50Q2pOdW0pIC0gTnVtYmVyKGl0ZW0udXBDb3VudCkpIDogKGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJykgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udXNlQ291bnQgIT0gbnVsbCA/IGl0ZW0udXNlQ291bnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnVzZUNvdW50ICE9IG51bGwgPyBpdGVtLnVzZUNvdW50IDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPnt7IGl0ZW0udXNlTGltaXQgIT0gbnVsbCA/IGl0ZW0udXNlTGltaXQgOiAnJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm51bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpZHggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiFpdGVtLmRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5jdXJyZW50Q2pOdW0gIT0gbnVsbCAmJiBpdGVtLnVwQ291bnQgIT0gbnVsbCAmJiBpdGVtLnVzZUxpbWl0ICE9IG51bGwgJiYgTnVtYmVyKGl0ZW0udXNlTGltaXQpID4gMCA/IE1hdGgucm91bmQoKE51bWJlcihpdGVtLmN1cnJlbnRDak51bSkgLSBOdW1iZXIoaXRlbS51cENvdW50KSkgLyBOdW1iZXIoaXRlbS51c2VMaW1pdCkgKiAxMDApICsgJyUnIDogKGl0ZW0ubGlmZVBlcmNlbnQgIT0gbnVsbCA/IGl0ZW0ubGlmZVBlcmNlbnQgOiAnJykgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGlmZVBlcmNlbnQgIT0gbnVsbCA/IGl0ZW0ubGlmZVBlcmNlbnQgOiAnJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxpZmVQZXJjZW50IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJudW1cIj57eyBpdGVtLmxpZmVXYXJuIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIDpjbGFzcz1cIml0ZW0ud2FyblN0YXR1cyA9PT0gJ+mihOitpicgPyAnd2Fybi1jZWxsJyA6IChpdGVtLndhcm5TdGF0dXMgPT09ICfmraPluLgnID8gJ29rLWNlbGwnIDogJycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiaXRlbS53YXJuU3RhdHVzID09PSAn6aKE6K2mJ1wiIGNsYXNzPVwid2Fybi1iYWRnZVwiPuitpuWRijwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtZWxzZT57eyBpdGVtLndhcm5TdGF0dXMgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZG93blRpbWUgPyAn5LiL5py6JyA6ICflnKjmnLonIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgdi1pZj1cIiF0b29sUmVjb3Jkcy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMlwiPuaaguaXoOaVsOaNrjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgdi1pZj1cImhhc01vcmVUb29sUmVjb3JkcyAmJiAhdG9vbEV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTJcIiBjbGFzcz1cIm1vcmUtcmVjb3Jkcy10aXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPui/mOaciSB7eyByZW1haW5pbmdUb29sUmVjb3JkcyB9fSDmnaHorrDlvZXvvIzngrnlh7s8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5saW5lLWV4cGFuZC1idG5cIiBAY2xpY2s9XCJ0b2dnbGVFeHBhbmQoJ3Rvb2wnKVwiPuWxleW8gDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+5oyJ6ZKu5p+l55yL5YWo6YOoPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgPCEtLSDlt6XljZXpppbmo4DorrDlvZXooajmoLwgLS0+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1zZWN0aW9uXCIgOmNsYXNzPVwieydleHBhbmRlZCc6IGluc3BlY3Rpb25FeHBhbmRlZH1cIj5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMz7lt6XljZXpppbmo4DorrDlvZU8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cGFuZC1idG5cIiBAY2xpY2s9XCJ0b2dnbGVFeHBhbmQoJ2luc3BlY3Rpb24nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGluc3BlY3Rpb25FeHBhbmRlZCA/ICfmlLbotbcnIDogJ+WxleW8gCcgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInN0eWxlZC10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5qOA6aqM5Y2V5Y+3PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5qOA6aqM5Lq65ZGYPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5qOA6aqM5pel5pyfPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5py65Y+w57yW5Y+3PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5o+Q5Lqk5qCH6K+GPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5qOA6aqM57uT5p6cPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5L2c5bqf5qCH6K+GPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6MTAlXCI+5aSH5rOoPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgdi1mb3I9XCIoaXRlbSwgaWR4KSBpbiB2aXNpYmxlSW5zcGVjdGlvblJlY29yZHNcIiA6a2V5PVwiaXRlbS5pZCB8fCBpZHhcIiA6Y2xhc3M9XCJ7J3Jvdy1vZGQnOiBpZHggJSAyID09PSAwfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOS/ruaUueS4uuWwj+mpvOWzsOagvOW8jyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0ucmVsZWFzZU5vIHx8ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZmNoZWNrQnkgfHwgJycgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgZm9ybWF0RGF0ZShpdGVtLmZjaGVja0RhdGUpIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0ubGluZU5vIHx8ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGl0ZW0uZnN1Ym1pdCA9PSAxID8gJ+W3suaPkOS6pCcgOiAn5pyq5o+Q5LqkJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBpdGVtLmZjYW5jZWwgPT0gJ1knID8gJ+S9nOW6nycgOiAn5pyq5L2c5bqfJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBpdGVtLmZzZWNvbmRSZXN1IHx8ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPnt7IGl0ZW0ucmVtZWtlIHx8ICcnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwiIWluc3BlY3Rpb25SZWNvcmRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEwXCI+5pqC5peg6aaW5qOA6K6w5b2VPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwiaGFzTW9yZUluc3BlY3Rpb25SZWNvcmRzICYmICFpbnNwZWN0aW9uRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMFwiIGNsYXNzPVwibW9yZS1yZWNvcmRzLXRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+6L+Y5pyJIHt7IHJlbWFpbmluZ0luc3BlY3Rpb25SZWNvcmRzIH19IOadoeiusOW9le+8jOeCueWHuzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpbmxpbmUtZXhwYW5kLWJ0blwiIEBjbGljaz1cInRvZ2dsZUV4cGFuZCgnaW5zcGVjdGlvbicpXCI+5bGV5byAPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7mjInpkq7mn6XnnIvlhajpg6g8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPC92aWV3PlxyXG4gICAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuICAgIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgICAgICBkYXRhKCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbWFjaGluZU5vOiAnJyxcclxuICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiAnJyxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVG9vbE5vOiAnJyxcclxuICAgICAgICAgICAgICAgIHRvb2xOYW1lOiAnJyxcclxuICAgICAgICAgICAgICAgIHVzZUxpbWl0SW5wdXQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgbGlmZVdhcm5JbnB1dDogJycsXHJcbiAgICAgICAgICAgICAgICB0b29sUmVjb3JkczogW10sXHJcbiAgICAgICAgICAgICAgICBpbnNwZWN0aW9uUmVjb3JkczogW10sIC8vIOmmluajgOiusOW9lVxyXG4gICAgICAgICAgICAgICAgbG9hZGluZ0Zvcm06IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZ0luc3BlY3Rpb246IGZhbHNlLCAvLyDpppbmo4DorrDlvZXliqDovb3nirbmgIFcclxuICAgICAgICAgICAgICAgIHN1Ym1pdHRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgd29ya09yZGVyQ3VycmVudENqTnVtOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgdG9vbEV4cGFuZGVkOiBmYWxzZSwgLy8g5YiA5YW36KGo5qC85bGV5byA54q25oCBXHJcbiAgICAgICAgICAgICAgICBpbnNwZWN0aW9uRXhwYW5kZWQ6IGZhbHNlLCAvLyDpppbmo4DooajmoLzlsZXlvIDnirbmgIFcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRWaXNpYmxlUm93czogMywgLy8g6buY6K6k5pi+56S655qE6KGM5pWwXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wdXRlZDoge1xyXG4gICAgICAgICAgICAvLyDliIDlhbfooajmoLznm7jlhbPorqHnrpdcclxuICAgICAgICAgICAgZGVmYXVsdFRvb2xSb3dzKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAzKSByZXR1cm4gdG90YWw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMywgTWF0aC5mbG9vcih0b3RhbCAvIDIpKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdmlzaWJsZVRvb2xSZWNvcmRzKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudG9vbEV4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbFJlY29yZHM7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2xSZWNvcmRzLnNsaWNlKDAsIHRoaXMuZGVmYXVsdFRvb2xSb3dzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaGFzTW9yZVRvb2xSZWNvcmRzKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbFJlY29yZHMubGVuZ3RoID4gdGhpcy5kZWZhdWx0VG9vbFJvd3M7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlbWFpbmluZ1Rvb2xSZWNvcmRzKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbFJlY29yZHMubGVuZ3RoIC0gdGhpcy5kZWZhdWx0VG9vbFJvd3M7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAvLyDpppbmo4DooajmoLznm7jlhbPorqHnrpdcclxuICAgICAgICAgICAgZGVmYXVsdEluc3BlY3Rpb25Sb3dzKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB0aGlzLmluc3BlY3Rpb25SZWNvcmRzLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAyKSByZXR1cm4gdG90YWw7IC8vIOmmluajgOihqOagvOm7mOiupOaYvuekujLooYxcclxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgyLCBNYXRoLmZsb29yKHRvdGFsIC8gMikpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB2aXNpYmxlSW5zcGVjdGlvblJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnNwZWN0aW9uRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnNwZWN0aW9uUmVjb3JkcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zcGVjdGlvblJlY29yZHMuc2xpY2UoMCwgdGhpcy5kZWZhdWx0SW5zcGVjdGlvblJvd3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBoYXNNb3JlSW5zcGVjdGlvblJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnNwZWN0aW9uUmVjb3Jkcy5sZW5ndGggPiB0aGlzLmRlZmF1bHRJbnNwZWN0aW9uUm93cztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVtYWluaW5nSW5zcGVjdGlvblJlY29yZHMoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnNwZWN0aW9uUmVjb3Jkcy5sZW5ndGggLSB0aGlzLmRlZmF1bHRJbnNwZWN0aW9uUm93cztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWV0aG9kczoge1xyXG4gICAgICAgICAgICAvLyDliIfmjaLooajmoLzlsZXlvIDnirbmgIFcclxuICAgICAgICAgICAgdG9nZ2xlRXhwYW5kKHRhYmxlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRhYmxlVHlwZSA9PT0gJ3Rvb2wnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sRXhwYW5kZWQgPSAhdGhpcy50b29sRXhwYW5kZWQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhYmxlVHlwZSA9PT0gJ2luc3BlY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNwZWN0aW9uRXhwYW5kZWQgPSAhdGhpcy5pbnNwZWN0aW9uRXhwYW5kZWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAvLyDliLfmlrDmjInpkq7lpITnkIbmlrnms5VcclxuICAgICAgICAgICAgYXN5bmMgaGFuZGxlUmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hY2hpbmVObyAmJiB0aGlzLndvcmtPcmRlck5vKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoRm9ybURhdGEoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlcigpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoSW5zcGVjdGlvblJlY29yZHMoKVxyXG4gICAgICAgICAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOWIt+aWsOWQjui1i+WAvOesrOS4gOihjCBjdXJyZW50Q2pOdW1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b29sUmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnRvb2xSZWNvcmRzWzBdLCAnY3VycmVudENqTnVtJywgdGhpcy53b3JrT3JkZXJDdXJyZW50Q2pOdW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfliLfmlrDlrozmiJAnKTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIC8vIOiOt+WPluW3peWNlemmluajgOiusOW9lVxyXG4gICAgICAgICAgICBhc3luYyBmZXRjaEluc3BlY3Rpb25SZWNvcmRzKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLndvcmtPcmRlck5vKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCflt6XljZXlj7fkuLrnqbrvvIzot7Pov4fojrflj5bpppbmo4DorrDlvZUnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdJbnNwZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9NZXNDdXR0ZXJMZWRnZXIvR2V0SW5zcGVjdGlvblJlY29yZHMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWZucjogdGhpcy53b3JrT3JkZXJObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ0eXBlOiAn6aaW5qOAJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5qC55o2u5a6e6ZmF5o6l5Y+j6L+U5Zue57uT5p6E6LCD5pW0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBBcnJheS5pc0FycmF5KHJlcy5kYXRhKSA/IHJlcy5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS50YkJpbGxMaXN0KSA/IHJlcy5kYXRhLnRiQmlsbExpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS5kYXRhKSA/IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNwZWN0aW9uUmVjb3JkcyA9IGxpc3QgfHwgW107XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UocmVzLm1lc3NhZ2UgfHwgJ+iOt+WPlummluajgOiusOW9leWksei0pScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3BlY3Rpb25SZWNvcmRzID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5bpppbmo4DorrDlvZXplJnor686JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfojrflj5bpppbmo4DorrDlvZXlpLHotKXvvIzor7fmo4Dmn6XnvZHnu5zov57mjqUnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3BlY3Rpb25SZWNvcmRzID0gW107XHJcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0luc3BlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIC8vIOagvOW8j+WMluaXpeacn1xyXG4gICAgICAgICAgICBmb3JtYXREYXRlKGRhdGVTdHIpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZGF0ZVN0cikgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkgcmV0dXJuIFN0cmluZyhkYXRlU3RyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZGF0ZS5nZXRNb250aCgpICsgMX0tJHtkYXRlLmdldERhdGUoKX0gJHtkYXRlLmdldEhvdXJzKCl9OiR7U3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGVTdHIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgLy8g5YW25LuW5bey5pyJ5pa55rOV5L+d5oyB5LiN5Y+YLi4uXHJcbiAgICAgICAgICAgIGFzeW5jIGZldGNoRGVmYXVsdFRvb2xGcm9tV29ya09yZGVyKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hY2hpbmVObykgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSAwICYmIEFycmF5LmlzQXJyYXkocmVzLmRhdGE/LnRiQmlsbExpc3QpICYmIHJlcy5kYXRhLnRiQmlsbExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmRlciA9IHJlcy5kYXRhLnRiQmlsbExpc3RbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sTm8gPSBvcmRlci5jdXR0ZXJJZCB8fCBvcmRlci5jdXR0ZVJfSUQgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbE5hbWUgPSBvcmRlci5jdXR0ZXJOYW1lIHx8IG9yZGVyLmN1dHRlUl9OQU1FIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSA9IG9yZGVyLkN1cnJlbnRDak51bSA/PyBvcmRlci5jdXJyZW50Q2pOdW0gPz8gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yZGVyLm1vZGxMaWZlV29ybmluZyAhPT0gdW5kZWZpbmVkICYmIG9yZGVyLm1vZGxMaWZlV29ybmluZyAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybiA9IE51bWJlcihvcmRlci5tb2RsTGlmZVdvcm5pbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlV2FybklucHV0ID0gd2FybiA8PSAxID8gKHdhcm4gKiAxMDApLnRvRml4ZWQoMCkgOiB3YXJuLnRvRml4ZWQoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpZmVXYXJuSW5wdXQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ya09yZGVyQ3VycmVudENqTnVtID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCfoh6rliqjluKblh7rlt6XljZXliIDlhbflpLHotKUnLCBlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICBhc3luYyBmZXRjaEZvcm1EYXRhKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLndvcmtPcmRlck5vIHx8ICF0aGlzLm1hY2hpbmVObykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybign5bel5Y2V5Y+35oiW5py65Y+w5Y+35Li656m677yM6Lez6L+H6I635Y+W6KGo5Y2V5pWw5o2uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRm9ybSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdvcmtPcmRlck5vOiB0aGlzLndvcmtPcmRlck5vLnRyaW0oKSxcclxuICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLnRyaW0oKVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9NZXNDdXR0ZXJMZWRnZXIvR2V0Rm9ybURhdGEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSB8fCAn6I635Y+W6KGo5Y2V5pWw5o2u5aSx6LSlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbFJlY29yZHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gQXJyYXkuaXNBcnJheShyZXMuZGF0YSkgPyByZXMuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChyZXMuZGF0YSAmJiByZXMuZGF0YS50YkJpbGxMaXN0KSA/IHJlcy5kYXRhLnRiQmlsbExpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlcy5kYXRhICYmIHJlcy5kYXRhLmRhdGEpID8gcmVzLmRhdGEuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW107XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOaVsOaNruWkhOeQhumAu+i+keS/neaMgeS4jeWPmC4uLlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdldEZpZWxkID0gKG9iaiwgLi4ua2V5cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cykgaWYgKG9iaj8uW2tdICE9PSB1bmRlZmluZWQgJiYgb2JqPy5ba10gIT09IG51bGwpIHJldHVybiBvYmpba107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IChsaXN0IHx8IFtdKS5tYXAodCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwVGltZVJhdyA9IGdldEZpZWxkKHQsICd1UF9USU1FJywgJ1VQX1RJTUUnLCAndVBUaW1lJywgJ1VQVElNRScsICdVcFRpbWUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG93blRpbWVSYXcgPSBnZXRGaWVsZCh0LCAnZG93Tl9USU1FJywgJ0RPV05fVElNRScsICdkb3duVGltZScsICdET1dOVElNRScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWZlV2FyblJhdyA9IGdldEZpZWxkKHQsICdsaWZFX1dBUk4nLCAnTElGRV9XQVJOJywgJ2xpZmVXYXJuJywgJ0xJRkVXQVJOJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDak51bSA9IGdldEZpZWxkKHQsICdjdXJyZW50Q2pOdW0nLCAnQ1VSUkVOVENKTlVNJywgJ0N1cnJlbnRDak51bScpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlQ291bnQgPSBnZXRGaWVsZCh0LCAndXNFX0NPVU5UJywgJ1VTRV9DT1VOVCcsICd1c2VDb3VudCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VMaW1pdCA9IGdldEZpZWxkKHQsICd1c0VfTElNSVQnLCAnVVNFX0xJTUlUJywgJ3VzZUxpbWl0Jyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGVyY2VudCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlQ291bnQgIT0gbnVsbCAmJiB1c2VMaW1pdCAhPSBudWxsICYmICFpc05hTih1c2VDb3VudCkgJiYgIWlzTmFOKHVzZUxpbWl0KSAmJiBOdW1iZXIodXNlTGltaXQpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudCA9ICgoTnVtYmVyKHVzZUNvdW50KSAvIE51bWJlcih1c2VMaW1pdCkpICogMTAwKS50b0ZpeGVkKDApICsgJyUnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZU51bWJlciA9IHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09ICcnKSByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcodikucmVwbGFjZSgvWyzvvIUlXS9nLCAnJykudHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IHBhcnNlRmxvYXQocyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pID8gbiA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdFBlcmNlbnQgPSBuID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09PSBudWxsIHx8IG4gPT09IHVuZGVmaW5lZCB8fCBpc05hTihuKSkgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPD0gMSkgcmV0dXJuIGAkeyhuICogMTAwKS50b0ZpeGVkKDApfSVgO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke051bWJlcihuKS50b0ZpeGVkKDApfSVgO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWZlV2Fybk51bSA9IHBhcnNlTnVtYmVyKGxpZmVXYXJuUmF3KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3YXJuU3RhdHVzID0gZ2V0RmllbGQodCwgJ3N0YXR1cycsICdTVEFUVVMnKSB8fCAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpZmVXYXJuTnVtICE9PSBudWxsICYmIHVzZUNvdW50ICE9IG51bGwgJiYgdXNlTGltaXQgIT0gbnVsbCAmJiAhaXNOYU4odXNlQ291bnQpICYmICFpc05hTih1c2VMaW1pdCkgJiYgTnVtYmVyKHVzZUxpbWl0KSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlcmNlbnROdW0gPSBOdW1iZXIodXNlQ291bnQpIC8gTnVtYmVyKHVzZUxpbWl0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5TdGF0dXMgPSAocGVyY2VudE51bSA+PSBsaWZlV2Fybk51bSkgPyAn6aKE6K2mJyA6ICfmraPluLgnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FyblN0YXR1cyA9IHdhcm5TdGF0dXMgfHwgJ+acquefpSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogZ2V0RmllbGQodCwgJ2lkJywgJ0lEJykgfHwgYCR7Z2V0RmllbGQodCwgJ2N1dHRlUl9JRCcpIHx8IGdldEZpZWxkKHQsICdDVVRURVJfSUQnKSB8fCAnJ30tJHt1cFRpbWVSYXcgfHwgJyd9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vOiBnZXRGaWVsZCh0LCAnY3V0dGVSX0lEJywgJ0NVVFRFUl9JRCcsICdjdXR0ZXJJZCcsICdubycpIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZ2V0RmllbGQodCwgJ2N1dHRlUl9OQU1FJywgJ0NVVFRFUl9OQU1FJywgJ2N1dHRlck5hbWUnLCAnbmFtZScpIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBUaW1lOiB0aGlzLmZvcm1hdERhdGVUaW1lKHVwVGltZVJhdyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cENvdW50OiBnZXRGaWVsZCh0LCAndVBfQ09VTlQnLCAnVVBfQ09VTlQnLCAndXBDb3VudCcpID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93blRpbWU6IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZG93blRpbWVSYXcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bkNvdW50OiBnZXRGaWVsZCh0LCAnZG93Tl9DT1VOVCcsICdET1dOX0NPVU5UJywgJ2Rvd25Db3VudCcpID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlQ291bnQ6IHVzZUNvdW50ID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlTGltaXQ6IHVzZUxpbWl0ID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlmZVBlcmNlbnQ6IHBlcmNlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlV2FybjogZm9ybWF0UGVyY2VudChsaWZlV2Fybk51bSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuU3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENqTnVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG1hcHBlZC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlID0gcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXMpIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShgJHt5ZWFyfS0ke3MucmVwbGFjZSgvLS9nLCAnLScpfTowMGApLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlKGIudXBUaW1lKSAtIHBhcnNlKGEudXBUaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sUmVjb3JkcyA9IG1hcHBlZDtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6I635Y+W6KGo5Y2V5pWw5o2u6ZSZ6K+vOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn6I635Y+W5pWw5o2u5aSx6LSl77yM6K+35qOA5p+l572R57uc6L+e5o6lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sUmVjb3JkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICBmb3JtYXREYXRlVGltZShkYXRlVGltZVN0cikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFkYXRlVGltZVN0cikgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gU3RyaW5nKGRhdGVUaW1lU3RyKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9eXFxkezEwfSQvLnRlc3QocykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKE51bWJlcihzKSAqIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZC5nZXRNb250aCgpICsgMX0tJHtkLmdldERhdGUoKX0gJHtkLmdldEhvdXJzKCl9OiR7U3RyaW5nKGQuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXlxcZHsxM30kLy50ZXN0KHMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShOdW1iZXIocykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZC5nZXRNb250aCgpICsgMX0tJHtkLmdldERhdGUoKX0gJHtkLmdldEhvdXJzKCl9OiR7U3RyaW5nKGQuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShkYXRlVGltZVN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2RhdGUuZ2V0TW9udGgoKSArIDF9LSR7ZGF0ZS5nZXREYXRlKCl9ICR7ZGF0ZS5nZXRIb3VycygpfToke1N0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKX1gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IFN0cmluZyhkYXRlVGltZVN0cikubWF0Y2goLyhcXGR7MSw0fVstXFwvXVxcZHsxLDJ9Wy1cXC9dXFxkezEsMn0pLio/KFxcZHsxLDJ9OlxcZHsyfSkvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHJldHVybiBgJHttYXRjaFsxXS5yZXBsYWNlKC8tL2csICcvJykucmVwbGFjZSgvXlxcZHs0fVxcLy8sIChtKSA9PiBtKX0gJHttYXRjaFsyXX1gO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZGF0ZVRpbWVTdHIpO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRlVGltZVN0cik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1vdW50ZWQoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKSB8fCAnJztcclxuICAgICAgICAgICAgdGhpcy53b3JrT3JkZXJObyA9IHVuaS5nZXRTdG9yYWdlU3luYygnZGFhMDAxJykgfHwgJyc7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYWNoaW5lTm8gJiYgdGhpcy53b3JrT3JkZXJObykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaEZvcm1EYXRhKCkudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaERlZmF1bHRUb29sRnJvbVdvcmtPcmRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hJbnNwZWN0aW9uUmVjb3JkcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvb2xSZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMudG9vbFJlY29yZHNbMF0sICdjdXJyZW50Q2pOdW0nLCB0aGlzLndvcmtPcmRlckN1cnJlbnRDak51bSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+acuuWPsOWPt+aIluW3peWNleWPt+S4uuepuu+8jOaXoOazleiOt+WPluaVsOaNricpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPlxyXG4gICAgLnBhZ2Uge1xyXG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OyAvKiDlh4/lsJHkuIrkuIvlhoXovrnot50gKi9cclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiA4cHg7IC8qIOWHj+WwkeS4pOS4quihqOagvOS5i+mXtOeahOmXtOi3nSAqL1xyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24tcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMC41dmggMDsgLyog5YeP5bCR5LiK5LiL6L656LedICovXHJcbiAgICB9XHJcblxyXG4gICAgLnNhdmUtYnRuIHtcclxuICAgICAgICB3aWR0aDogMjAlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuNXZoO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5zYXZlLWJ0bjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MGE5ZmY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2F2ZS1idG46YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA5NmRkOTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zYXZlLWJ0bjpkaXNhYmxlZCB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcclxuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLyog6KGo5qC85a655Zmo5qC35byPICovXHJcbiAgICAudGFibGUtc2VjdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBvdmVyZmxvdzogYXV0bzsgLyog57uf5LiA5rua5Yqo5p2hICovXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAyMjBweDsgLyog6buY6K6k6auY5bqmICovXHJcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLWhlYWRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U4ZThlODtcclxuICAgIH1cclxuXHJcbiAgICAgICAgLnRhYmxlLWhlYWRlciBoMyB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogIzMzMztcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLmV4cGFuZC1idG4ge1xyXG4gICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1MmM0MWE7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuICAgIH1cclxuXHJcbiAgICAgICAgLmV4cGFuZC1idG46aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzNkMTNkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmV4cGFuZC1idG46YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM4OWUwZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLyog6KGo5qC85qC35byPICovXHJcbiAgICB0YWJsZS5zdHlsZWQtdGFibGUge1xyXG4gICAgICAgIG1heC13aWR0aDogMTgwMHB4O1xyXG4gICAgICAgIHdpZHRoOiA5OHZ3O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xyXG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNiZmJmYmY7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwwLDAsMC4wNik7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIHRhYmxlLnN0eWxlZC10YWJsZSB0aGVhZCB0aCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYmZiZmJmO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDEwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTsgLyog6KGo5aS0572u6aG2ICovXHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUgdGJvZHkgdGQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U4ZThlODtcclxuICAgICAgICAgICAgcGFkZGluZzogMTRweCAxMHB4O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLyog5bGV5byA54q25oCBIC0g5Y+q5pS55Y+Y5a655Zmo6auY5bqmICovXHJcbiAgICAudGFibGUtc2VjdGlvbi5leHBhbmRlZCB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogNDUwcHg7IC8qIOWxleW8gOaXtueahOWuueWZqOmrmOW6piAqL1xyXG4gICAgfVxyXG5cclxuICAgICAgICB0YWJsZS5zdHlsZWQtdGFibGUgdGJvZHkgLmxlZnQge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnJvdy1vZGQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5yb3ctb2RkICsgdHIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAubnVtIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC53YXJuLWNlbGwge1xyXG4gICAgICAgIGNvbG9yOiAjZDkzMDI1O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC5vay1jZWxsIHtcclxuICAgICAgICBjb2xvcjogIzMzMztcclxuICAgIH1cclxuXHJcbiAgICAud2Fybi1iYWRnZSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjRkNGY7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgcGFkZGluZzogMnB4IDZweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm1vcmUtcmVjb3Jkcy10aXAge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogIzY2NjtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5tb3JlLXJlY29yZHMtdGlwIHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgY29sb3I6ICM2NjY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC8qIOihjOWGheWxleW8gOaMiemSruagt+W8jyAtIOiTneiJsiAqL1xyXG4gICAgLmlubGluZS1leHBhbmQtYnRuIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMnB4IDEycHg7IC8qIOWHj+Wwj+WGhei+uei3nSzkuI7mloflrZfpq5jluqbkuIDoh7QgKi9cclxuICAgICAgICBtYXJnaW46IDAgNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEEyRTk7IC8qIOiTneiJsiAqL1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDsgLyog5LiO5o+Q56S65paH5a2X5aSn5bCP5LiA6Ie0ICovXHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMTYyLCAyMzMsIDAuMik7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiDkuI7mloflrZfln7rnur/lr7npvZAgKi9cclxuICAgICAgICBsaW5lLWhlaWdodDogMS4yOyAvKiDmjqfliLbooYzpq5ggKi9cclxuICAgIH1cclxuXHJcbiAgICAgICAgLmlubGluZS1leHBhbmQtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQwYTlmZjsgLyog5oKs5YGc5pe25Y+Y5rehICovXHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDE2MiwgMjMzLCAwLjMpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5saW5lLWV4cGFuZC1idG46YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA5NmRkOTsgLyog54K55Ye75pe25Y+Y5rexICovXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgLyog5ZON5bqU5byP6LCD5pW0ICovXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAgICAgLnNhdmUtYnRuIHtcclxuICAgICAgICAgICAgd2lkdGg6IDMwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50YWJsZS1oZWFkZXIge1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IDhweDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZXhwYW5kLWJ0biB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///119\n");
/***/ }),
/* 120 */
@@ -10452,7 +10448,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 123));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 127));\n//寮曞叆vuex鎻掍欢 杩涜鐘舵�佺鐞哱n_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n state: {\n id: 'id',\n serverInfo: {\n //鏈嶅姟淇℃伅\n networkFlag: '鍐呯綉',\n serverURLInt: 'http://192.168.11.251:10054',\n //鏈嶅姟鍣ㄤ綋妫� 10.0.1.104:10054\n serverURL: 'http://localhost:5106',\n //鏈湴璋冭瘯鍦板潃\n //serverAPI:'http://78566b00.r1.cpolar.top/api',//澶栫綉鍦板潃\n //serverAPI:'http://192.168.0.94:8008/api', //鍐呯綉鍦板潃\n serverAPI: 'http://localhost:5106/api' //鏈湴璋冭瘯鍦板潃\n }\n },\n\n mutations: {\n test: function test(state, id) {\n state.id = id;\n }\n },\n getters: {\n currentColor: function currentColor(state) {\n return state.colorList[state.colorIndex];\n }\n },\n actions: {\n // lazy loading openid\n }\n});\nvar _default = store;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvaW5kZXguanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJzdGF0ZSIsImlkIiwic2VydmVySW5mbyIsIm5ldHdvcmtGbGFnIiwic2VydmVyVVJMSW50Iiwic2VydmVyVVJMIiwic2VydmVyQVBJIiwibXV0YXRpb25zIiwidGVzdCIsImdldHRlcnMiLCJjdXJyZW50Q29sb3IiLCJjb2xvckxpc3QiLCJjb2xvckluZGV4IiwiYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFFQTtBQUNBQSxZQUFHLENBQUNDLEdBQUcsQ0FBQ0MsYUFBSSxDQUFDO0FBQ2IsSUFBTUMsS0FBSyxHQUFHLElBQUlELGFBQUksQ0FBQ0UsS0FBSyxDQUFDO0VBQzVCQyxLQUFLLEVBQUU7SUFDTkMsRUFBRSxFQUFFLElBQUk7SUFDUkMsVUFBVSxFQUFDO01BQUM7TUFDWEMsV0FBVyxFQUFDLElBQUk7TUFDaEJDLFlBQVksRUFBQyw2QkFBNkI7TUFBQztNQUMzQ0MsU0FBUyxFQUFDLHVCQUF1QjtNQUFDO01BQ2xDO01BQ0E7TUFDQUMsU0FBUyxFQUFDLDJCQUEyQixDQUFDO0lBQ3ZDO0VBQ0QsQ0FBQzs7RUFDREMsU0FBUyxFQUFFO0lBQ1ZDLElBQUksZ0JBQUNSLEtBQUssRUFBQ0MsRUFBRSxFQUFDO01BQ2JELEtBQUssQ0FBQ0MsRUFBRSxHQUFHQSxFQUFFO0lBQ2Q7RUFDRCxDQUFDO0VBQ0VRLE9BQU8sRUFBQztJQUNKQyxZQUFZLHdCQUFDVixLQUFLLEVBQUM7TUFDZixPQUFPQSxLQUFLLENBQUNXLFNBQVMsQ0FBQ1gsS0FBSyxDQUFDWSxVQUFVLENBQUM7SUFDNUM7RUFDSixDQUFDO0VBQ0pDLE9BQU8sRUFBRTtJQUNSO0VBQUE7QUFFRixDQUFDLENBQUM7QUFBQSxlQUVhZixLQUFLO0FBQUEiLCJmaWxlIjoiMTI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCBWdWV4IGZyb20gJ3Z1ZXgnXHJcblxyXG4vL+W8leWFpXZ1ZXjmj5Lku7Yg6L+b6KGM54q25oCB566h55CGXHJcblZ1ZS51c2UoVnVleCkgXHJcbmNvbnN0IHN0b3JlID0gbmV3IFZ1ZXguU3RvcmUoe1xyXG5cdHN0YXRlOiB7IFxyXG5cdFx0aWQ6ICdpZCcsXHJcblx0XHRzZXJ2ZXJJbmZvOnsvL+acjeWKoeS/oeaBr1xyXG5cdFx0XHRuZXR3b3JrRmxhZzon5YaF572RJywgXHJcblx0XHRcdHNlcnZlclVSTEludDonaHR0cDovLzE5Mi4xNjguMTEuMjUxOjEwMDU0JywvL+acjeWKoeWZqOS9k+ajgCAxMC4wLjEuMTA0OjEwMDU0XHJcblx0XHRcdHNlcnZlclVSTDonaHR0cDovL2xvY2FsaG9zdDo1MTA2JywvL+acrOWcsOiwg+ivleWcsOWdgFxyXG5cdFx0XHQvL3NlcnZlckFQSTonaHR0cDovLzc4NTY2YjAwLnIxLmNwb2xhci50b3AvYXBpJywvL+Wklue9keWcsOWdgFxyXG5cdFx0XHQvL3NlcnZlckFQSTonaHR0cDovLzE5Mi4xNjguMC45NDo4MDA4L2FwaScsIC8v5YaF572R5Zyw5Z2AXHJcblx0XHRcdHNlcnZlckFQSTonaHR0cDovL2xvY2FsaG9zdDo1MTA2L2FwaScsLy/mnKzlnLDosIPor5XlnLDlnYBcclxuXHRcdH1cclxuXHR9LFxyXG5cdG11dGF0aW9uczoge1xyXG5cdFx0dGVzdChzdGF0ZSxpZCl7XHJcblx0XHRcdHN0YXRlLmlkID0gaWQ7XHJcblx0XHR9XHJcblx0fSxcclxuICAgIGdldHRlcnM6e1xyXG4gICAgICAgIGN1cnJlbnRDb2xvcihzdGF0ZSl7XHJcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZS5jb2xvckxpc3Rbc3RhdGUuY29sb3JJbmRleF1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cdGFjdGlvbnM6IHtcclxuXHRcdC8vIGxhenkgbG9hZGluZyBvcGVuaWRcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBzdG9yZVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///126\n");
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 123));\nvar _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 127));\n//寮曞叆vuex鎻掍欢 杩涜鐘舵�佺鐞哱n_vue.default.use(_vuex.default);\nvar store = new _vuex.default.Store({\n state: {\n id: 'id',\n serverInfo: {\n //鏈嶅姟淇℃伅\n networkFlag: '鍐呯綉',\n serverURLInt: 'http://192.168.11.251:10054',\n //鏈嶅姟鍣ㄤ綋妫� 10.0.1.104:10054\n serverURL: 'http://localhost:10054',\n //鏈湴璋冭瘯鍦板潃\n //serverAPI:'http://78566b00.r1.cpolar.top/api',//澶栫綉鍦板潃\n serverAPI: 'http://192.168.0.94:8008/api' //鍐呯綉鍦板潃\n //serverAPI:'http://localhost:5106/api',//鏈湴璋冭瘯鍦板潃\n }\n },\n\n mutations: {\n test: function test(state, id) {\n state.id = id;\n }\n },\n getters: {\n currentColor: function currentColor(state) {\n return state.colorList[state.colorIndex];\n }\n },\n actions: {\n // lazy loading openid\n }\n});\nvar _default = store;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvaW5kZXguanMiXSwibmFtZXMiOlsiVnVlIiwidXNlIiwiVnVleCIsInN0b3JlIiwiU3RvcmUiLCJzdGF0ZSIsImlkIiwic2VydmVySW5mbyIsIm5ldHdvcmtGbGFnIiwic2VydmVyVVJMSW50Iiwic2VydmVyVVJMIiwic2VydmVyQVBJIiwibXV0YXRpb25zIiwidGVzdCIsImdldHRlcnMiLCJjdXJyZW50Q29sb3IiLCJjb2xvckxpc3QiLCJjb2xvckluZGV4IiwiYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFFQTtBQUNBQSxZQUFHLENBQUNDLEdBQUcsQ0FBQ0MsYUFBSSxDQUFDO0FBQ2IsSUFBTUMsS0FBSyxHQUFHLElBQUlELGFBQUksQ0FBQ0UsS0FBSyxDQUFDO0VBQzVCQyxLQUFLLEVBQUU7SUFDTkMsRUFBRSxFQUFFLElBQUk7SUFDUkMsVUFBVSxFQUFDO01BQUM7TUFDWEMsV0FBVyxFQUFDLElBQUk7TUFDaEJDLFlBQVksRUFBRSw2QkFBNkI7TUFBQztNQUM1Q0MsU0FBUyxFQUFFLHdCQUF3QjtNQUFDO01BQ3BDO01BQ0FDLFNBQVMsRUFBRSw4QkFBOEIsQ0FBRTtNQUMzQztJQUNEO0VBQ0QsQ0FBQzs7RUFDREMsU0FBUyxFQUFFO0lBQ1ZDLElBQUksZ0JBQUNSLEtBQUssRUFBQ0MsRUFBRSxFQUFDO01BQ2JELEtBQUssQ0FBQ0MsRUFBRSxHQUFHQSxFQUFFO0lBQ2Q7RUFDRCxDQUFDO0VBQ0VRLE9BQU8sRUFBQztJQUNKQyxZQUFZLHdCQUFDVixLQUFLLEVBQUM7TUFDZixPQUFPQSxLQUFLLENBQUNXLFNBQVMsQ0FBQ1gsS0FBSyxDQUFDWSxVQUFVLENBQUM7SUFDNUM7RUFDSixDQUFDO0VBQ0pDLE9BQU8sRUFBRTtJQUNSO0VBQUE7QUFFRixDQUFDLENBQUM7QUFBQSxlQUVhZixLQUFLO0FBQUEiLCJmaWxlIjoiMTI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCBWdWV4IGZyb20gJ3Z1ZXgnXHJcblxyXG4vL+W8leWFpXZ1ZXjmj5Lku7Yg6L+b6KGM54q25oCB566h55CGXHJcblZ1ZS51c2UoVnVleCkgXHJcbmNvbnN0IHN0b3JlID0gbmV3IFZ1ZXguU3RvcmUoe1xyXG5cdHN0YXRlOiB7IFxyXG5cdFx0aWQ6ICdpZCcsXHJcblx0XHRzZXJ2ZXJJbmZvOnsvL+acjeWKoeS/oeaBr1xyXG5cdFx0XHRuZXR3b3JrRmxhZzon5YaF572RJywgXHJcblx0XHRcdHNlcnZlclVSTEludDogJ2h0dHA6Ly8xOTIuMTY4LjExLjI1MToxMDA1NCcsLy/mnI3liqHlmajkvZPmo4AgMTAuMC4xLjEwNDoxMDA1NFxyXG5cdFx0XHRzZXJ2ZXJVUkw6ICdodHRwOi8vbG9jYWxob3N0OjEwMDU0JywvL+acrOWcsOiwg+ivleWcsOWdgFxyXG5cdFx0XHQvL3NlcnZlckFQSTonaHR0cDovLzc4NTY2YjAwLnIxLmNwb2xhci50b3AvYXBpJywvL+Wklue9keWcsOWdgFxyXG5cdFx0XHRzZXJ2ZXJBUEk6ICdodHRwOi8vMTkyLjE2OC4wLjk0OjgwMDgvYXBpJywgLy/lhoXnvZHlnLDlnYBcclxuXHRcdFx0Ly9zZXJ2ZXJBUEk6J2h0dHA6Ly9sb2NhbGhvc3Q6NTEwNi9hcGknLC8v5pys5Zyw6LCD6K+V5Zyw5Z2AXHJcblx0XHR9XHJcblx0fSxcclxuXHRtdXRhdGlvbnM6IHtcclxuXHRcdHRlc3Qoc3RhdGUsaWQpe1xyXG5cdFx0XHRzdGF0ZS5pZCA9IGlkO1xyXG5cdFx0fVxyXG5cdH0sXHJcbiAgICBnZXR0ZXJzOntcclxuICAgICAgICBjdXJyZW50Q29sb3Ioc3RhdGUpe1xyXG4gICAgICAgICAgICByZXR1cm4gc3RhdGUuY29sb3JMaXN0W3N0YXRlLmNvbG9ySW5kZXhdXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHRhY3Rpb25zOiB7XHJcblx0XHQvLyBsYXp5IGxvYWRpbmcgb3BlbmlkXHJcblx0fVxyXG59KVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgc3RvcmVcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///126\n");
/***/ }),
/* 127 */
diff --git a/unpackage/dist/dev/app-plus/app-view.js b/unpackage/dist/dev/app-plus/app-view.js
index 0c8afd2..9cc99ef 100644
--- a/unpackage/dist/dev/app-plus/app-view.js
+++ b/unpackage/dist/dev/app-plus/app-view.js
@@ -7233,7 +7233,7 @@
},
},
},
- [_vm._v("涓婂垁鎻愪氦(=璋冩満寮�濮�)")]
+ [_vm._v("涓婂垁鎻愪氦")]
),
_c(
"v-uni-button",
@@ -7264,24 +7264,298 @@
],
1
),
- _vm._$g(28, "i")
- ? _c(
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(28, "sc"), attrs: { _i: 28 } },
+ [
+ _c(
"uni-view",
- { staticClass: _vm._$g(28, "sc"), attrs: { _i: 28 } },
+ { staticClass: _vm._$g(29, "sc"), attrs: { _i: 29 } },
[
_c(
"uni-view",
- { staticClass: _vm._$g(29, "sc"), attrs: { _i: 29 } },
+ { staticClass: _vm._$g(30, "sc"), attrs: { _i: 30 } },
+ [
+ _c("v-uni-text", { attrs: { _i: 31 } }, [
+ _vm._v("褰撳墠璋冩満甯堝倕锛�"),
+ ]),
+ _c(
+ "v-uni-text",
+ { staticClass: _vm._$g(32, "sc"), attrs: { _i: 32 } },
+ [_vm._v(_vm._$g(32, "t0-0"))]
+ ),
+ _c(
+ "v-uni-button",
+ {
+ staticClass: _vm._$g(33, "sc"),
+ attrs: { _i: 33 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [_vm._v("閫変汉")]
+ ),
+ ],
+ 1
+ ),
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(34, "sc"), attrs: { _i: 34 } },
+ [
+ _c("v-uni-text", { attrs: { _i: 35 } }, [
+ _vm._v("璋冩満鑹搧鏁帮細"),
+ ]),
+ _c("v-uni-input", {
+ staticClass: _vm._$g(36, "sc"),
+ attrs: {
+ type: "number",
+ placeholder: "璇疯緭鍏ユ暟閲�",
+ _i: 36,
+ },
+ model: {
+ value: _vm._$g(36, "v-model"),
+ callback: function ($$v) {
+ _vm.$handleVModelEvent(36, $$v)
+ },
+ expression: "tiaojiOkQty",
+ },
+ }),
+ ],
+ 1
+ ),
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(37, "sc"), attrs: { _i: 37 } },
+ [
+ _c("v-uni-text", { attrs: { _i: 38 } }, [
+ _vm._v("璋冩満涓嶈壇鍝佹暟锛�"),
+ ]),
+ _c("v-uni-input", {
+ staticClass: _vm._$g(39, "sc"),
+ attrs: {
+ type: "number",
+ placeholder: "璇疯緭鍏ユ暟閲�",
+ _i: 39,
+ },
+ model: {
+ value: _vm._$g(39, "v-model"),
+ callback: function ($$v) {
+ _vm.$handleVModelEvent(39, $$v)
+ },
+ expression: "tiaojiBadQty",
+ },
+ }),
+ ],
+ 1
+ ),
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(40, "sc"), attrs: { _i: 40 } },
+ [
+ _c(
+ "v-uni-button",
+ {
+ staticClass: _vm._$g(41, "sc"),
+ attrs: { _i: 41 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [_vm._v("閫佹鍛煎彨")]
+ ),
+ ],
+ 1
+ ),
+ ],
+ 1
+ ),
+ ],
+ 1
+ ),
+ _vm._$g(42, "i")
+ ? _c(
+ "uni-view",
+ { staticClass: _vm._$g(42, "sc"), attrs: { _i: 42 } },
+ [
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(43, "sc"), attrs: { _i: 43 } },
[
_c(
"uni-view",
- { staticClass: _vm._$g(30, "sc"), attrs: { _i: 30 } },
+ { staticClass: _vm._$g(44, "sc"), attrs: { _i: 44 } },
[
_c("v-uni-input", {
- staticClass: _vm._$g(31, "sc"),
+ staticClass: _vm._$g(45, "sc"),
+ attrs: {
+ type: "text",
+ placeholder: "杈撳叆宸ュ彿鎴栧鍚嶆悳绱�",
+ _i: 45,
+ },
+ on: {
+ keydown: function ($event) {
+ return _vm.$handleViewEvent($event, {
+ enter: true,
+ prevent: true,
+ })
+ },
+ },
+ model: {
+ value: _vm._$g(45, "v-model"),
+ callback: function ($$v) {
+ _vm.$handleVModelEvent(45, $$v)
+ },
+ expression: "tiaojiUserSearch",
+ },
+ }),
+ _vm._$g(46, "i")
+ ? _c(
+ "v-uni-button",
+ {
+ staticClass: _vm._$g(46, "sc"),
+ attrs: { _i: 46 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [_vm._v("娓呯┖")]
+ )
+ : _vm._e(),
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(47, "sc"), attrs: { _i: 47 } },
+ [
+ _vm._v(
+ "鍖归厤锛�" +
+ _vm._$g(47, "t0-0") +
+ " / " +
+ _vm._$g(47, "t0-1")
+ ),
+ ]
+ ),
+ ],
+ 1
+ ),
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(48, "sc"), attrs: { _i: 48 } },
+ [
+ _vm._$g(49, "i")
+ ? [
+ _c(
+ "uni-view",
+ {
+ staticClass: _vm._$g(50, "sc"),
+ attrs: { _i: 50 },
+ },
+ _vm._l(
+ _vm._$g(51, "f"),
+ function (u, index, $20, $30) {
+ return _c(
+ "v-uni-button",
+ {
+ key: u,
+ class: _vm._$g("51-" + $30, "c"),
+ attrs: { _i: "51-" + $30 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [
+ _c(
+ "span",
+ {
+ staticClass: _vm._$g(
+ "52-" + $30,
+ "sc"
+ ),
+ attrs: { _i: "52-" + $30 },
+ },
+ [_vm._v(_vm._$g("52-" + $30, "t0-0"))]
+ ),
+ _c(
+ "span",
+ {
+ staticClass: _vm._$g(
+ "53-" + $30,
+ "sc"
+ ),
+ attrs: { _i: "53-" + $30 },
+ },
+ [_vm._v(_vm._$g("53-" + $30, "t0-0"))]
+ ),
+ ],
+ 1
+ )
+ }
+ ),
+ 1
+ ),
+ ]
+ : _c(
+ "uni-view",
+ {
+ staticClass: _vm._$g(54, "sc"),
+ attrs: { _i: 54 },
+ },
+ [_vm._v("鏈壘鍒板尮閰嶄汉鍛�")]
+ ),
+ ],
+ 2
+ ),
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(55, "sc"), attrs: { _i: 55 } },
+ [
+ _c(
+ "v-uni-button",
+ {
+ staticClass: _vm._$g(56, "sc"),
+ attrs: { _i: 56 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [_vm._v("鍏抽棴")]
+ ),
+ ],
+ 1
+ ),
+ ],
+ 1
+ ),
+ ],
+ 1
+ )
+ : _vm._e(),
+ _vm._$g(57, "i")
+ ? _c(
+ "uni-view",
+ { staticClass: _vm._$g(57, "sc"), attrs: { _i: 57 } },
+ [
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(58, "sc"), attrs: { _i: 58 } },
+ [
+ _c(
+ "uni-view",
+ { staticClass: _vm._$g(59, "sc"), attrs: { _i: 59 } },
+ [
+ _c("v-uni-input", {
+ staticClass: _vm._$g(60, "sc"),
attrs: {
placeholder: "杈撳叆鍒�鍏风紪鐮併�佸悕绉版ā绯婃悳绱�",
- _i: 31,
+ _i: 60,
},
on: {
input: function ($event) {
@@ -7289,7 +7563,7 @@
},
},
model: {
- value: _vm._$g(31, "v-model"),
+ value: _vm._$g(60, "v-model"),
callback: function () {},
expression: "searchKey",
},
@@ -7297,10 +7571,10 @@
_c(
"v-uni-button",
{
- staticClass: _vm._$g(32, "sc"),
+ staticClass: _vm._$g(61, "sc"),
attrs: {
- disabled: _vm._$g(32, "a-disabled"),
- _i: 32,
+ disabled: _vm._$g(61, "a-disabled"),
+ _i: 61,
},
on: {
click: function ($event) {
@@ -7315,15 +7589,15 @@
),
_c(
"uni-view",
- { staticClass: _vm._$g(33, "sc"), attrs: { _i: 33 } },
- _vm._l(_vm._$g(34, "f"), function (tool, $10, $20, $30) {
+ { staticClass: _vm._$g(62, "sc"), attrs: { _i: 62 } },
+ _vm._l(_vm._$g(63, "f"), function (tool, $11, $21, $31) {
return _c(
"v-uni-button",
{
key: tool,
- staticClass: _vm._$g("34-" + $30, "sc"),
- class: _vm._$g("34-" + $30, "c"),
- attrs: { _i: "34-" + $30 },
+ staticClass: _vm._$g("63-" + $31, "sc"),
+ class: _vm._$g("63-" + $31, "c"),
+ attrs: { _i: "63-" + $31 },
on: {
click: function ($event) {
return _vm.$handleViewEvent($event)
@@ -7332,9 +7606,9 @@
},
[
_vm._v(
- _vm._$g("34-" + $30, "t0-0") +
+ _vm._$g("63-" + $31, "t0-0") +
" | " +
- _vm._$g("34-" + $30, "t0-1")
+ _vm._$g("63-" + $31, "t0-1")
),
]
)
@@ -7343,7 +7617,7 @@
),
_c(
"uni-view",
- { staticClass: _vm._$g(35, "sc"), attrs: { _i: 35 } },
+ { staticClass: _vm._$g(64, "sc"), attrs: { _i: 64 } },
[
_c(
"div",
@@ -7352,16 +7626,16 @@
display: "flex",
"align-items": "center",
},
- attrs: { _i: 36 },
+ attrs: { _i: 65 },
},
[
_c(
"v-uni-button",
{
- staticClass: _vm._$g(37, "sc"),
+ staticClass: _vm._$g(66, "sc"),
attrs: {
- disabled: _vm._$g(37, "a-disabled"),
- _i: 37,
+ disabled: _vm._$g(66, "a-disabled"),
+ _i: 66,
},
on: {
click: function ($event) {
@@ -7375,14 +7649,14 @@
"span",
{
staticStyle: { margin: "0 12px" },
- attrs: { _i: 38 },
+ attrs: { _i: 67 },
},
[
_vm._v(
"绗�" +
- _vm._$g(38, "t0-0") +
+ _vm._$g(67, "t0-0") +
"椤� / 鍏�" +
- _vm._$g(38, "t0-1") +
+ _vm._$g(67, "t0-1") +
"椤�"
),
]
@@ -7390,10 +7664,10 @@
_c(
"v-uni-button",
{
- staticClass: _vm._$g(39, "sc"),
+ staticClass: _vm._$g(68, "sc"),
attrs: {
- disabled: _vm._$g(39, "a-disabled"),
- _i: 39,
+ disabled: _vm._$g(68, "a-disabled"),
+ _i: 68,
},
on: {
click: function ($event) {
@@ -7414,14 +7688,14 @@
gap: "18px",
"align-items": "center",
},
- attrs: { _i: 40 },
+ attrs: { _i: 69 },
},
[
_c(
"v-uni-button",
{
- staticClass: _vm._$g(41, "sc"),
- attrs: { _i: 41 },
+ staticClass: _vm._$g(70, "sc"),
+ attrs: { _i: 70 },
on: {
click: function ($event) {
return _vm.$handleViewEvent($event)
@@ -7433,8 +7707,8 @@
_c(
"v-uni-button",
{
- staticClass: _vm._$g(42, "sc"),
- attrs: { _i: 42 },
+ staticClass: _vm._$g(71, "sc"),
+ attrs: { _i: 71 },
on: {
click: function ($event) {
return _vm.$handleViewEvent($event)
@@ -7456,267 +7730,9 @@
1
)
: _vm._e(),
- _c(
- "uni-view",
- { staticClass: _vm._$g(43, "sc"), attrs: { _i: 43 } },
- [
- _c(
- "table",
- { staticClass: _vm._$g(44, "sc"), attrs: { _i: 44 } },
- [
- _c(
- "thead",
- { attrs: { _i: 45 } },
- [
- _c(
- "tr",
- { attrs: { _i: 46 } },
- [
- _c(
- "th",
- { staticStyle: { width: "7%" }, attrs: { _i: 47 } },
- [_vm._v("鍒�鍏风紪鍙�")]
- ),
- _c(
- "th",
- { staticStyle: { width: "12%" }, attrs: { _i: 48 } },
- [_vm._v("鍒�鍏峰悕绉�")]
- ),
- _c(
- "th",
- { staticStyle: { width: "10%" }, attrs: { _i: 49 } },
- [_vm._v("涓婂垁鏃堕棿")]
- ),
- _c(
- "th",
- {
- staticClass: _vm._$g(50, "sc"),
- staticStyle: { width: "7%" },
- attrs: { _i: 50 },
- },
- [_vm._v("涓婂垁璁℃暟")]
- ),
- _c(
- "th",
- { staticStyle: { width: "10%" }, attrs: { _i: 51 } },
- [_vm._v("涓嬪垁鏃堕棿")]
- ),
- _c(
- "th",
- {
- staticClass: _vm._$g(52, "sc"),
- staticStyle: { width: "7%" },
- attrs: { _i: 52 },
- },
- [_vm._v("涓嬪垁璁℃暟")]
- ),
- _c(
- "th",
- {
- staticClass: _vm._$g(53, "sc"),
- staticStyle: { width: "7%" },
- attrs: { _i: 53 },
- },
- [_vm._v("浣跨敤娆℃暟")]
- ),
- _c(
- "th",
- {
- staticClass: _vm._$g(54, "sc"),
- staticStyle: { width: "7%" },
- attrs: { _i: 54 },
- },
- [_vm._v("浣跨敤涓婇檺")]
- ),
- _c(
- "th",
- {
- staticClass: _vm._$g(55, "sc"),
- staticStyle: { width: "7%" },
- attrs: { _i: 55 },
- },
- [_vm._v("瀵垮懡姣�%")]
- ),
- _c(
- "th",
- {
- staticClass: _vm._$g(56, "sc"),
- staticStyle: { width: "7%" },
- attrs: { _i: 56 },
- },
- [_vm._v("瀵垮懡姣旈璀﹀��")]
- ),
- _c(
- "th",
- { staticStyle: { width: "7%" }, attrs: { _i: 57 } },
- [_vm._v("棰勮鐘舵��")]
- ),
- _c(
- "th",
- { staticStyle: { width: "7%" }, attrs: { _i: 58 } },
- [_vm._v("鍒�鍏峰湪鏈虹姸鎬�")]
- ),
- ],
- 1
- ),
- ],
- 1
- ),
- _c(
- "tbody",
- { attrs: { _i: 59 } },
- [
- _vm._l(_vm._$g(60, "f"), function (item, idx, $21, $31) {
- return _c(
- "tr",
- {
- key: item,
- class: _vm._$g("60-" + $31, "c"),
- attrs: { _i: "60-" + $31 },
- },
- [
- _c("td", { attrs: { _i: "61-" + $31 } }, [
- _vm._v(_vm._$g("61-" + $31, "t0-0")),
- ]),
- _c(
- "td",
- {
- staticClass: _vm._$g("62-" + $31, "sc"),
- attrs: { _i: "62-" + $31 },
- },
- [_vm._v(_vm._$g("62-" + $31, "t0-0"))]
- ),
- _c("td", { attrs: { _i: "63-" + $31 } }, [
- _vm._v(_vm._$g("63-" + $31, "t0-0")),
- ]),
- _c(
- "td",
- {
- staticClass: _vm._$g("64-" + $31, "sc"),
- attrs: { _i: "64-" + $31 },
- },
- [_vm._v(_vm._$g("64-" + $31, "t0-0"))]
- ),
- _c("td", { attrs: { _i: "65-" + $31 } }, [
- _vm._v(_vm._$g("65-" + $31, "t0-0")),
- ]),
- _c(
- "td",
- {
- staticClass: _vm._$g("66-" + $31, "sc"),
- attrs: { _i: "66-" + $31 },
- },
- [
- _vm._$g("67-" + $31, "i")
- ? [
- _vm._$g("68-" + $31, "i")
- ? [_vm._v(_vm._$g("68-" + $31, "t0-0"))]
- : [_vm._v(_vm._$g("69-" + $31, "t0-0"))],
- ]
- : [_vm._v(_vm._$g("70-" + $31, "t0-0"))],
- ],
- 2
- ),
- _c(
- "td",
- {
- staticClass: _vm._$g("71-" + $31, "sc"),
- attrs: { _i: "71-" + $31 },
- },
- [
- _vm._$g("72-" + $31, "i")
- ? [
- _vm._$g("73-" + $31, "i")
- ? [_vm._v(_vm._$g("73-" + $31, "t0-0"))]
- : [_vm._v(_vm._$g("74-" + $31, "t0-0"))],
- ]
- : [_vm._v(_vm._$g("75-" + $31, "t0-0"))],
- ],
- 2
- ),
- _c(
- "td",
- {
- staticClass: _vm._$g("76-" + $31, "sc"),
- attrs: { _i: "76-" + $31 },
- },
- [_vm._v(_vm._$g("76-" + $31, "t0-0"))]
- ),
- _c(
- "td",
- {
- staticClass: _vm._$g("77-" + $31, "sc"),
- attrs: { _i: "77-" + $31 },
- },
- [
- _vm._$g("78-" + $31, "i")
- ? [
- _vm._$g("79-" + $31, "i")
- ? [_vm._v(_vm._$g("79-" + $31, "t0-0"))]
- : [_vm._v(_vm._$g("80-" + $31, "t0-0"))],
- ]
- : [_vm._v(_vm._$g("81-" + $31, "t0-0"))],
- ],
- 2
- ),
- _c(
- "td",
- {
- staticClass: _vm._$g("82-" + $31, "sc"),
- attrs: { _i: "82-" + $31 },
- },
- [_vm._v(_vm._$g("82-" + $31, "t0-0"))]
- ),
- _c(
- "td",
- {
- class: _vm._$g("83-" + $31, "c"),
- attrs: { _i: "83-" + $31 },
- },
- [
- _vm._$g("84-" + $31, "i")
- ? _c(
- "span",
- {
- staticClass: _vm._$g("84-" + $31, "sc"),
- attrs: { _i: "84-" + $31 },
- },
- [_vm._v("璀﹀憡")]
- )
- : _c("span", { attrs: { _i: "85-" + $31 } }, [
- _vm._v(_vm._$g("85-" + $31, "t0-0")),
- ]),
- ],
- 1
- ),
- _c("td", { attrs: { _i: "86-" + $31 } }, [
- _vm._v(_vm._$g("86-" + $31, "t0-0")),
- ]),
- ],
- 1
- )
- }),
- _vm._$g(87, "i")
- ? _c(
- "tr",
- { attrs: { _i: 87 } },
- [
- _c("td", { attrs: { colspan: "12", _i: 88 } }, [
- _vm._v("鏆傛棤鏁版嵁"),
- ]),
- ],
- 1
- )
- : _vm._e(),
- ],
- 2
- ),
- ],
- 1
- ),
- ],
- 1
- ),
+ false
+ ? undefined
+ : _vm._e(),
],
1
)
@@ -7815,7 +7831,7 @@
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 13);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
-exports.push([module.i, "\n.top-section-grid[data-v-69099b55] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 2vh;\n width: 99vw;\n max-width: 1920px;\n margin-left: auto;\n margin-right: auto;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n}\n.form-row[data-v-69099b55] {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n margin-bottom: 12px;\n}\n.form-row[data-v-69099b55]:last-child {\n margin-bottom: 0;\n}\n.form-cell[data-v-69099b55] {\n display: flex;\n align-items: center;\n min-width: 0;\n margin-right: 0;\n}\n.form-cell[data-v-69099b55]:nth-child(1) {\n flex: 0 0 28%;\n min-width: 180px;\n}\n.form-cell[data-v-69099b55]:nth-child(2) {\n flex: 0 0 32%;\n min-width: 180px;\n justify-content: flex-start;\n}\n.form-cell[data-v-69099b55]:nth-child(3) {\n flex: 0 0 auto;\n min-width: 0;\n max-width: 220px; /* 闄愬埗鏈�澶у搴︼紝閬垮厤鎾戝紑 */\n justify-content: flex-end;\n}\n.form-label[data-v-69099b55] {\n width: auto;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n margin-right: 4px;\n flex-shrink: 0;\n font-size: 22px;\n}\n.input[data-v-69099b55] {\n padding: 14px 20px;\n border: 1px solid #dcdfe6;\n flex: 1;\n margin-right: 0;\n border-radius: 4px;\n background: #fff;\n min-width: 0;\n height: 56px !important;\n box-sizing: border-box;\n font-size: 22px;\n}\n.input.small-font[data-v-69099b55] {\n /* 涓嶈缃瓧浣撳ぇ灏� */\n}\n.input[data-v-69099b55]:disabled {\n background-color: #f5f7fa;\n color: #c0c4cc;\n cursor: not-allowed;\n}\n.input-with-unit[data-v-69099b55] {\n display: flex;\n align-items: center;\n gap: 0;\n}\n.input-with-unit .input[data-v-69099b55] {\n width: 60px !important;\n min-width: 0 !important;\n margin-right: 2px !important;\n text-align: center;\n padding-left: 2px;\n padding-right: 2px;\n}\n.input-with-unit .input[data-v-69099b55] {\n margin-right: 4px !important;\n width: 60px !important;\n min-width: 0 !important;\n text-align: center;\n}\n.unit-text[data-v-69099b55] {\n margin-left: 0 !important;\n padding-left: 0 !important;\n font-size: 22px !important;\n}\n.btn-blue[data-v-69099b55], .btn-blue.large-btn[data-v-69099b55] {\n background-color: #1890ff;\n color: white;\n border: none;\n padding: 14px 32px;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n white-space: nowrap;\n height: 70px !important;\n box-sizing: border-box;\n transition: all 0.3s;\n flex-shrink: 0;\n min-width: 140px;\n margin-left: 24px;\n}\n.btn-blue.large-btn[data-v-69099b55] {\n padding: 0 60px;\n min-width: 180px;\n height: 72px !important;\n margin-left: 0 !important;\n font-size: 1.3em;\n box-shadow: 0 2px 8px rgba(24,144,255,0.08);\n line-height: 72px; /* 鍨傜洿灞呬腑 */\n display: inline-block; /* 淇濊瘉line-height鐢熸晥 */\n vertical-align: middle;\n}\n.btn-blue[data-v-69099b55]:hover {\n background-color: #40a9ff;\n}\n.btn-blue[data-v-69099b55]:active {\n background-color: #096dd9;\n}\n.btn-blue[data-v-69099b55]:disabled {\n background: #bae7ff;\n color: #91d5ff;\n cursor: not-allowed;\n}\n.button-row[data-v-69099b55] {\n display: flex;\n justify-content: center;\n gap: 32px;\n margin: 2vh 0;\n}\n.save-btn[data-v-69099b55], .cancel-btn[data-v-69099b55] {\n width: 28%;\n padding: 1.5vh;\n background-color: #00A2E9;\n color: white;\n border: none;\n text-align: center;\n border-radius: 4px;\n transition: all 0.3s;\n font-size: 22px;\n font-weight: 500;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n.cancel-btn[data-v-69099b55] {\n background-color: #f5f5f5;\n color: #333;\n}\n.save-btn[data-v-69099b55]:hover {\n background-color: #40a9ff;\n}\n.save-btn[data-v-69099b55]:active {\n background-color: #096dd9;\n}\n.save-btn[data-v-69099b55]:disabled, .cancel-btn[data-v-69099b55]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* 寮圭獥鏍峰紡 */\n.dialog-overlay[data-v-69099b55] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0,0,0,0.18);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n.dialog[data-v-69099b55] {\n background: #fff;\n padding: 3vh 3vw;\n border-radius: 18px;\n width: 90vw;\n max-width: 1600px;\n min-height: 70vh;\n max-height: 85vh;\n box-sizing: border-box;\n box-shadow: 0 8px 32px rgba(0,0,0,0.12);\n display: flex;\n flex-direction: column;\n}\n.form-group[data-v-69099b55] {\n display: flex;\n gap: 12px;\n align-items: center;\n margin-bottom: 2vh;\n flex-shrink: 0;\n}\n.form-group .input[data-v-69099b55] {\n flex: 1;\n min-width: 300px;\n border-radius: 6px;\n background: #f8f8f8;\n}\n.tool-list[data-v-69099b55] {\n display: flex;\n flex-wrap: wrap;\n margin: 1vh 0;\n flex: 1;\n overflow-y: auto;\n gap: 12px;\n align-content: flex-start;\n}\n.tool-btn[data-v-69099b55] {\n flex: 0 0 calc(20% - 10px);\n box-sizing: border-box;\n padding: 10px 12px;\n background: #f5f5f5;\n border: 1px solid #d0d0d0;\n border-radius: 8px;\n cursor: pointer;\n color: #333;\n text-align: left;\n min-height: 50px;\n transition: background 0.15s, color 0.15s;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 1.4;\n}\n.tool-btn.active[data-v-69099b55] {\n background: #00A2E9;\n color: #fff;\n font-weight: bold;\n border: 1.5px solid #0086c2;\n}\n.dialog-actions[data-v-69099b55] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 2vh;\n padding-top: 2vh;\n border-top: 1px solid #eee;\n flex-shrink: 0;\n}\n.dialog-actions > div[data-v-69099b55]:first-child {\n display: flex;\n align-items: center;\n gap: 24px;\n}\n.dialog-actions > div[data-v-69099b55]:last-child {\n display: flex;\n flex-direction: row;\n gap: 18px;\n align-items: center;\n}\n.dialog-actions .btn-blue[data-v-69099b55] {\n padding: 10px 24px;\n min-width: 120px;\n font-size: 22px;\n}\n.btn-disabled[data-v-69099b55] {\n background: #f2f2f2;\n color: #999;\n border: none;\n padding: 10px 24px;\n border-radius: 4px;\n font-weight: 500;\n cursor: not-allowed;\n box-shadow: none;\n min-width: 120px;\n}\n.table-section[data-v-69099b55] {\n display: flex;\n justify-content: center;\n margin: 1vh 0;\n overflow-x: auto;\n width: 100%; /* 纭繚琛ㄦ牸瀹瑰櫒鍗犳弧瀹藉害 */\n}\ntable.styled-table[data-v-69099b55] {\n max-width: 1800px; /* 浠�1600px澧炲姞鍒�1800px */\n width: 98vw; /* 浠�95vw澧炲姞鍒�98vw */\n margin: 0 auto;\n border-collapse: separate;\n border-spacing: 0;\n border: 2px solid #bfbfbf;\n background: #fff;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 2px 12px rgba(0,0,0,0.06);\n}\ntable.styled-table thead th[data-v-69099b55] {\n background: #fafafa;\n border-bottom: 2px solid #bfbfbf;\n padding: 16px 10px;\n font-weight: bold;\n text-align: center;\n font-size: 22px;\n}\ntable.styled-table tbody td[data-v-69099b55] {\n border-bottom: 1px solid #e8e8e8;\n padding: 14px 10px;\n vertical-align: middle;\n text-align: center;\n font-size: 22px;\n}\n.table-section table th[data-v-69099b55]:first-child, .table-section table td[data-v-69099b55]:first-child {\n border-left: 2px solid #bfbfbf;\n}\n.table-section table th[data-v-69099b55]:last-child, .table-section table td[data-v-69099b55]:last-child {\n border-right: 2px solid #bfbfbf;\n}\n.row-odd[data-v-69099b55] {\n background: #fff;\n}\n.row-odd + tr[data-v-69099b55] {\n background: #fafafa;\n}\n.num[data-v-69099b55] {\n text-align: center;\n padding-right: 0;\n font-variant-numeric: tabular-nums;\n}\n.left[data-v-69099b55] {\n text-align: left;\n padding-left: 8px;\n}\n.warn-cell[data-v-69099b55] {\n color: #d93025;\n font-weight: bold;\n}\n.ok-cell[data-v-69099b55] {\n color: #333;\n}\n.warn-badge[data-v-69099b55] {\n display: inline-block;\n background: #ff4d4f;\n color: #fff;\n padding: 2px 6px;\n border-radius: 3px;\n font-weight: bold;\n}\n\n/* 鍝嶅簲寮忚皟鏁� */\n@media (max-width: 1200px) {\n.form-cell[data-v-69099b55] {\n margin: 0 4px;\n}\n.form-label[data-v-69099b55] {\n width: 90px;\n}\n.input[data-v-69099b55] {\n padding: 10px 14px;\n}\n.btn-blue[data-v-69099b55] {\n padding: 10px 18px;\n}\n}\n.input-life-warn[data-v-69099b55] {\n width: 48px !important; /* 绋嶅井鏀惧锛岄伩鍏嶅瓧浣撴孩鍑� */\n min-width: 0 !important;\n margin-right: 4px;\n padding-left: 2px;\n padding-right: 2px;\n font-size: 22px !important;\n text-align: center;\n box-sizing: border-box;\n}\n.input[data-v-69099b55],\n.input.small-font[data-v-69099b55],\n.input-use-limit[data-v-69099b55],\n.input-tool-model[data-v-69099b55],\n.input-tool-name[data-v-69099b55],\n.input-life-warn[data-v-69099b55] {\n font-size: 22px !important;\n}\n.input-tool-model[data-v-69099b55] {\n width: 320px !important; /* 鍘熶负200px锛岀幇鍔犻暱 */\n min-width: 0 !important;\n margin-right: 16px;\n}\n.input-tool-name[data-v-69099b55] {\n width: 120px !important;\n min-width: 0 !important;\n margin-right: 16px;\n}\n.highlight-label[data-v-69099b55] {\n color: #1890ff !important;\n}\n.tool-dir-cell[data-v-69099b55] {\n flex: 0 0 auto !important;\n justify-content: flex-start !important;\n display: flex !important;\n align-items: center;\n margin-left: 16px; /* 涓庤鏍煎瀷鍙疯緭鍏ユ鎷夊紑璺濈 */\n}\n.form-cell-flex[data-v-69099b55] {\n display: flex;\n align-items: center;\n flex: 0 0 60%;\n min-width: 320px;\n}\n.form-cell-flex .form-label[data-v-69099b55] {\n margin-right: 4px;\n width: auto;\n}\n.form-cell-flex .input-use-limit[data-v-69099b55] {\n margin-right: 12px;\n}\n.input-use-limit[data-v-69099b55] {\n width: 450px !important;\n min-width: 0 !important;\n margin-right: 16px;\n flex: none !important; /* 鍏抽敭锛氬交搴曠姝lex鎷変几 */\n}\n", ""]);
+exports.push([module.i, "\n.top-section-grid[data-v-69099b55] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 2vh;\n width: 99vw;\n max-width: 1920px;\n margin-left: auto;\n margin-right: auto;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n}\n.form-row[data-v-69099b55] {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n margin-bottom: 12px;\n}\n.form-row[data-v-69099b55]:last-child {\n margin-bottom: 0;\n}\n.form-cell[data-v-69099b55] {\n display: flex;\n align-items: center;\n min-width: 0;\n margin-right: 0;\n}\n.form-cell[data-v-69099b55]:nth-child(1) {\n flex: 0 0 28%;\n min-width: 180px;\n}\n.form-cell[data-v-69099b55]:nth-child(2) {\n flex: 0 0 32%;\n min-width: 180px;\n justify-content: flex-start;\n}\n.form-cell[data-v-69099b55]:nth-child(3) {\n flex: 0 0 auto;\n min-width: 0;\n max-width: 220px; /* 闄愬埗鏈�澶у搴︼紝閬垮厤鎾戝紑 */\n justify-content: flex-end;\n}\n.form-label[data-v-69099b55] {\n width: auto;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n margin-right: 4px;\n flex-shrink: 0;\n font-size: 22px;\n}\n.input[data-v-69099b55] {\n padding: 14px 20px;\n border: 1px solid #dcdfe6;\n flex: 1;\n margin-right: 0;\n border-radius: 4px;\n background: #fff;\n min-width: 0;\n height: 56px !important;\n box-sizing: border-box;\n font-size: 22px;\n}\n.input.small-font[data-v-69099b55] {\n /* 涓嶈缃瓧浣撳ぇ灏� */\n}\n.input[data-v-69099b55]:disabled {\n background-color: #f5f7fa;\n color: #c0c4cc;\n cursor: not-allowed;\n}\n.input-with-unit[data-v-69099b55] {\n display: flex;\n align-items: center;\n gap: 0;\n}\n.input-with-unit .input[data-v-69099b55] {\n width: 60px !important;\n min-width: 0 !important;\n margin-right: 2px !important;\n text-align: center;\n padding-left: 2px;\n padding-right: 2px;\n}\n.input-with-unit .input[data-v-69099b55] {\n margin-right: 4px !important;\n width: 60px !important;\n min-width: 0 !important;\n text-align: center;\n}\n.unit-text[data-v-69099b55] {\n margin-left: 0 !important;\n padding-left: 0 !important;\n font-size: 22px !important;\n}\n.btn-blue[data-v-69099b55], .btn-blue.large-btn[data-v-69099b55] {\n background-color: #1890ff;\n color: white;\n border: none;\n padding: 14px 32px;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n white-space: nowrap;\n height: 70px !important;\n box-sizing: border-box;\n transition: all 0.3s;\n flex-shrink: 0;\n min-width: 140px;\n margin-left: 24px;\n}\n.btn-blue.large-btn[data-v-69099b55] {\n padding: 0 60px;\n min-width: 180px;\n height: 72px !important;\n margin-left: 0 !important;\n font-size: 1.3em;\n box-shadow: 0 2px 8px rgba(24,144,255,0.08);\n line-height: 72px; /* 鍨傜洿灞呬腑 */\n display: inline-block; /* 淇濊瘉line-height鐢熸晥 */\n vertical-align: middle;\n}\n.btn-blue[data-v-69099b55]:hover {\n background-color: #40a9ff;\n}\n.btn-blue[data-v-69099b55]:active {\n background-color: #096dd9;\n}\n.btn-blue[data-v-69099b55]:disabled {\n background: #bae7ff;\n color: #91d5ff;\n cursor: not-allowed;\n}\n.button-row[data-v-69099b55] {\n display: flex;\n justify-content: center;\n gap: 32px;\n margin: 2vh 0;\n}\n.save-btn[data-v-69099b55], .cancel-btn[data-v-69099b55] {\n width: 28%;\n padding: 1.5vh;\n background-color: #00A2E9;\n color: white;\n border: none;\n text-align: center;\n border-radius: 4px;\n transition: all 0.3s;\n font-size: 22px;\n font-weight: 500;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n.cancel-btn[data-v-69099b55] {\n background-color: #f5f5f5;\n color: #333;\n}\n.save-btn[data-v-69099b55]:hover {\n background-color: #40a9ff;\n}\n.save-btn[data-v-69099b55]:active {\n background-color: #096dd9;\n}\n.save-btn[data-v-69099b55]:disabled, .cancel-btn[data-v-69099b55]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* 寮圭獥鏍峰紡 */\n.dialog-overlay[data-v-69099b55] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0,0,0,0.18);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n.dialog[data-v-69099b55] {\n background: #fff;\n padding: 3vh 3vw;\n border-radius: 18px;\n width: 90vw;\n max-width: 1600px;\n min-height: 70vh;\n max-height: 85vh;\n box-sizing: border-box;\n box-shadow: 0 8px 32px rgba(0,0,0,0.12);\n display: flex;\n flex-direction: column;\n}\n.form-group[data-v-69099b55] {\n display: flex;\n gap: 12px;\n align-items: center;\n margin-bottom: 2vh;\n flex-shrink: 0;\n}\n.form-group .input[data-v-69099b55] {\n flex: 1;\n min-width: 300px;\n border-radius: 6px;\n background: #f8f8f8;\n}\n.tool-list[data-v-69099b55] {\n display: flex;\n flex-wrap: wrap;\n margin: 1vh 0;\n flex: 1;\n overflow-y: auto;\n gap: 12px;\n align-content: flex-start;\n}\n.tool-btn[data-v-69099b55] {\n flex: 0 0 calc(20% - 10px);\n box-sizing: border-box;\n padding: 10px 12px;\n background: #f5f5f5;\n border: 1px solid #d0d0d0;\n border-radius: 8px;\n cursor: pointer;\n color: #333;\n text-align: left;\n min-height: 50px;\n transition: background 0.15s, color 0.15s;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 1.4;\n}\n.tool-btn.active[data-v-69099b55] {\n background: #00A2E9;\n color: #fff;\n font-weight: bold;\n border: 1.5px solid #0086c2;\n}\n.dialog-actions[data-v-69099b55] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 2vh;\n padding-top: 2vh;\n border-top: 1px solid #eee;\n flex-shrink: 0;\n}\n.dialog-actions > div[data-v-69099b55]:first-child {\n display: flex;\n align-items: center;\n gap: 24px;\n}\n.dialog-actions > div[data-v-69099b55]:last-child {\n display: flex;\n flex-direction: row;\n gap: 18px;\n align-items: center;\n}\n.dialog-actions .btn-blue[data-v-69099b55] {\n padding: 10px 24px;\n min-width: 120px;\n font-size: 22px;\n}\n.btn-disabled[data-v-69099b55] {\n background: #f2f2f2;\n color: #999;\n border: none;\n padding: 10px 24px;\n border-radius: 4px;\n font-weight: 500;\n cursor: not-allowed;\n box-shadow: none;\n min-width: 120px;\n}\n.table-section[data-v-69099b55] {\n display: flex;\n justify-content: center;\n margin: 1vh 0;\n overflow-x: auto;\n width: 100%; /* 纭繚琛ㄦ牸瀹瑰櫒鍗犳弧瀹藉害 */\n}\ntable.styled-table[data-v-69099b55] {\n max-width: 1800px; /* 浠�1600px澧炲姞鍒�1800px */\n width: 98vw; /* 浠�95vw澧炲姞鍒�98vw */\n margin: 0 auto;\n border-collapse: separate;\n border-spacing: 0;\n border: 2px solid #bfbfbf;\n background: #fff;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 2px 12px rgba(0,0,0,0.06);\n}\ntable.styled-table thead th[data-v-69099b55] {\n background: #fafafa;\n border-bottom: 2px solid #bfbfbf;\n padding: 16px 10px;\n font-weight: bold;\n text-align: center;\n font-size: 22px;\n}\ntable.styled-table tbody td[data-v-69099b55] {\n border-bottom: 1px solid #e8e8e8;\n padding: 14px 10px;\n vertical-align: middle;\n text-align: center;\n font-size: 22px;\n}\n.table-section table th[data-v-69099b55]:first-child, .table-section table td[data-v-69099b55]:first-child {\n border-left: 2px solid #bfbfbf;\n}\n.table-section table th[data-v-69099b55]:last-child, .table-section table td[data-v-69099b55]:last-child {\n border-right: 2px solid #bfbfbf;\n}\n.row-odd[data-v-69099b55] {\n background: #fff;\n}\n.row-odd + tr[data-v-69099b55] {\n background: #fafafa;\n}\n.num[data-v-69099b55] {\n text-align: center;\n padding-right: 0;\n font-variant-numeric: tabular-nums;\n}\n.left[data-v-69099b55] {\n text-align: left;\n padding-left: 8px;\n}\n.warn-cell[data-v-69099b55] {\n color: #d93025;\n font-weight: bold;\n}\n.ok-cell[data-v-69099b55] {\n color: #333;\n}\n.warn-badge[data-v-69099b55] {\n display: inline-block;\n background: #ff4d4f;\n color: #fff;\n padding: 2px 6px;\n border-radius: 3px;\n font-weight: bold;\n}\n\n/* 鍝嶅簲寮忚皟鏁� */\n@media (max-width: 1200px) {\n.form-cell[data-v-69099b55] {\n margin: 0 4px;\n}\n.form-label[data-v-69099b55] {\n width: 90px;\n}\n.input[data-v-69099b55] {\n padding: 10px 14px;\n}\n.btn-blue[data-v-69099b55] {\n padding: 10px 18px;\n}\n}\n.input-life-warn[data-v-69099b55] {\n width: 48px !important; /* 绋嶅井鏀惧锛岄伩鍏嶅瓧浣撴孩鍑� */\n min-width: 0 !important;\n margin-right: 4px;\n padding-left: 2px;\n padding-right: 2px;\n font-size: 22px !important;\n text-align: center;\n box-sizing: border-box;\n}\n.input[data-v-69099b55],\n.input.small-font[data-v-69099b55],\n.input-use-limit[data-v-69099b55],\n.input-tool-model[data-v-69099b55],\n.input-tool-name[data-v-69099b55],\n.input-life-warn[data-v-69099b55] {\n font-size: 22px !important;\n}\n.input-tool-model[data-v-69099b55] {\n width: 320px !important; /* 鍘熶负200px锛岀幇鍔犻暱 */\n min-width: 0 !important;\n margin-right: 16px;\n}\n.input-tool-name[data-v-69099b55] {\n width: 120px !important;\n min-width: 0 !important;\n margin-right: 16px;\n}\n.highlight-label[data-v-69099b55] {\n color: #1890ff !important;\n}\n.tool-dir-cell[data-v-69099b55] {\n flex: 0 0 auto !important;\n justify-content: flex-start !important;\n display: flex !important;\n align-items: center;\n margin-left: 16px; /* 涓庤鏍煎瀷鍙疯緭鍏ユ鎷夊紑璺濈 */\n}\n.form-cell-flex[data-v-69099b55] {\n display: flex;\n align-items: center;\n flex: 0 0 60%;\n min-width: 320px;\n}\n.form-cell-flex .form-label[data-v-69099b55] {\n margin-right: 4px;\n width: auto;\n}\n.form-cell-flex .input-use-limit[data-v-69099b55] {\n margin-right: 12px;\n}\n.input-use-limit[data-v-69099b55] {\n width: 450px !important;\n min-width: 0 !important;\n margin-right: 16px;\n flex: none !important; /* 鍏抽敭锛氬交搴曠姝lex鎷変几 */\n}\n\n/* 鏂板锛氳皟鏈哄尯鍩熸牱寮� */\n.tiaoji-section[data-v-69099b55] {\n width: 100%;\n margin: 2vh 0;\n padding: 20px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n}\n.tiaoji-row[data-v-69099b55] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 20px;\n}\n\n/* 褰撳墠璋冩満甯堝倕鍖哄煙 - 涓庢姤宸ョ晫闈繚鎸佷竴鑷� */\n.current-user-section[data-v-69099b55] {\n display: flex;\n align-items: center;\n font-size: 22px;\n border: 1.5px solid #f00;\n border-radius: 10px;\n padding: 14px 22px;\n background: #fff;\n gap: 14px;\n flex: 0 0 auto;\n}\n.current-user-name[data-v-69099b55] {\n font-weight: bold;\n font-size: 22px;\n}\n\n/* 閫変汉鎸夐挳 - 钃濊壊涓婚锛屼笌鎶ュ伐鐣岄潰淇濇寔涓�鑷� */\n.select-user-btn[data-v-69099b55] {\n background: #00a2e9;\n color: #fff;\n border: none;\n padding: 12px 22px;\n border-radius: 12px;\n font-size: 22px;\n cursor: pointer;\n transition: background 0.15s;\n height: 66px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.select-user-btn[data-v-69099b55]:hover {\n background: #008ac2;\n}\n\n/* 璋冩満鏁伴噺杈撳叆鍖哄煙 */\n.tiaoji-input-section[data-v-69099b55] {\n display: flex;\n align-items: center;\n gap: 14px;\n font-size: 22px;\n}\n.tiaoji-input[data-v-69099b55] {\n width: 200px;\n max-width: 100%;\n height: 66px;\n border: 2px solid #808080;\n font-size: 28px;\n text-align: center;\n border-radius: 8px;\n box-sizing: border-box;\n}\n\n/* 閫佹鍛煎彨鎸夐挳 - 涓庢姤宸ョ晫闈㈢殑纭鎻愪氦鎸夐挳淇濇寔涓�鑷� */\n.details-btn[data-v-69099b55] {\n padding: 12px 34px;\n background: #00a2e9;\n color: #fff;\n font-size: 32px;\n border: none;\n cursor: pointer;\n border-radius: 12px;\n height: 66px;\n min-width: 180px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n line-height: 1.1;\n box-sizing: border-box;\n transition: background 0.15s;\n}\n.details-btn[data-v-69099b55]:hover {\n background: #008ac2;\n}\n.details-btn[data-v-69099b55]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n background: #bae7ff;\n}\n.tiaoji-submit-section[data-v-69099b55] {\n display: flex;\n align-items: center;\n}\n\n/* 閫変汉寮圭獥鏍峰紡 - 涓庢姤宸ョ晫闈繚鎸佷竴鑷� */\n.overlay[data-v-69099b55] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,.45);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n.user-select-popup[data-v-69099b55] {\n background: #fff;\n width: 1600px;\n max-width: 99vw;\n min-width: 1000px;\n height: auto;\n min-height: 520px;\n padding: 0;\n display: flex;\n flex-direction: column;\n font-size: 32px;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.12);\n z-index: 1001;\n}\n.user-search-bar[data-v-69099b55] {\n display: flex;\n align-items: center;\n gap: 18px;\n padding: 24px 64px 0 64px;\n background: #fff;\n flex-wrap: wrap;\n}\n.user-search-input[data-v-69099b55] {\n flex: 1 1 260px;\n padding: 16px 20px;\n font-size: 28px;\n border: 1px solid #bbb;\n border-radius: 8px;\n outline: none;\n height: 54px;\n}\n.user-search-input[data-v-69099b55]:focus {\n border-color: #007aff;\n box-shadow: 0 0 0 2px rgba(0,122,255,.15);\n}\n.user-search-clear[data-v-69099b55] {\n padding: 12px 28px;\n background: #ff9f43;\n color: #fff;\n border: none;\n border-radius: 8px;\n font-size: 24px;\n cursor: pointer;\n}\n.user-search-clear[data-v-69099b55]:hover {\n background: #ff8920;\n}\n.user-search-info[data-v-69099b55] {\n font-size: 22px;\n color: #555;\n}\n.user-list-scroll[data-v-69099b55] {\n flex: 1 1 auto;\n overflow-y: auto;\n padding: 32px 64px 0 64px;\n}\n.user-list-grid[data-v-69099b55] {\n display: grid;\n grid-template-columns: repeat(auto-fill,minmax(200px,1fr));\n gap: 22px 22px;\n}\n.user-list-btn[data-v-69099b55] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 2px;\n padding: 10px 10px;\n height: 100px;\n font-size: 30px;\n background: #00a2e9;\n color: #fff;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n box-sizing: border-box;\n word-break: break-word;\n}\n.user-list-btn .user-code[data-v-69099b55] {\n font-weight: 700;\n font-size: 36px;\n line-height: 1.1;\n}\n.user-list-btn .user-name[data-v-69099b55] {\n font-size: 32px;\n line-height: 1.1;\n}\n.user-list-btn.selected[data-v-69099b55] {\n background: #0072c9;\n box-shadow: 0 0 0 3px rgba(255,255,255,.6) inset;\n}\n.user-list-btn[data-v-69099b55]:hover {\n background: #008ed0;\n}\n.no-user-result[data-v-69099b55] {\n padding: 40px 0;\n text-align: center;\n font-size: 28px;\n color: #666;\n}\n.user-popup-footer[data-v-69099b55] {\n flex-shrink: 0;\n padding: 24px 64px 32px 64px;\n background: #fff;\n text-align: center;\n}\n.clean-btn[data-v-69099b55] {\n width: 24%;\n padding: 10px 0;\n color: #fff;\n font-size: 20px;\n border: none;\n text-align: center;\n cursor: pointer;\n border-radius: 0.6vw;\n background: #007aff;\n}\n.clean-btn.wide-btn[data-v-69099b55] {\n width: 30%;\n font-size: 22px;\n padding: 12px 0;\n}\n.clean-btn[data-v-69099b55]:hover {\n background: #0062c9;\n}\n", ""]);
// Exports
module.exports = exports;
@@ -10177,7 +10193,11 @@
),
_c(
"uni-view",
- { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } },
+ {
+ staticClass: _vm._$g(3, "sc"),
+ class: _vm._$g(3, "c"),
+ attrs: { _i: 3 },
+ },
[
_c(
"uni-view",
@@ -10202,11 +10222,7 @@
),
_c(
"table",
- {
- staticClass: _vm._$g(7, "sc"),
- class: _vm._$g(7, "c"),
- attrs: { _i: 7 },
- },
+ { staticClass: _vm._$g(7, "sc"), attrs: { _i: 7 } },
[
_c(
"thead",
@@ -10468,8 +10484,24 @@
_vm._v(
"杩樻湁 " +
_vm._$g(54, "t0-0") +
- ' 鏉¤褰曪紝鐐瑰嚮"灞曞紑"鎸夐挳鏌ョ湅鍏ㄩ儴'
+ " 鏉¤褰曪紝鐐瑰嚮"
),
+ ]),
+ _c(
+ "v-uni-button",
+ {
+ staticClass: _vm._$g(55, "sc"),
+ attrs: { _i: 55 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [_vm._v("灞曞紑")]
+ ),
+ _c("span", { attrs: { _i: 56 } }, [
+ _vm._v("鎸夐挳鏌ョ湅鍏ㄩ儴"),
]),
],
1
@@ -10489,83 +10521,83 @@
),
_c(
"uni-view",
- { staticClass: _vm._$g(55, "sc"), attrs: { _i: 55 } },
+ {
+ staticClass: _vm._$g(57, "sc"),
+ class: _vm._$g(57, "c"),
+ attrs: { _i: 57 },
+ },
[
_c(
"uni-view",
- { staticClass: _vm._$g(56, "sc"), attrs: { _i: 56 } },
+ { staticClass: _vm._$g(58, "sc"), attrs: { _i: 58 } },
[
- _c("h3", { attrs: { _i: 57 } }, [_vm._v("宸ュ崟棣栨璁板綍")]),
+ _c("h3", { attrs: { _i: 59 } }, [_vm._v("宸ュ崟棣栨璁板綍")]),
_c(
"v-uni-button",
{
- staticClass: _vm._$g(58, "sc"),
- attrs: { _i: 58 },
+ staticClass: _vm._$g(60, "sc"),
+ attrs: { _i: 60 },
on: {
click: function ($event) {
return _vm.$handleViewEvent($event)
},
},
},
- [_vm._v(_vm._$g(58, "t0-0"))]
+ [_vm._v(_vm._$g(60, "t0-0"))]
),
],
1
),
_c(
"table",
- {
- staticClass: _vm._$g(59, "sc"),
- class: _vm._$g(59, "c"),
- attrs: { _i: 59 },
- },
+ { staticClass: _vm._$g(61, "sc"), attrs: { _i: 61 } },
[
_c(
"thead",
- { attrs: { _i: 60 } },
+ { attrs: { _i: 62 } },
[
_c(
"tr",
- { attrs: { _i: 61 } },
+ { attrs: { _i: 63 } },
[
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 62 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 64 } },
[_vm._v("妫�楠屽崟鍙�")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 63 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 65 } },
[_vm._v("妫�楠屼汉鍛�")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 64 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 66 } },
[_vm._v("妫�楠屾棩鏈�")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 65 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 67 } },
[_vm._v("鏈哄彴缂栧彿")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 66 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 68 } },
[_vm._v("鎻愪氦鏍囪瘑")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 67 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 69 } },
[_vm._v("妫�楠岀粨鏋�")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 68 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 70 } },
[_vm._v("浣滃簾鏍囪瘑")]
),
_c(
"th",
- { staticStyle: { width: "10%" }, attrs: { _i: 69 } },
+ { staticStyle: { width: "10%" }, attrs: { _i: 71 } },
[_vm._v("澶囨敞")]
),
],
@@ -10576,23 +10608,17 @@
),
_c(
"tbody",
- { attrs: { _i: 70 } },
+ { attrs: { _i: 72 } },
[
- _vm._l(_vm._$g(71, "f"), function (item, idx, $21, $31) {
+ _vm._l(_vm._$g(73, "f"), function (item, idx, $21, $31) {
return _c(
"tr",
{
key: item,
- class: _vm._$g("71-" + $31, "c"),
- attrs: { _i: "71-" + $31 },
+ class: _vm._$g("73-" + $31, "c"),
+ attrs: { _i: "73-" + $31 },
},
[
- _c("td", { attrs: { _i: "72-" + $31 } }, [
- _vm._v(_vm._$g("72-" + $31, "t0-0")),
- ]),
- _c("td", { attrs: { _i: "73-" + $31 } }, [
- _vm._v(_vm._$g("73-" + $31, "t0-0")),
- ]),
_c("td", { attrs: { _i: "74-" + $31 } }, [
_vm._v(_vm._$g("74-" + $31, "t0-0")),
]),
@@ -10608,48 +10634,70 @@
_c("td", { attrs: { _i: "78-" + $31 } }, [
_vm._v(_vm._$g("78-" + $31, "t0-0")),
]),
+ _c("td", { attrs: { _i: "79-" + $31 } }, [
+ _vm._v(_vm._$g("79-" + $31, "t0-0")),
+ ]),
+ _c("td", { attrs: { _i: "80-" + $31 } }, [
+ _vm._v(_vm._$g("80-" + $31, "t0-0")),
+ ]),
_c(
"td",
{
- staticClass: _vm._$g("79-" + $31, "sc"),
- attrs: { _i: "79-" + $31 },
+ staticClass: _vm._$g("81-" + $31, "sc"),
+ attrs: { _i: "81-" + $31 },
},
- [_vm._v(_vm._$g("79-" + $31, "t0-0"))]
+ [_vm._v(_vm._$g("81-" + $31, "t0-0"))]
),
],
1
)
}),
- _vm._$g(80, "i")
+ _vm._$g(82, "i")
? _c(
"tr",
- { attrs: { _i: 80 } },
+ { attrs: { _i: 82 } },
[
- _c("td", { attrs: { colspan: "10", _i: 81 } }, [
+ _c("td", { attrs: { colspan: "10", _i: 83 } }, [
_vm._v("鏆傛棤棣栨璁板綍"),
]),
],
1
)
: _vm._e(),
- _vm._$g(82, "i")
+ _vm._$g(84, "i")
? _c(
"tr",
- { attrs: { _i: 82 } },
+ { attrs: { _i: 84 } },
[
_c(
"td",
{
- staticClass: _vm._$g(83, "sc"),
- attrs: { colspan: "10", _i: 83 },
+ staticClass: _vm._$g(85, "sc"),
+ attrs: { colspan: "10", _i: 85 },
},
[
- _c("span", { attrs: { _i: 84 } }, [
+ _c("span", { attrs: { _i: 86 } }, [
_vm._v(
"杩樻湁 " +
- _vm._$g(84, "t0-0") +
- ' 鏉¤褰曪紝鐐瑰嚮"灞曞紑"鎸夐挳鏌ョ湅鍏ㄩ儴'
+ _vm._$g(86, "t0-0") +
+ " 鏉¤褰曪紝鐐瑰嚮"
),
+ ]),
+ _c(
+ "v-uni-button",
+ {
+ staticClass: _vm._$g(87, "sc"),
+ attrs: { _i: 87 },
+ on: {
+ click: function ($event) {
+ return _vm.$handleViewEvent($event)
+ },
+ },
+ },
+ [_vm._v("灞曞紑")]
+ ),
+ _c("span", { attrs: { _i: 88 } }, [
+ _vm._v("鎸夐挳鏌ョ湅鍏ㄩ儴"),
]),
],
1
@@ -10765,7 +10813,7 @@
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 13);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
-exports.push([module.i, "\n.page[data-v-37e63344] {\n padding: 8px 12px; /* 鍑忓皯涓婁笅鍐呰竟璺� */\n display: flex;\n flex-direction: column;\n gap: 8px; /* 鍑忓皯涓や釜琛ㄦ牸涔嬮棿鐨勯棿璺� */\n}\n.button-row[data-v-37e63344] {\n display: flex;\n justify-content: center;\n margin: 0.5vh 0; /* 鍑忓皯涓婁笅杈硅窛 */\n}\n.save-btn[data-v-37e63344] {\n width: 20%;\n padding: 1.5vh;\n background-color: #00A2E9;\n color: white;\n border: none;\n text-align: center;\n border-radius: 4px;\n transition: all 0.3s;\n font-size: 22px;\n font-weight: 500;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n.save-btn[data-v-37e63344]:hover {\n background-color: #40a9ff;\n}\n.save-btn[data-v-37e63344]:active {\n background-color: #096dd9;\n}\n.save-btn[data-v-37e63344]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* 琛ㄦ牸瀹瑰櫒鏍峰紡 */\n.table-section[data-v-37e63344] {\n display: flex;\n flex-direction: column;\n margin: 0;\n overflow-x: auto;\n width: 100%;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n background: #fff;\n}\n.table-header[data-v-37e63344] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e8e8e8;\n}\n.table-header h3[data-v-37e63344] {\n margin: 0;\n font-size: 24px;\n color: #333;\n font-weight: 600;\n}\n.expand-btn[data-v-37e63344] {\n padding: 8px 20px;\n background-color: #52c41a;\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 20px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.expand-btn[data-v-37e63344]:hover {\n background-color: #73d13d;\n}\n.expand-btn[data-v-37e63344]:active {\n background-color: #389e0d;\n}\n\n/* 琛ㄦ牸鏍峰紡 */\ntable.styled-table[data-v-37e63344] {\n max-width: 1800px;\n width: 98vw;\n margin: 0 auto;\n border-collapse: separate;\n border-spacing: 0;\n border: 2px solid #bfbfbf;\n background: #fff;\n overflow: hidden;\n box-shadow: 0 2px 12px rgba(0,0,0,0.06);\n max-height: 180px; /* 璋冩暣楂樺害浣块〉闈㈤ケ婊� */\n display: block;\n overflow-y: hidden;\n transition: max-height 0.3s ease;\n}\ntable.styled-table.expanded[data-v-37e63344] {\n max-height: 400px; /* 灞曞紑鏃剁殑楂樺害 */\n overflow-y: auto;\n}\ntable.styled-table thead[data-v-37e63344] {\n display: table;\n width: 100%;\n table-layout: fixed;\n}\ntable.styled-table thead th[data-v-37e63344] {\n background: #fafafa;\n border-bottom: 2px solid #bfbfbf;\n padding: 16px 10px;\n font-weight: bold;\n text-align: center;\n font-size: 22px;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 10;\n}\ntable.styled-table tbody[data-v-37e63344] {\n display: block;\n max-height: calc(180px - 50px); /* 鍑忓幓琛ㄥご楂樺害 */\n overflow-y: hidden;\n}\ntable.styled-table.expanded tbody[data-v-37e63344] {\n max-height: calc(400px - 50px);\n overflow-y: auto;\n}\ntable.styled-table tbody tr[data-v-37e63344] {\n display: table;\n width: 100%;\n table-layout: fixed;\n}\ntable.styled-table tbody td[data-v-37e63344] {\n border-bottom: 1px solid #e8e8e8;\n padding: 14px 10px;\n vertical-align: middle;\n text-align: center;\n font-size: 22px;\n}\ntable.styled-table tbody .left[data-v-37e63344] {\n text-align: left;\n padding-left: 8px;\n}\n.row-odd[data-v-37e63344] {\n background: #fff;\n}\n.row-odd + tr[data-v-37e63344] {\n background: #fafafa;\n}\n.num[data-v-37e63344] {\n text-align: center;\n padding-right: 0;\n font-variant-numeric: tabular-nums;\n}\n.warn-cell[data-v-37e63344] {\n color: #d93025;\n font-weight: bold;\n}\n.ok-cell[data-v-37e63344] {\n color: #333;\n}\n.warn-badge[data-v-37e63344] {\n display: inline-block;\n background: #ff4d4f;\n color: #fff;\n padding: 2px 6px;\n border-radius: 3px;\n font-weight: bold;\n}\n.more-records-tip[data-v-37e63344] {\n text-align: center;\n color: #666;\n font-size: 18px;\n padding: 20px !important;\n background-color: #f9f9f9;\n}\n.more-records-tip span[data-v-37e63344] {\n display: inline-block;\n padding: 5px 15px;\n background-color: #f0f0f0;\n border-radius: 4px;\n border: 1px dashed #ccc;\n}\n\n/* 鍝嶅簲寮忚皟鏁� */\n@media (max-width: 1200px) {\n.save-btn[data-v-37e63344] {\n width: 30%;\n}\n.table-header[data-v-37e63344] {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n}\n.expand-btn[data-v-37e63344] {\n align-self: flex-end;\n}\n}\n", ""]);
+exports.push([module.i, "\n.page[data-v-37e63344] {\n padding: 8px 12px; /* 鍑忓皯涓婁笅鍐呰竟璺� */\n display: flex;\n flex-direction: column;\n gap: 8px; /* 鍑忓皯涓や釜琛ㄦ牸涔嬮棿鐨勯棿璺� */\n}\n.button-row[data-v-37e63344] {\n display: flex;\n justify-content: center;\n margin: 0.5vh 0; /* 鍑忓皯涓婁笅杈硅窛 */\n}\n.save-btn[data-v-37e63344] {\n width: 20%;\n padding: 1.5vh;\n background-color: #00A2E9;\n color: white;\n border: none;\n text-align: center;\n border-radius: 4px;\n transition: all 0.3s;\n font-size: 22px;\n font-weight: 500;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n.save-btn[data-v-37e63344]:hover {\n background-color: #40a9ff;\n}\n.save-btn[data-v-37e63344]:active {\n background-color: #096dd9;\n}\n.save-btn[data-v-37e63344]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* 琛ㄦ牸瀹瑰櫒鏍峰紡 */\n.table-section[data-v-37e63344] {\n display: flex;\n flex-direction: column;\n margin: 0;\n overflow: auto; /* 缁熶竴婊氬姩鏉� */\n width: 100%;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n background: #fff;\n max-height: 220px; /* 榛樿楂樺害 */\n transition: max-height 0.3s ease;\n}\n.table-header[data-v-37e63344] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e8e8e8;\n}\n.table-header h3[data-v-37e63344] {\n margin: 0;\n font-size: 24px;\n color: #333;\n font-weight: 600;\n}\n.expand-btn[data-v-37e63344] {\n padding: 8px 20px;\n background-color: #52c41a;\n color: white;\n border: none;\n border-radius: 4px;\n font-size: 20px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.expand-btn[data-v-37e63344]:hover {\n background-color: #73d13d;\n}\n.expand-btn[data-v-37e63344]:active {\n background-color: #389e0d;\n}\n\n/* 琛ㄦ牸鏍峰紡 */\ntable.styled-table[data-v-37e63344] {\n max-width: 1800px;\n width: 98vw;\n margin: 0;\n border-collapse: separate;\n border-spacing: 0;\n border: 2px solid #bfbfbf;\n background: #fff;\n box-shadow: 0 2px 12px rgba(0,0,0,0.06);\n}\ntable.styled-table thead th[data-v-37e63344] {\n background: #fafafa;\n border-bottom: 2px solid #bfbfbf;\n padding: 16px 10px;\n font-weight: bold;\n text-align: center;\n font-size: 22px;\n position: -webkit-sticky;\n position: sticky; /* 琛ㄥご缃《 */\n top: 0;\n z-index: 10;\n}\ntable.styled-table tbody td[data-v-37e63344] {\n border-bottom: 1px solid #e8e8e8;\n padding: 14px 10px;\n vertical-align: middle;\n text-align: center;\n font-size: 22px;\n}\n\n/* 灞曞紑鐘舵�� - 鍙敼鍙樺鍣ㄩ珮搴� */\n.table-section.expanded[data-v-37e63344] {\n max-height: 450px; /* 灞曞紑鏃剁殑瀹瑰櫒楂樺害 */\n}\ntable.styled-table tbody .left[data-v-37e63344] {\n text-align: left;\n padding-left: 8px;\n}\n.row-odd[data-v-37e63344] {\n background: #fff;\n}\n.row-odd + tr[data-v-37e63344] {\n background: #fafafa;\n}\n.num[data-v-37e63344] {\n text-align: center;\n padding-right: 0;\n font-variant-numeric: tabular-nums;\n}\n.warn-cell[data-v-37e63344] {\n color: #d93025;\n font-weight: bold;\n}\n.ok-cell[data-v-37e63344] {\n color: #333;\n}\n.warn-badge[data-v-37e63344] {\n display: inline-block;\n background: #ff4d4f;\n color: #fff;\n padding: 2px 6px;\n border-radius: 3px;\n font-weight: bold;\n}\n.more-records-tip[data-v-37e63344] {\n text-align: center;\n color: #666;\n font-size: 18px;\n padding: 20px !important;\n background-color: #f9f9f9;\n}\n.more-records-tip span[data-v-37e63344] {\n display: inline;\n font-size: 20px;\n color: #666;\n}\n\n/* 琛屽唴灞曞紑鎸夐挳鏍峰紡 - 钃濊壊 */\n.inline-expand-btn[data-v-37e63344] {\n display: inline-block;\n padding: 2px 12px; /* 鍑忓皬鍐呰竟璺�,涓庢枃瀛楅珮搴︿竴鑷� */\n margin: 0 6px;\n background-color: #00A2E9; /* 钃濊壊 */\n color: white;\n border: none;\n border-radius: 3px;\n font-size: 20px; /* 涓庢彁绀烘枃瀛楀ぇ灏忎竴鑷� */\n font-weight: 500;\n cursor: pointer;\n transition: all 0.3s;\n box-shadow: 0 2px 4px rgba(0, 162, 233, 0.2);\n vertical-align: baseline; /* 涓庢枃瀛楀熀绾垮榻� */\n line-height: 1.2; /* 鎺у埗琛岄珮 */\n}\n.inline-expand-btn[data-v-37e63344]:hover {\n background-color: #40a9ff; /* 鎮仠鏃跺彉娣� */\n box-shadow: 0 4px 8px rgba(0, 162, 233, 0.3);\n -webkit-transform: translateY(-1px);\n transform: translateY(-1px);\n}\n.inline-expand-btn[data-v-37e63344]:active {\n background-color: #096dd9; /* 鐐瑰嚮鏃跺彉娣� */\n -webkit-transform: translateY(0);\n transform: translateY(0);\n}\n\n/* 鍝嶅簲寮忚皟鏁� */\n@media (max-width: 1200px) {\n.save-btn[data-v-37e63344] {\n width: 30%;\n}\n.table-header[data-v-37e63344] {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n}\n.expand-btn[data-v-37e63344] {\n align-self: flex-end;\n}\n}\n", ""]);
// Exports
module.exports = exports;
--
Gitblit v1.9.3