ci: auto build & obfuscate [2026-04-08 21:17:22] (Jenkins #12)

This commit is contained in:
Jenkins CI
2026-04-08 21:17:22 +08:00
parent 1fdbe62142
commit bddda1802f
11 changed files with 99 additions and 64 deletions

View File

@@ -46,7 +46,7 @@ import { renderTables } from '../../ui/table-bindings.js';
async function processMessageUpdate(messageId) {
TableManager.clearHighlights();
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
const tableSystemEnabled = settings.table_system_enabled !== false;
if (!tableSystemEnabled) {
log('【表格服务】表格系统总开关已关闭,跳过所有表格处理。', 'info');

View File

@@ -22,7 +22,7 @@ const MAX_RETRIES = 2;
async function getWorldBookContext() {
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
if (!settings.table_worldbook_enabled) {
return '';
}
@@ -114,7 +114,7 @@ function updateButtonState(state, batchNum = 0, attemptNum = 0) {
async function callTableModel(messages) {
try {
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
if (settings.nccsEnabled) {
log('使用 Nccs API 进行表格填充...', 'info');
@@ -141,7 +141,7 @@ async function callTableModel(messages) {
function getRawMessagesForSummary(startFloor, endFloor) {
const context = getContext();
const chat = context.chat;
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
const historySlice = chat.slice(startFloor - 1, endFloor);
if (historySlice.length === 0) return null;
@@ -319,7 +319,7 @@ export function startBatchFilling() {
const button = fillButton();
if (!button) return;
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
const tableSystemEnabled = settings.table_system_enabled !== false;
if (!tableSystemEnabled) {
log('表格系统总开关已关闭,跳过批量填表。', 'info');
@@ -387,7 +387,7 @@ export function startBatchFilling() {
export async function startFloorRangeFilling(startFloor, endFloor) {
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
const tableSystemEnabled = settings.table_system_enabled !== false;
if (!tableSystemEnabled) {
log('表格系统总开关已关闭,跳过楼层填表。', 'info');

View File

@@ -1264,7 +1264,7 @@ export function getAiFlowTemplateForInjection() {
}
export async function updateTableFromText(textContent, options = {}) {
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
if (settings.table_system_enabled === false) {
log('表格系统总开关已关闭,跳过 <Amily2Edit> 标签处理。', 'info');
return;
@@ -1575,7 +1575,7 @@ export async function rollbackState() {
export async function rollbackAndRefill() {
// 检查表格系统总开关
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
if (settings.table_system_enabled === false) {
log('表格系统总开关已关闭,跳过回退填表。', 'info');
toastr.info('表格系统总开关已关闭,无法执行回退填表。');

View File

@@ -8,7 +8,7 @@ import { callAI, generateRandomSeed } from '../api.js';
import { callNccsAI } from '../api/NccsApi.js';
export async function reorganizeTableContent(selectedTableIndices) {
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
if (settings.table_system_enabled === false) {
toastr.warning('表格系统总开关已关闭。');

View File

@@ -13,7 +13,7 @@ import { safeLorebookEntries } from '../tavernhelper-compatibility.js';
async function getWorldBookContext() {
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
if (!settings.table_worldbook_enabled) {
return '';
@@ -67,7 +67,7 @@ async function getWorldBookContext() {
export async function fillWithSecondaryApi(latestMessage, forceRun = false) {
clearHighlights();
const settings = extension_settings[extensionName];
const settings = extension_settings[extensionName] || {};
// 总开关关闭时,分步填表同样禁用
if (settings.table_system_enabled === false) {

View File

@@ -131,6 +131,7 @@ export {
};
export const tableSystemDefaultSettings = {
table_system_enabled: true,
table_injection_enabled: false,
injection: {

View File

@@ -18,6 +18,18 @@ import { configManager } from '../utils/config/ConfigManager.js';
const isTouchDevice = () => window.matchMedia('(pointer: coarse)').matches;
const getAllTablesContainer = () => document.getElementById('all-tables-container');
function getLiveExtensionSettings() {
if (!extension_settings[extensionName]) {
extension_settings[extensionName] = {};
}
return extension_settings[extensionName];
}
function isTableSystemEnabled() {
return getLiveExtensionSettings().table_system_enabled !== false;
}
let isResizing = false;
let activeTableIndex = 0; // 【V155.0】当前激活的表格索引
@@ -768,7 +780,7 @@ export function renderTables() {
function openTableRuleEditor() {
const settings = extension_settings[extensionName];
const settings = getLiveExtensionSettings();
const tags = settings.table_tags_to_extract || '';
const exclusionRules = settings.table_exclusion_rules || [];
@@ -1011,8 +1023,6 @@ function openRuleEditor(tableIndex) {
function bindInjectionSettings() {
const settings = extension_settings[extensionName];
const masterSwitchCheckbox = document.getElementById('table-system-master-switch');
const enabledCheckbox = document.getElementById('table-injection-enabled');
const optimizationCheckbox = document.getElementById('context-optimization-enabled'); // 【V144.0】
@@ -1024,6 +1034,15 @@ function bindInjectionSettings() {
return;
}
const getLiveSettings = () => {
const liveSettings = getLiveExtensionSettings();
if (!liveSettings.injection) {
liveSettings.injection = { position: 1, depth: 0, role: 0 };
}
return liveSettings;
};
const updateInjectionUI = () => {
const position = positionSelect.value;
const masterEnabled = masterSwitchCheckbox.checked;
@@ -1077,6 +1096,7 @@ function bindInjectionSettings() {
}
};
const settings = getLiveSettings();
masterSwitchCheckbox.checked = settings.table_system_enabled !== false;
enabledCheckbox.checked = settings.table_injection_enabled;
if (optimizationCheckbox) { // 【V144.0】
@@ -1095,7 +1115,8 @@ function bindInjectionSettings() {
if (masterSwitchCheckbox.dataset.eventsBound) return;
masterSwitchCheckbox.addEventListener('change', () => {
settings.table_system_enabled = masterSwitchCheckbox.checked;
const currentSettings = getLiveSettings();
currentSettings.table_system_enabled = masterSwitchCheckbox.checked;
saveSettingsDebounced();
updateInjectionUI();
@@ -1105,35 +1126,40 @@ function bindInjectionSettings() {
});
enabledCheckbox.addEventListener('change', () => {
settings.table_injection_enabled = enabledCheckbox.checked;
const currentSettings = getLiveSettings();
currentSettings.table_injection_enabled = enabledCheckbox.checked;
saveSettingsDebounced();
});
// 【V144.0】
if (optimizationCheckbox) {
optimizationCheckbox.addEventListener('change', () => {
settings.context_optimization_enabled = optimizationCheckbox.checked;
const currentSettings = getLiveSettings();
currentSettings.context_optimization_enabled = optimizationCheckbox.checked;
saveSettingsDebounced();
toastr.info(`上下文优化(世界书合并)已${optimizationCheckbox.checked ? '启用' : '禁用'}`);
});
}
positionSelect.addEventListener('change', () => {
settings.injection.position = parseInt(positionSelect.value, 10);
const currentSettings = getLiveSettings();
currentSettings.injection.position = parseInt(positionSelect.value, 10);
saveSettingsDebounced();
updateInjectionUI();
});
depthInput.addEventListener('input', () => {
settings.injection.depth = parseInt(depthInput.value, 10);
const currentSettings = getLiveSettings();
currentSettings.injection.depth = parseInt(depthInput.value, 10);
saveSettingsDebounced();
});
roleRadioGroup.forEach(radio => {
radio.addEventListener('change', () => {
if (radio.checked) {
settings.injection.role = parseInt(radio.value, 10);
const currentSettings = getLiveSettings();
currentSettings.injection.role = parseInt(radio.value, 10);
saveSettingsDebounced();
}
});
@@ -1145,15 +1171,12 @@ function bindInjectionSettings() {
function updateAndSaveTableSetting(key, value) {
if (!extension_settings[extensionName]) {
extension_settings[extensionName] = {};
}
extension_settings[extensionName][key] = value;
getLiveExtensionSettings()[key] = value;
saveSettingsDebounced();
}
function bindWorldBookSettings() {
const settings = extension_settings[extensionName];
const settings = getLiveExtensionSettings();
if (settings.table_worldbook_enabled === undefined) settings.table_worldbook_enabled = false;
if (settings.table_worldbook_char_limit === undefined) settings.table_worldbook_char_limit = 30000;
@@ -1176,6 +1199,7 @@ function bindWorldBookSettings() {
}
const saveSelectedEntries = () => {
const currentSettings = getLiveExtensionSettings();
const selected = {};
entryListContainer.querySelectorAll('input[type="checkbox"]:checked').forEach(cb => {
const book = cb.dataset.book;
@@ -1185,17 +1209,18 @@ function bindWorldBookSettings() {
}
selected[book].push(uid);
});
settings.table_selected_entries = selected;
currentSettings.table_selected_entries = selected;
saveSettingsDebounced();
};
const renderWorldBookEntries = async () => {
entryListContainer.innerHTML = '<p>加载条目中...</p>';
const source = settings.table_worldbook_source || 'character';
const currentSettings = getLiveExtensionSettings();
const source = currentSettings.table_worldbook_source || 'character';
let bookNames = [];
if (source === 'manual') {
bookNames = settings.table_selected_worldbooks || [];
bookNames = currentSettings.table_selected_worldbooks || [];
} else {
if (this_chid !== undefined && this_chid >= 0 && characters[this_chid]) {
try {
@@ -1242,7 +1267,7 @@ function bindWorldBookSettings() {
checkbox.dataset.book = entry.bookName;
checkbox.dataset.uid = entry.uid;
const isChecked = settings.table_selected_entries[entry.bookName]?.includes(String(entry.uid));
const isChecked = currentSettings.table_selected_entries[entry.bookName]?.includes(String(entry.uid));
checkbox.checked = !!isChecked;
const label = document.createElement('label');
@@ -1272,15 +1297,16 @@ function bindWorldBookSettings() {
checkbox.type = 'checkbox';
checkbox.id = `wb-check-${book.file_name}`;
checkbox.value = book.file_name;
checkbox.checked = settings.table_selected_worldbooks.includes(book.file_name);
checkbox.checked = getLiveExtensionSettings().table_selected_worldbooks.includes(book.file_name);
checkbox.addEventListener('change', () => {
const currentSettings = getLiveExtensionSettings();
if (checkbox.checked) {
if (!settings.table_selected_worldbooks.includes(book.file_name)) {
settings.table_selected_worldbooks.push(book.file_name);
if (!currentSettings.table_selected_worldbooks.includes(book.file_name)) {
currentSettings.table_selected_worldbooks.push(book.file_name);
}
} else {
settings.table_selected_worldbooks = settings.table_selected_worldbooks.filter(name => name !== book.file_name);
currentSettings.table_selected_worldbooks = currentSettings.table_selected_worldbooks.filter(name => name !== book.file_name);
}
saveSettingsDebounced();
renderWorldBookEntries();
@@ -1301,7 +1327,7 @@ function bindWorldBookSettings() {
};
const updateManualSelectVisibility = () => {
const isManual = settings.table_worldbook_source === 'manual';
const isManual = getLiveExtensionSettings().table_worldbook_source === 'manual';
manualSelectWrapper.style.display = isManual ? 'block' : 'none';
renderWorldBookEntries();
if (isManual) {
@@ -1321,20 +1347,23 @@ function bindWorldBookSettings() {
if (enabledCheckbox.dataset.eventsBound) return;
enabledCheckbox.addEventListener('change', () => {
settings.table_worldbook_enabled = enabledCheckbox.checked;
const currentSettings = getLiveExtensionSettings();
currentSettings.table_worldbook_enabled = enabledCheckbox.checked;
saveSettingsDebounced();
});
limitSlider.addEventListener('input', () => { limitValueSpan.textContent = limitSlider.value; });
limitSlider.addEventListener('change', () => {
settings.table_worldbook_char_limit = parseInt(limitSlider.value, 10);
const currentSettings = getLiveExtensionSettings();
currentSettings.table_worldbook_char_limit = parseInt(limitSlider.value, 10);
saveSettingsDebounced();
});
sourceRadios.forEach(radio => {
radio.addEventListener('change', () => {
if (radio.checked) {
settings.table_worldbook_source = radio.value;
const currentSettings = getLiveExtensionSettings();
currentSettings.table_worldbook_source = radio.value;
updateManualSelectVisibility();
saveSettingsDebounced();
}
@@ -1685,7 +1714,7 @@ export function bindTableEvents() {
renderAll();
setTimeout(() => {
const settings = extension_settings[extensionName];
const settings = getLiveExtensionSettings();
if (settings && settings.table_worldbook_enabled) {
try {
bindWorldBookSettings();
@@ -1704,8 +1733,7 @@ function bindBatchFillButton() {
if (fillButton.dataset.batchEventBound) return;
fillButton.addEventListener('click', (event) => {
const settings = extension_settings[extensionName];
const tableSystemEnabled = settings.table_system_enabled !== false;
const tableSystemEnabled = isTableSystemEnabled();
if (!tableSystemEnabled) {
event.preventDefault();
@@ -1728,8 +1756,7 @@ function bindReorganizeButton() {
if (reorganizeBtn.dataset.reorganizeEventBound) return;
reorganizeBtn.addEventListener('click', async (event) => {
const settings = extension_settings[extensionName];
const tableSystemEnabled = settings.table_system_enabled !== false;
const tableSystemEnabled = isTableSystemEnabled();
if (!tableSystemEnabled) {
event.preventDefault();
@@ -1843,8 +1870,7 @@ function bindFloorFillButtons() {
if (selectedFloorsBtn.dataset.floorEventBound) return;
selectedFloorsBtn.addEventListener('click', (event) => {
const settings = extension_settings[extensionName];
const tableSystemEnabled = settings.table_system_enabled !== false;
const tableSystemEnabled = isTableSystemEnabled();
if (!tableSystemEnabled) {
event.preventDefault();
@@ -1886,8 +1912,7 @@ function bindFloorFillButtons() {
if (currentFloorBtn.dataset.currentEventBound) return;
currentFloorBtn.addEventListener('click', (event) => {
const settings = extension_settings[extensionName];
const tableSystemEnabled = settings.table_system_enabled !== false;
const tableSystemEnabled = isTableSystemEnabled();
if (!tableSystemEnabled) {
event.preventDefault();
@@ -1908,8 +1933,7 @@ function bindFloorFillButtons() {
if (rollbackBtn.dataset.rollbackEventBound) return;
rollbackBtn.addEventListener('click', async (event) => {
const settings = extension_settings[extensionName];
const tableSystemEnabled = settings.table_system_enabled !== false;
const tableSystemEnabled = isTableSystemEnabled();
if (!tableSystemEnabled) {
event.preventDefault();
@@ -1989,7 +2013,7 @@ function bindTemplateEditors() {
}
function bindNccsApiEvents() {
const settings = extension_settings[extensionName];
const settings = getLiveExtensionSettings();
if (settings.nccsEnabled === undefined) settings.nccsEnabled = false;
if (settings.nccsFakeStreamEnabled === undefined) settings.nccsFakeStreamEnabled = false;
@@ -2057,21 +2081,24 @@ function bindNccsApiEvents() {
updateModeBasedVisibility();
enabledToggle.addEventListener('change', () => {
settings.nccsEnabled = enabledToggle.checked;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsEnabled = enabledToggle.checked;
saveSettingsDebounced();
updateConfigVisibility();
log(`Nccs API ${enabledToggle.checked ? '已启用' : '已禁用'}`, 'info');
});
enabledFakeStreamToggle.addEventListener('change', () => {
settings.nccsFakeStreamEnabled = enabledFakeStreamToggle.checked;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsFakeStreamEnabled = enabledFakeStreamToggle.checked;
saveSettingsDebounced();
log(`Nccs API FakeStream ${enabledFakeStreamToggle.checked ? 'Enabled' : 'Disabled'}`, 'info');
});
if (modeSelect) {
modeSelect.addEventListener('change', () => {
settings.nccsApiMode = modeSelect.value;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsApiMode = modeSelect.value;
saveSettingsDebounced();
updateModeBasedVisibility();
log(`Nccs API模式已切换为: ${modeSelect.value}`, 'info');
@@ -2080,7 +2107,8 @@ function bindNccsApiEvents() {
if (urlInput) {
const saveUrl = () => {
settings.nccsApiUrl = urlInput.value;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsApiUrl = urlInput.value;
saveSettingsDebounced();
};
@@ -2097,7 +2125,8 @@ function bindNccsApiEvents() {
if (modelInput) {
const saveModel = () => {
settings.nccsModel = modelInput.value;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsModel = modelInput.value;
saveSettingsDebounced();
};
@@ -2107,7 +2136,8 @@ function bindNccsApiEvents() {
if (presetSelect) {
presetSelect.addEventListener('change', () => {
settings.nccsTavernProfile = presetSelect.value;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsTavernProfile = presetSelect.value;
saveSettingsDebounced();
});
}
@@ -2142,7 +2172,8 @@ function bindNccsApiEvents() {
fetchModelsButton.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 获取中...';
if (urlInput) {
settings.nccsApiUrl = urlInput.value;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsApiUrl = urlInput.value;
saveSettingsDebounced();
}
if (keyInput) {
@@ -2176,7 +2207,8 @@ function bindNccsApiEvents() {
modelSelect.addEventListener('change', () => {
const selectedModel = modelSelect.value;
settings.nccsModel = selectedModel;
const currentSettings = getLiveExtensionSettings();
currentSettings.nccsModel = selectedModel;
modelInput.value = selectedModel;
saveSettingsDebounced();
});
@@ -2243,7 +2275,7 @@ function bindNccsApiEvents() {
}
function bindChatTableDisplaySetting() {
const settings = extension_settings[extensionName];
const settings = getLiveExtensionSettings();
const showInChatToggle = document.getElementById('show-table-in-chat-toggle');
const continuousRenderToggle = document.getElementById('render-on-every-message-toggle');
@@ -2268,14 +2300,16 @@ function bindChatTableDisplaySetting() {
updateContinuousRenderState();
showInChatToggle.addEventListener('change', () => {
settings.show_table_in_chat = showInChatToggle.checked;
const currentSettings = getLiveExtensionSettings();
currentSettings.show_table_in_chat = showInChatToggle.checked;
saveSettingsDebounced();
toastr.info(`聊天内表格显示已${showInChatToggle.checked ? '开启' : '关闭'}`);
updateContinuousRenderState();
});
continuousRenderToggle.addEventListener('change', () => {
settings.render_on_every_message = continuousRenderToggle.checked;
const currentSettings = getLiveExtensionSettings();
currentSettings.render_on_every_message = continuousRenderToggle.checked;
saveSettingsDebounced();
toastr.info(`持续渲染最新消息功能已${continuousRenderToggle.checked ? '开启' : '关闭'}。请切换聊天以应用更改。`);
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
const a0_0x1479fa=a0_0x7f86;(function(_0x2e9516,_0x52aeec){const _0x429dd7=a0_0x7f86,_0x24e7c5=_0x2e9516();while(!![]){try{const _0x3c1c3e=-parseInt(_0x429dd7(0x191,'vApL'))/0x1*(parseInt(_0x429dd7(0x194,'HR*9'))/0x2)+-parseInt(_0x429dd7(0x19d,'ukkS'))/0x3+-parseInt(_0x429dd7(0x190,'xcc9'))/0x4*(-parseInt(_0x429dd7(0x19a,'HR*9'))/0x5)+-parseInt(_0x429dd7(0x18b,'z(lT'))/0x6*(parseInt(_0x429dd7(0x1a5,'%P4R'))/0x7)+parseInt(_0x429dd7(0x195,'9T43'))/0x8*(parseInt(_0x429dd7(0x189,']TSS'))/0x9)+-parseInt(_0x429dd7(0x196,'MMFL'))/0xa*(parseInt(_0x429dd7(0x18c,'HR*9'))/0xb)+parseInt(_0x429dd7(0x18f,'xGRA'))/0xc;if(_0x3c1c3e===_0x52aeec)break;else _0x24e7c5['push'](_0x24e7c5['shift']());}catch(_0x2e9e11){_0x24e7c5['push'](_0x24e7c5['shift']());}}}(a0_0x1639,0x91125));function a0_0x7f86(_0x34ffc7,_0x2ef194){_0x34ffc7=_0x34ffc7-0x186;const _0x163999=a0_0x1639();let _0x7f8655=_0x163999[_0x34ffc7];if(a0_0x7f86['lXhjGs']===undefined){var _0x3d2b89=function(_0x42a19f){const _0x345f7c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb6f790='',_0x19aa87='';for(let _0x5957a3=0x0,_0x24ac51,_0x31290a,_0x1e8f0a=0x0;_0x31290a=_0x42a19f['charAt'](_0x1e8f0a++);~_0x31290a&&(_0x24ac51=_0x5957a3%0x4?_0x24ac51*0x40+_0x31290a:_0x31290a,_0x5957a3++%0x4)?_0xb6f790+=String['fromCharCode'](0xff&_0x24ac51>>(-0x2*_0x5957a3&0x6)):0x0){_0x31290a=_0x345f7c['indexOf'](_0x31290a);}for(let _0x3c8126=0x0,_0x223212=_0xb6f790['length'];_0x3c8126<_0x223212;_0x3c8126++){_0x19aa87+='%'+('00'+_0xb6f790['charCodeAt'](_0x3c8126)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19aa87);};const _0x14803c=function(_0x255655,_0x4da8f8){let _0x286b75=[],_0x4a5098=0x0,_0x1b5194,_0x576d49='';_0x255655=_0x3d2b89(_0x255655);let _0x438503;for(_0x438503=0x0;_0x438503<0x100;_0x438503++){_0x286b75[_0x438503]=_0x438503;}for(_0x438503=0x0;_0x438503<0x100;_0x438503++){_0x4a5098=(_0x4a5098+_0x286b75[_0x438503]+_0x4da8f8['charCodeAt'](_0x438503%_0x4da8f8['length']))%0x100,_0x1b5194=_0x286b75[_0x438503],_0x286b75[_0x438503]=_0x286b75[_0x4a5098],_0x286b75[_0x4a5098]=_0x1b5194;}_0x438503=0x0,_0x4a5098=0x0;for(let _0x5994fa=0x0;_0x5994fa<_0x255655['length'];_0x5994fa++){_0x438503=(_0x438503+0x1)%0x100,_0x4a5098=(_0x4a5098+_0x286b75[_0x438503])%0x100,_0x1b5194=_0x286b75[_0x438503],_0x286b75[_0x438503]=_0x286b75[_0x4a5098],_0x286b75[_0x4a5098]=_0x1b5194,_0x576d49+=String['fromCharCode'](_0x255655['charCodeAt'](_0x5994fa)^_0x286b75[(_0x286b75[_0x438503]+_0x286b75[_0x4a5098])%0x100]);}return _0x576d49;};a0_0x7f86['uLnfVE']=_0x14803c,a0_0x7f86['VnBLHL']={},a0_0x7f86['lXhjGs']=!![];}const _0x2d157e=_0x163999[0x0],_0x4e93d9=_0x34ffc7+_0x2d157e,_0x57911d=a0_0x7f86['VnBLHL'][_0x4e93d9];return!_0x57911d?(a0_0x7f86['tQVguy']===undefined&&(a0_0x7f86['tQVguy']=!![]),_0x7f8655=a0_0x7f86['uLnfVE'](_0x7f8655,_0x2ef194),a0_0x7f86['VnBLHL'][_0x4e93d9]=_0x7f8655):_0x7f8655=_0x57911d,_0x7f8655;}function a0_0x1639(){const _0x1e2ebe=['sSkZArxcJLJcV8oqkI5A','W4/cMCkeo8kAW6jnWPRdPt4','uCoxu8oMtLPRWR7dKqa','o8kZiCk9W7LwW5/cGSoaAG','WQRdMdDBeeZcNKvbW4q3WQ/dVW','W4NdJNFdI8kzW5FcNKuszCk3qa','W44dz8oWWQJdNXdcHMC','nmkas8kEu3WkWQbCimkdEtmY','zaa4W5xcVb/cL0S','jCkxcmojvwBcR3RdOwddG0S','pWtcUCooygFcMxlcMCofWQ5psq','lSkxc8ohv2ZdVqRdP2ZdPfKvFW','WQZcGMSNucpdJq','ssZcVmkYW6DUW48oW7S','WOPSd1BdTIZcVCoQ','WPqpWRVdGCofF8oRWQ4jsG','W6ddGmkTW6RcL2H9WPK','WOpdUYNdLmkVhG','WQNdMJ9BfKZdSL9HW7SxWPC','W4SWoexdSd/cH8oIWQtcN8kWWRCAWPW','i8k3WPSSnvazAH51','WRuiySkUW5vaWP9eWOxcGmojWOddMq','kCorWRVdOM3dP1RcQ8kQWRhdT1dcTSoLiSkhDf3dK8onWO3cSqOY','W4z2WQRcHJb+fCoA','W5ddPYxdLCk8pue','l1BdHmolzSoxfdhcI8k1','WQZdMdLDrdddR0ntW5K','WRddL2XWxCo9WPxcUCoTCq','WPKHWP/cKJHTmSogC8kE','WQ7dR8oCnexcJmkwWRtcUmkF','D0v2vSkJWR3cJSkXbaa7yW','W5/dHeSRqCo/r8o+lHnupSk2'];a0_0x1639=function(){return _0x1e2ebe;};return a0_0x1639();}export const SENSITIVE_KEYS=new Set([a0_0x1479fa(0x199,'qH3w'),a0_0x1479fa(0x19b,'MMFL'),a0_0x1479fa(0x19e,'vsxg'),a0_0x1479fa(0x1a4,'wq5h'),a0_0x1479fa(0x19c,'Po[W'),a0_0x1479fa(0x18a,'LFk1'),a0_0x1479fa(0x188,'R#TN'),a0_0x1479fa(0x1a1,'oNoj')]);
const a0_0x19caf5=a0_0x19be;function a0_0x704b(){const _0x52d474=['vCktWOddMCoJWOZcNG','psnPW7TkW4hdU1RdMCklW5i','j3NcVNuApmkFabfw','nSkyzmkHCb0','W7tcImoyaZGjfCosmCkiBmob','WPFcGZ7dVCotW4icCW','W5m0W4TrnSoHWRJcTw8FW5FdV8kl','W6DGWRZcGmofW7zfWOZdNSkneXu','W4y4W77cPX4Qe8kZcSoAWOq','cmokh27cJSkOqXO5yNi2W7XslI17FItdISoigWLk','vtFdOG7cOCk2W6P8nYylka','B8kHwqDNWQNcIeNdL8kXW6DZ','WPRcH8o6WO1lpCk9wwddOW','W6xcM3nywYBcPXX2WPe','W6DKWR/cI8oaW7b5WPZdVSkTmJa','d8omW7L1pe7cSmknc8o2W6Pngq','BddcQ1GvaSkLbq','W4SSW7/cIZ4Qe8kNbmog','imomWOpdRmkjbSkuW6JdTmk6W6G','WQyxrmkhWQLPWRb4WRdcJSoJW6HruG','kColWOhdRSkpq8onW5/dSCkyW6ddQmo6','dmkkWOddUIVdRSk6WPrHitBcRa','W7JdJfJdQmofWRanAxddS8kqW4m','uCoiW5BcK8k/W4JcTdtcMmoOw0G','WOJdMfjYvx7cTW'];a0_0x704b=function(){return _0x52d474;};return a0_0x704b();}(function(_0x47544b,_0x12a798){const _0x265831=a0_0x19be,_0xf1cf88=_0x47544b();while(!![]){try{const _0x309d80=parseInt(_0x265831(0x127,'s9Zs'))/0x1+-parseInt(_0x265831(0x110,'s9Zs'))/0x2*(-parseInt(_0x265831(0x11b,'sr@l'))/0x3)+-parseInt(_0x265831(0x11e,'M)h$'))/0x4+-parseInt(_0x265831(0x120,'r7Wy'))/0x5*(-parseInt(_0x265831(0x111,'03GF'))/0x6)+-parseInt(_0x265831(0x124,'*HQN'))/0x7+parseInt(_0x265831(0x117,'M)h$'))/0x8+-parseInt(_0x265831(0x11f,'Hnai'))/0x9;if(_0x309d80===_0x12a798)break;else _0xf1cf88['push'](_0xf1cf88['shift']());}catch(_0x3ef9c2){_0xf1cf88['push'](_0xf1cf88['shift']());}}}(a0_0x704b,0x1f69e));function a0_0x19be(_0x4d0f1b,_0x415410){_0x4d0f1b=_0x4d0f1b-0x110;const _0x704b5d=a0_0x704b();let _0x19be56=_0x704b5d[_0x4d0f1b];if(a0_0x19be['IjrnPV']===undefined){var _0x7f8636=function(_0x3da96e){const _0x30c1c4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5781a0='',_0x5dfde2='';for(let _0x2830f5=0x0,_0x5a412a,_0x119676,_0x32858f=0x0;_0x119676=_0x3da96e['charAt'](_0x32858f++);~_0x119676&&(_0x5a412a=_0x2830f5%0x4?_0x5a412a*0x40+_0x119676:_0x119676,_0x2830f5++%0x4)?_0x5781a0+=String['fromCharCode'](0xff&_0x5a412a>>(-0x2*_0x2830f5&0x6)):0x0){_0x119676=_0x30c1c4['indexOf'](_0x119676);}for(let _0x15ad50=0x0,_0x35621b=_0x5781a0['length'];_0x15ad50<_0x35621b;_0x15ad50++){_0x5dfde2+='%'+('00'+_0x5781a0['charCodeAt'](_0x15ad50)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5dfde2);};const _0x2c9918=function(_0x299231,_0x1535fd){let _0x379af2=[],_0x23d358=0x0,_0x2943b4,_0x1d0275='';_0x299231=_0x7f8636(_0x299231);let _0x23b9f5;for(_0x23b9f5=0x0;_0x23b9f5<0x100;_0x23b9f5++){_0x379af2[_0x23b9f5]=_0x23b9f5;}for(_0x23b9f5=0x0;_0x23b9f5<0x100;_0x23b9f5++){_0x23d358=(_0x23d358+_0x379af2[_0x23b9f5]+_0x1535fd['charCodeAt'](_0x23b9f5%_0x1535fd['length']))%0x100,_0x2943b4=_0x379af2[_0x23b9f5],_0x379af2[_0x23b9f5]=_0x379af2[_0x23d358],_0x379af2[_0x23d358]=_0x2943b4;}_0x23b9f5=0x0,_0x23d358=0x0;for(let _0xd0f58b=0x0;_0xd0f58b<_0x299231['length'];_0xd0f58b++){_0x23b9f5=(_0x23b9f5+0x1)%0x100,_0x23d358=(_0x23d358+_0x379af2[_0x23b9f5])%0x100,_0x2943b4=_0x379af2[_0x23b9f5],_0x379af2[_0x23b9f5]=_0x379af2[_0x23d358],_0x379af2[_0x23d358]=_0x2943b4,_0x1d0275+=String['fromCharCode'](_0x299231['charCodeAt'](_0xd0f58b)^_0x379af2[(_0x379af2[_0x23b9f5]+_0x379af2[_0x23d358])%0x100]);}return _0x1d0275;};a0_0x19be['ylbrJP']=_0x2c9918,a0_0x19be['ngItur']={},a0_0x19be['IjrnPV']=!![];}const _0x272524=_0x704b5d[0x0],_0x436fa3=_0x4d0f1b+_0x272524,_0x1984c1=a0_0x19be['ngItur'][_0x436fa3];return!_0x1984c1?(a0_0x19be['SnOIbC']===undefined&&(a0_0x19be['SnOIbC']=!![]),_0x19be56=a0_0x19be['ylbrJP'](_0x19be56,_0x415410),a0_0x19be['ngItur'][_0x436fa3]=_0x19be56):_0x19be56=_0x1984c1,_0x19be56;}export const SENSITIVE_KEYS=new Set([a0_0x19caf5(0x113,'xOe^'),a0_0x19caf5(0x123,'@P0T'),a0_0x19caf5(0x119,'PFX('),a0_0x19caf5(0x11d,'va)]'),a0_0x19caf5(0x121,'t$HW'),a0_0x19caf5(0x11c,'2NRm'),a0_0x19caf5(0x118,'t$HW'),a0_0x19caf5(0x112,'r7Wy')]);