@routinecrew/routinecode 2.31.35 → 2.31.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/prompt-vault.js +1 -1
- package/bin/setup.js +1 -1
- package/hooks/lib/block_message.py +15 -50
- package/hooks/lib/rdpe_maturity.py +128 -0
- package/hooks/lib/rdpe_report.py +47 -0
- package/hooks/lib/rdpe_sanitize.py +90 -0
- package/hooks/lib/sync_manager.py +5 -1
- package/hooks/post-agent-return.sh +118 -4
- package/hooks/pre-agent-spawn.mjs +1 -1
- package/hooks/stop-usage-metrics.sh +198 -73
- package/hooks/user-prompt-submit.sh +0 -12
- package/mcp-db-manager/dist/analyzers/duplicate-detector.js +1 -1
- package/mcp-db-manager/dist/core/model-parser.js +1 -1
- package/mcp-db-manager/dist/core/schema-reader.js +1 -1
- package/mcp-db-manager/dist/executors/migration-executor.js +1 -1
- package/mcp-db-manager/dist/generators/migration-generator.js +1 -1
- package/mcp-db-manager/dist/index.js +1 -1
- package/mcp-db-manager/dist/validators/schema-validator.js +1 -1
- package/mcp-dev-tester/dist/analyzers/auth-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/backend-analyzer.js +1 -1
- package/mcp-dev-tester/dist/analyzers/endpoint-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/frontend-analyzer.js +1 -1
- package/mcp-dev-tester/dist/analyzers/runtime-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/type-comparator.js +1 -1
- package/mcp-dev-tester/dist/analyzers/validation-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/browser/playwright-manager.js +1 -1
- package/mcp-dev-tester/dist/browser/ui-tester.js +1 -1
- package/mcp-dev-tester/dist/config/project-config.js +1 -1
- package/mcp-dev-tester/dist/index.js +1 -1
- package/mcp-dev-tester/dist/testers/api-tester.js +1 -1
- package/mcp-doc-fetcher/dist/index.js +1 -1
- package/mcp-html-renderer/dist/index.js +1 -1
- package/mcp-html-renderer/dist/preview.js +1 -1
- package/mcp-html-renderer/dist/template-engine.js +1 -1
- package/mcp-intelligence/dist/concept-catalog.js +1 -1
- package/mcp-intelligence/dist/concept-server-proxy.js +1 -1
- package/mcp-intelligence/dist/config-auth.js +1 -1
- package/mcp-intelligence/dist/contracts.generated.js +1 -1
- package/mcp-intelligence/dist/domain-templates.js +1 -1
- package/mcp-intelligence/dist/grounding.js +1 -1
- package/mcp-intelligence/dist/handlers.js +1 -1
- package/mcp-intelligence/dist/index.js +1 -1
- package/mcp-intelligence/dist/intelligence-file.js +1 -1
- package/mcp-intelligence/dist/knowledge-critic.js +1 -1
- package/mcp-intelligence/dist/knowledge-handlers.js +1 -1
- package/mcp-intelligence/dist/mention-extractor.js +1 -1
- package/mcp-intelligence/dist/provenance.js +1 -1
- package/mcp-intelligence/dist/semantic-embedder.js +1 -1
- package/mcp-log-watcher/dist/config-auth.js +1 -1
- package/mcp-log-watcher/dist/file-watcher.js +1 -1
- package/mcp-log-watcher/dist/index.js +1 -1
- package/mcp-log-watcher/dist/known-solutions.js +1 -1
- package/mcp-log-watcher/dist/log-store.js +1 -1
- package/mcp-log-watcher/dist/websocket-server.js +1 -1
- package/mcp-plan-manager/dist/__tests__/plan-parser.test.js +1 -1
- package/mcp-plan-manager/dist/file-ops.js +1 -1
- package/mcp-plan-manager/dist/index.js +1 -1
- package/mcp-plan-manager/dist/plan-parser.js +1 -1
- package/mcp-project-context/dist/git-ops.js +1 -1
- package/mcp-project-context/dist/index.js +1 -1
- package/mcp-project-context/dist/project-analysis.js +1 -1
- package/mcp-routinecode/dist/agent-tracker.js +1 -1
- package/mcp-routinecode/dist/blast-radius.js +1 -1
- package/mcp-routinecode/dist/config-auth.js +1 -1
- package/mcp-routinecode/dist/contracts.generated.js +1 -1
- package/mcp-routinecode/dist/explorer-advisor.js +1 -1
- package/mcp-routinecode/dist/failure-tracker.js +1 -1
- package/mcp-routinecode/dist/file-lock-registry.js +1 -1
- package/mcp-routinecode/dist/file-risk-scorer.js +1 -1
- package/mcp-routinecode/dist/index.js +1 -1
- package/mcp-routinecode/dist/known-solutions.js +1 -1
- package/mcp-routinecode/dist/ledger-miner.js +1 -1
- package/mcp-routinecode/dist/observed-draft.js +1 -1
- package/mcp-routinecode/dist/pattern-matcher.js +1 -1
- package/mcp-routinecode/dist/routines.js +1 -1
- package/mcp-routinecode/dist/rule-engine.js +1 -1
- package/mcp-routinecode/dist/rule-promoter.js +1 -1
- package/mcp-routinecode/dist/telemetry-analyzer.js +1 -1
- package/mcp-routinecode/dist/verification.js +0 -0
- package/mcp-routinecode/dist/viral-loop.js +1 -1
- package/package.json +1 -1
|
@@ -43,8 +43,7 @@ transcript_path = inp.get('transcript_path', '')
|
|
|
43
43
|
if not transcript_path or not os.path.exists(transcript_path):
|
|
44
44
|
emit({"continue": True})
|
|
45
45
|
|
|
46
|
-
# ── 1. Transcript
|
|
47
|
-
last_user_idx = -1
|
|
46
|
+
# ── 1. Transcript 로드 (cursor 모델: 커서 이후 신규 구간만 델타 집계) ──
|
|
48
47
|
entries = []
|
|
49
48
|
try:
|
|
50
49
|
with open(transcript_path) as f:
|
|
@@ -61,13 +60,105 @@ except Exception:
|
|
|
61
60
|
if not entries:
|
|
62
61
|
emit({"continue": True})
|
|
63
62
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
# ── Cursor 모델 (v9): 직전 처리 커서 이후 신규 구간만 델타 집계 ──
|
|
64
|
+
# 기존 slice(last_user_idx+1:)는 매 Stop 전체 재집계로 삼각수 중복(turns 52만)을 냈다.
|
|
65
|
+
# cursor 는 세션별 "마지막 처리 entry 개수"를 저장해 각 entry 를 정확히 1회만 집계한다
|
|
66
|
+
# (append-only transcript 실측 확증: compaction 도 in-place append, 재작성 없음).
|
|
67
|
+
import hashlib as _hl
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
_cursor_dir = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe', 'cursor')
|
|
70
|
+
_cursor_file = os.path.join(_cursor_dir, session_id + '.json')
|
|
71
|
+
_cursor = 0
|
|
72
|
+
try:
|
|
73
|
+
with open(_cursor_file) as _cf:
|
|
74
|
+
_cst = json.load(_cf)
|
|
75
|
+
_c = _cst.get('count', 0)
|
|
76
|
+
_lu = _cst.get('last_uuid')
|
|
77
|
+
# 파손/범위이탈 또는 append-only 불일치(저장 uuid != 그 위치 entry) 시 len 폴백
|
|
78
|
+
# (그 세션 1회 누락 ≪ 커서 0 재폭발). 정상이면 저장 count 사용.
|
|
79
|
+
if isinstance(_c, int) and 0 <= _c <= len(entries):
|
|
80
|
+
if _lu and _c > 0:
|
|
81
|
+
_at = entries[_c - 1].get('uuid') if _c - 1 < len(entries) else None
|
|
82
|
+
_cursor = _c if (_at == _lu or _at is None) else len(entries)
|
|
83
|
+
else:
|
|
84
|
+
_cursor = _c
|
|
85
|
+
else:
|
|
86
|
+
_cursor = len(entries)
|
|
87
|
+
except FileNotFoundError:
|
|
88
|
+
_cursor = 0 # 최초 세션
|
|
89
|
+
except Exception:
|
|
90
|
+
_cursor = len(entries) # 파손 → 누락(1회) 선택, 재폭발 회피
|
|
91
|
+
|
|
92
|
+
_new = entries[_cursor:]
|
|
93
|
+
|
|
94
|
+
# real_prompt: 실제 사용자 프롬프트만 작업 경계. tool_result·시스템 주입 태그 제외(§3).
|
|
95
|
+
_SYS_TAGS = ('<task-notification', '<local-command', '<command-name',
|
|
96
|
+
'<command-message', '<system-reminder')
|
|
97
|
+
def _is_real_prompt(_e):
|
|
98
|
+
if _e.get('type') != 'user' or _e.get('isCompactSummary'):
|
|
99
|
+
return False
|
|
100
|
+
_ct = _e.get('message', {}).get('content', '')
|
|
101
|
+
if isinstance(_ct, str):
|
|
102
|
+
_s = _ct.lstrip()
|
|
103
|
+
if not _s or 'This session is being continued' in _ct:
|
|
104
|
+
return False
|
|
105
|
+
return not any(_s.startswith(_t) for _t in _SYS_TAGS)
|
|
106
|
+
if isinstance(_ct, list):
|
|
107
|
+
_htr = any(isinstance(_b, dict) and _b.get('type') == 'tool_result' for _b in _ct)
|
|
108
|
+
_htx = False
|
|
109
|
+
for _b in _ct:
|
|
110
|
+
if not isinstance(_b, dict) or _b.get('type') != 'text':
|
|
111
|
+
continue
|
|
112
|
+
_t = (_b.get('text') or '').strip()
|
|
113
|
+
if not _t or 'This session is being continued' in _t:
|
|
114
|
+
continue
|
|
115
|
+
if any(_t.startswith(_tg) for _tg in _SYS_TAGS):
|
|
116
|
+
continue
|
|
117
|
+
_htx = True
|
|
118
|
+
return _htx if (_htr and not _htx) is False else False
|
|
119
|
+
return False
|
|
120
|
+
|
|
121
|
+
# target_shape: 원문 미수집(A10) — 확장자/명령어명만.
|
|
122
|
+
def _target_shape(_name, _inp):
|
|
123
|
+
try:
|
|
124
|
+
if not isinstance(_inp, dict):
|
|
125
|
+
return ''
|
|
126
|
+
if _name in ('Read', 'Edit', 'Write', 'NotebookEdit', 'MultiEdit'):
|
|
127
|
+
_p = _inp.get('file_path') or _inp.get('notebook_path') or ''
|
|
128
|
+
return (os.path.splitext(_p)[1] or 'noext')
|
|
129
|
+
if _name == 'Bash':
|
|
130
|
+
import re as _re
|
|
131
|
+
for _sg in _re.split(r'&&|\||;|\n', (_inp.get('command') or '').strip()):
|
|
132
|
+
for _t in _sg.strip().split():
|
|
133
|
+
if _t in ('cd', 'sudo', 'env', 'time', 'nohup', 'exec') or '=' in _t or _t.startswith('-'):
|
|
134
|
+
continue
|
|
135
|
+
_b = os.path.basename(_t)
|
|
136
|
+
return _b if _re.match(r'^[a-zA-Z][a-zA-Z0-9_.+-]*$', _b) else ''
|
|
137
|
+
return ''
|
|
138
|
+
if _name in ('Grep', 'Glob'):
|
|
139
|
+
return _name.lower()
|
|
140
|
+
except Exception:
|
|
141
|
+
return ''
|
|
142
|
+
return ''
|
|
143
|
+
|
|
144
|
+
def _msg_tools(_e):
|
|
145
|
+
_out = []
|
|
146
|
+
_ct = _e.get('message', {}).get('content', [])
|
|
147
|
+
if isinstance(_ct, list):
|
|
148
|
+
for _b in _ct:
|
|
149
|
+
if not isinstance(_b, dict) or _b.get('type') != 'tool_use':
|
|
150
|
+
continue
|
|
151
|
+
_nm = _b.get('name', '')
|
|
152
|
+
if not isinstance(_nm, str) or not _nm:
|
|
153
|
+
continue
|
|
154
|
+
if _nm.startswith('mcp__'):
|
|
155
|
+
_s2 = _nm.split('__')
|
|
156
|
+
_base = 'mcp:' + (_s2[1] if len(_s2) > 1 and _s2[1] else 'unknown')
|
|
157
|
+
else:
|
|
158
|
+
_base = _nm
|
|
159
|
+
_tg = _target_shape(_nm, _b.get('input', {}))
|
|
160
|
+
_out.append(_base + (':' + _tg if _tg else ''))
|
|
161
|
+
return _out
|
|
71
162
|
|
|
72
163
|
input_tokens = 0
|
|
73
164
|
output_tokens = 0
|
|
@@ -76,47 +167,53 @@ cache_create = 0
|
|
|
76
167
|
assistant_count = 0
|
|
77
168
|
mcp_calls = 0
|
|
78
169
|
mcp_calls_by_server = {}
|
|
79
|
-
|
|
80
|
-
|
|
170
|
+
turns_delta = 0
|
|
171
|
+
msg_task_sigs = {} # sig -> {count, delta_c, shape}
|
|
81
172
|
|
|
82
|
-
|
|
83
|
-
|
|
173
|
+
# 토큰·mcp: 신규 구간 전체 assistant 총합 (토큰/mcp/task 동일 _new 기준 → 불일치 0)
|
|
174
|
+
for _e in _new:
|
|
175
|
+
if _e.get('type') != 'assistant':
|
|
84
176
|
continue
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if inp_t > 0 or out_t > 0 or cr > 0 or cc > 0:
|
|
91
|
-
input_tokens += inp_t
|
|
92
|
-
output_tokens += out_t
|
|
93
|
-
cache_read += cr
|
|
94
|
-
cache_create += cc
|
|
177
|
+
_u = _e.get('message', {}).get('usage', {})
|
|
178
|
+
_it = _u.get('input_tokens', 0); _ot = _u.get('output_tokens', 0)
|
|
179
|
+
_cr = _u.get('cache_read_input_tokens', 0); _cc = _u.get('cache_creation_input_tokens', 0)
|
|
180
|
+
if _it or _ot or _cr or _cc:
|
|
181
|
+
input_tokens += _it; output_tokens += _ot; cache_read += _cr; cache_create += _cc
|
|
95
182
|
assistant_count += 1
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
183
|
+
_ct2 = _e.get('message', {}).get('content', [])
|
|
184
|
+
if isinstance(_ct2, list):
|
|
185
|
+
for _b in _ct2:
|
|
186
|
+
if isinstance(_b, dict) and _b.get('type') == 'tool_use':
|
|
187
|
+
_nm = _b.get('name', '')
|
|
188
|
+
if isinstance(_nm, str) and _nm.startswith('mcp__'):
|
|
189
|
+
mcp_calls += 1
|
|
190
|
+
_s2 = _nm.split('__')
|
|
191
|
+
_sv = _s2[1] if len(_s2) > 1 and _s2[1] else 'unknown'
|
|
192
|
+
mcp_calls_by_server[_sv] = mcp_calls_by_server.get(_sv, 0) + 1
|
|
193
|
+
|
|
194
|
+
# turns + task_sig: real_prompt 경계로 작업 분할 (queuing 다중 프롬프트 각각 1작업)
|
|
195
|
+
_pidx = [_i for _i, _e in enumerate(_new) if _is_real_prompt(_e)]
|
|
196
|
+
for _k, _p in enumerate(_pidx):
|
|
197
|
+
turns_delta += 1
|
|
198
|
+
_end = _pidx[_k + 1] if _k + 1 < len(_pidx) else len(_new)
|
|
199
|
+
_tools = []
|
|
200
|
+
_seg_cc = 0
|
|
201
|
+
for _se in _new[_p:_end]:
|
|
202
|
+
if _se.get('type') != 'assistant':
|
|
203
|
+
continue
|
|
204
|
+
_seg_cc += _se.get('message', {}).get('usage', {}).get('cache_creation_input_tokens', 0) or 0
|
|
205
|
+
_tools.extend(_msg_tools(_se))
|
|
206
|
+
_col = []
|
|
207
|
+
for _t in _tools:
|
|
208
|
+
if not _col or _col[-1] != _t:
|
|
209
|
+
_col.append(_t)
|
|
210
|
+
if not _col:
|
|
211
|
+
continue # 도구 없는 작업(순수 대화) → sig 없음
|
|
212
|
+
_shape = '|'.join('>'.join(_col[_i:_i + 3]) for _i in range(len(_col) - 2)) if len(_col) >= 3 else '>'.join(_col)
|
|
213
|
+
_sig = _hl.sha1(_shape.encode('utf-8', 'replace')).hexdigest()[:12]
|
|
214
|
+
_d = msg_task_sigs.setdefault(_sig, {"count": 0, "delta_c": 0, "shape": _shape[:80]})
|
|
215
|
+
_d["count"] += 1
|
|
216
|
+
_d["delta_c"] += int(_seg_cc)
|
|
120
217
|
|
|
121
218
|
total_tokens = input_tokens + output_tokens + cache_read + cache_create
|
|
122
219
|
|
|
@@ -175,7 +272,8 @@ end_event = {
|
|
|
175
272
|
"cwd": os.path.basename(cwd),
|
|
176
273
|
"metadata": {
|
|
177
274
|
"duration_sec": duration_sec,
|
|
178
|
-
|
|
275
|
+
# cursor 모델: 이번 신규 구간의 작업(=real_prompt) 수. 전체 재계산 아님 → 중복 0.
|
|
276
|
+
"total_turns": turns_delta,
|
|
179
277
|
}
|
|
180
278
|
}
|
|
181
279
|
# N4·조건 6·11: fail-open append
|
|
@@ -185,30 +283,23 @@ try:
|
|
|
185
283
|
except Exception:
|
|
186
284
|
pass
|
|
187
285
|
|
|
188
|
-
# ── 2.6. task 이벤트
|
|
189
|
-
#
|
|
286
|
+
# ── 2.6. task 이벤트 서버 sync (cursor 블록이 산출한 msg_task_sigs 사용) ──
|
|
287
|
+
# sig·ΔC·turns 는 위 cursor 블록에서 신규 구간 기준으로 이미 계산됨(각 entry 1회, 중복 0).
|
|
288
|
+
# 여기선 서버 전송용 대표 task 이벤트 1건만 emit (과다 전송 방지).
|
|
190
289
|
try:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
# 3-gram 시퀀스를 정규화해 sig 산출 (연속 중복 접기).
|
|
194
|
-
collapsed = []
|
|
195
|
-
for t in tool_seq:
|
|
196
|
-
if not collapsed or collapsed[-1] != t:
|
|
197
|
-
collapsed.append(t)
|
|
198
|
-
ngrams = [tuple(collapsed[i:i+3]) for i in range(max(1, len(collapsed) - 2))]
|
|
199
|
-
seq_repr = '|'.join('>'.join(g) for g in ngrams)
|
|
200
|
-
task_sig = _hl.sha1(seq_repr.encode('utf-8', 'replace')).hexdigest()[:12]
|
|
290
|
+
if msg_task_sigs:
|
|
291
|
+
_top_sig = max(msg_task_sigs.items(), key=lambda kv: kv[1]["delta_c"])[0]
|
|
201
292
|
cwd_hash = _hl.sha1(os.path.basename(cwd).encode('utf-8', 'replace')).hexdigest()[:8]
|
|
202
293
|
_lib = os.path.join(os.environ.get('ROUTINECODE_HOOKS_DIR', ''), 'lib')
|
|
203
294
|
if _lib and _lib not in sys.path:
|
|
204
295
|
sys.path.insert(0, _lib)
|
|
205
296
|
try:
|
|
206
297
|
from emit_raw import emit_raw as _emit
|
|
207
|
-
_emit('task', {'task_sig':
|
|
298
|
+
_emit('task', {'task_sig': _top_sig, 'cwd_hash': cwd_hash}, session=session_id, at=now.isoformat())
|
|
208
299
|
except Exception:
|
|
209
300
|
# emit_raw 미가용 시 직접 append (동일 봉투)
|
|
210
301
|
_te = {"at": now.isoformat(), "date": today, "session": session_id, "type": "task",
|
|
211
|
-
"value": 1, "metadata": {"task_sig":
|
|
302
|
+
"value": 1, "metadata": {"task_sig": _top_sig, "cwd_hash": cwd_hash}}
|
|
212
303
|
with open(os.path.join(log_dir, "events.jsonl"), "a") as f:
|
|
213
304
|
f.write(json.dumps(_te, ensure_ascii=False) + "\n")
|
|
214
305
|
except Exception:
|
|
@@ -235,6 +326,9 @@ day_data["tokens"] = tok
|
|
|
235
326
|
# MCP 호출 일별 집계 (총수 + 서버별)
|
|
236
327
|
day_data["mcp_calls"] = day_data.get("mcp_calls", 0) + mcp_calls
|
|
237
328
|
mcp_srv = day_data.get("mcp_calls_by_server", {})
|
|
329
|
+
# (P2 full-recompute 제거 — cursor 블록이 mcp_calls/mcp_calls_by_server 를 신규 구간
|
|
330
|
+
# 기준으로 단일 경로 계산하므로 event/daily 불일치 원천 소멸.)
|
|
331
|
+
|
|
238
332
|
for srv, cnt in mcp_calls_by_server.items():
|
|
239
333
|
mcp_srv[srv] = mcp_srv.get(srv, 0) + cnt
|
|
240
334
|
day_data["mcp_calls_by_server"] = mcp_srv
|
|
@@ -248,19 +342,25 @@ try:
|
|
|
248
342
|
if session_id and session_id not in _sess:
|
|
249
343
|
_sess.append(session_id)
|
|
250
344
|
day_data["sessions"] = _sess
|
|
251
|
-
#
|
|
252
|
-
# 반복
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
# ΔC는 engine context-monitor(OpenCode용·미사용)가 아니라 여기서 이미 파싱된
|
|
256
|
-
# cache_create 로 수집한다 — Claude Code 환경의 실제 경로(engine 배선 불필요).
|
|
345
|
+
# RDPE: per-message task_sigs 를 daily 에 병합 — events.jsonl 회전 무관 영속.
|
|
346
|
+
# occurrence_count(반복) + ΔC(cache_creation) 교차세션 입력. ★O1/O2 수정으로 세션
|
|
347
|
+
# 전체 메시지의 sig·ΔC 가 쌓인다(기존엔 마지막 턴만 봐서 영구 0이었음).
|
|
348
|
+
if msg_task_sigs:
|
|
257
349
|
_tsigs = day_data.get("task_sigs", {})
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
350
|
+
for _sg, _dd in msg_task_sigs.items():
|
|
351
|
+
_prev = _tsigs.get(_sg, {"count": 0, "delta_c": 0, "sessions": [], "shape": ""})
|
|
352
|
+
if isinstance(_prev, int): # 구 포맷(int) 하위호환 마이그레이션
|
|
353
|
+
_prev = {"count": _prev, "delta_c": 0, "sessions": [], "shape": ""}
|
|
354
|
+
if not _prev.get("shape"): # 도구 조합 원문 1회 보존
|
|
355
|
+
_prev["shape"] = _dd.get("shape", "")
|
|
356
|
+
_prev["count"] = _prev.get("count", 0) + _dd["count"]
|
|
357
|
+
_prev["delta_c"] = _prev.get("delta_c", 0) + _dd["delta_c"]
|
|
358
|
+
# distinct_sessions 가드(§5 크로스세션): sig 를 관측한 세션 id 집합.
|
|
359
|
+
_ss = _prev.get("sessions", [])
|
|
360
|
+
if session_id and session_id not in _ss:
|
|
361
|
+
_ss.append(session_id)
|
|
362
|
+
_prev["sessions"] = _ss
|
|
363
|
+
_tsigs[_sg] = _prev
|
|
264
364
|
day_data["task_sigs"] = _tsigs
|
|
265
365
|
except Exception:
|
|
266
366
|
pass
|
|
@@ -274,6 +374,31 @@ try:
|
|
|
274
374
|
except Exception:
|
|
275
375
|
pass
|
|
276
376
|
|
|
377
|
+
# cursor 전진: 처리한 마지막 entry 까지 기록 → 다음 Stop 은 이 이후만 집계(중복 0).
|
|
378
|
+
# 세션별 파일(동시쓰기 경쟁 회피). last_uuid 는 append-only 재동기 앵커(§8-3).
|
|
379
|
+
try:
|
|
380
|
+
os.makedirs(_cursor_dir, exist_ok=True)
|
|
381
|
+
with open(_cursor_file, "w") as _cf:
|
|
382
|
+
json.dump({"count": len(entries),
|
|
383
|
+
"last_uuid": (entries[-1].get("uuid") if entries else None)}, _cf)
|
|
384
|
+
except Exception:
|
|
385
|
+
pass
|
|
386
|
+
|
|
387
|
+
# ── 3.5. RDPE 성숙 갱신 (daily 갱신 직후, 추가 read 0) ──
|
|
388
|
+
# daily.task_sigs → routines.json 감지→성숙(§5). 로컬 완결(서버 미사용). fail-open.
|
|
389
|
+
try:
|
|
390
|
+
_rlib = os.path.join(os.environ.get('ROUTINECODE_HOOKS_DIR', ''), 'lib')
|
|
391
|
+
if _rlib and _rlib not in sys.path:
|
|
392
|
+
sys.path.insert(0, _rlib)
|
|
393
|
+
import rdpe_maturity as _rm
|
|
394
|
+
_routines = _rm.build_routines(daily)
|
|
395
|
+
_rdir = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe')
|
|
396
|
+
os.makedirs(_rdir, exist_ok=True)
|
|
397
|
+
with open(os.path.join(_rdir, 'routines.json'), 'w') as _rf:
|
|
398
|
+
json.dump(_routines, _rf, ensure_ascii=False, indent=2)
|
|
399
|
+
except Exception:
|
|
400
|
+
pass
|
|
401
|
+
|
|
277
402
|
# ── 4. Usage sync (세션 종료 시 서버 동기화) ──
|
|
278
403
|
# 블로킹 방지: sync_manager.py를 detached 자식 프로세스로 실행하고 즉시 반환.
|
|
279
404
|
# 네트워크 timeout/재시도는 자식에서 처리되며, stop hook 본체는 로컬 기록 후 종료.
|
|
@@ -69,18 +69,6 @@ try:
|
|
|
69
69
|
msg = block_message.generate()
|
|
70
70
|
except Exception:
|
|
71
71
|
msg = '[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge/write for instant +50, or run /share.'
|
|
72
|
-
try:
|
|
73
|
-
from i18n import get_locale
|
|
74
|
-
loc = get_locale()
|
|
75
|
-
except Exception:
|
|
76
|
-
loc = 'en'
|
|
77
|
-
_foot = {
|
|
78
|
-
'ko': '\n\n(이 창만 멈춥니다 — 따로 연 claude 세션은 영향받지 않습니다.)',
|
|
79
|
-
'ja': '\n\n(この画面のみ停止します — 別途開いた claude セッションには影響しません。)',
|
|
80
|
-
'zh': '\n\n(仅此窗口暂停 — 另开的 claude 会话不受影响。)',
|
|
81
|
-
'es': '\n\n(Solo esta ventana se pausa — otras sesiones de claude no se ven afectadas.)',
|
|
82
|
-
}
|
|
83
|
-
msg = msg + _foot.get(loc, '\n\n(Only this window is paused — any separate claude session is unaffected.)')
|
|
84
72
|
# UserPromptSubmit: {"decision":"block","reason":...} DISPLAYS reason to the user
|
|
85
73
|
# (continue:false does NOT — it only shows the generic 'Operation stopped by hook').
|
|
86
74
|
print(json.dumps({'decision': 'block', 'reason': msg}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3a828b=a0_0x4c93;function a0_0x4c93(_0x2aaf96,_0xd77b79){_0x2aaf96=_0x2aaf96-(0x80f+0x1*0x211+-0x831);const _0x4da514=a0_0x2555();let _0x537982=_0x4da514[_0x2aaf96];if(a0_0x4c93['DKgleS']===undefined){var _0x207dd8=function(_0x287cbc){const _0x53dc6e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x320cee='',_0x278e5a='';for(let _0x27e28d=0x1753+-0x19c+-0x6d*0x33,_0x1b70b6,_0x18757d,_0x5d7934=0x1*-0x1fd3+-0x7*-0xfb+0x18f6;_0x18757d=_0x287cbc['charAt'](_0x5d7934++);~_0x18757d&&(_0x1b70b6=_0x27e28d%(-0x1fc+0x90d*0x2+-0x101a)?_0x1b70b6*(0x214b+0xeb7+-0x1*0x2fc2)+_0x18757d:_0x18757d,_0x27e28d++%(0x1*-0x1e0b+-0x2603*0x1+0x4412))?_0x320cee+=String['fromCharCode'](0x59*-0x1d+-0x1134+0x1c48&_0x1b70b6>>(-(-0x285+-0x1920+0x1ba7)*_0x27e28d&-0x189e+0xd2d+-0x5*-0x24b)):-0x24aa+-0x2003+0x44ad){_0x18757d=_0x53dc6e['indexOf'](_0x18757d);}for(let _0x32bd32=0xc0a+0x1b7*-0x6+-0x1c0,_0xfe1861=_0x320cee['length'];_0x32bd32<_0xfe1861;_0x32bd32++){_0x278e5a+='%'+('00'+_0x320cee['charCodeAt'](_0x32bd32)['toString'](-0x1*0x745+-0x22ad+0x2a02))['slice'](-(0xf50+-0x1701+0x7b3));}return decodeURIComponent(_0x278e5a);};const _0x4591d9=function(_0x347f3f,_0x308aa9){let _0x2b2993=[],_0x1d272b=0x1*-0x40f+-0x1a*0x166+0x286b*0x1,_0x276d24,_0x448059='';_0x347f3f=_0x207dd8(_0x347f3f);let _0xf366d3;for(_0xf366d3=0x670+0x76d*0x1+-0xddd;_0xf366d3<-0x87f+-0x1*-0x1445+-0xac6;_0xf366d3++){_0x2b2993[_0xf366d3]=_0xf366d3;}for(_0xf366d3=0x1*0x150a+0xbd1*-0x2+-0x4*-0xa6;_0xf366d3<0x4*0x3ce+-0x211+-0xc27;_0xf366d3++){_0x1d272b=(_0x1d272b+_0x2b2993[_0xf366d3]+_0x308aa9['charCodeAt'](_0xf366d3%_0x308aa9['length']))%(-0x6*-0x257+0x1*-0x1b7f+0xe75),_0x276d24=_0x2b2993[_0xf366d3],_0x2b2993[_0xf366d3]=_0x2b2993[_0x1d272b],_0x2b2993[_0x1d272b]=_0x276d24;}_0xf366d3=-0xe6a+0x1e63+-0xff9,_0x1d272b=-0x101d*0x1+-0x17a1+-0x13df*-0x2;for(let _0x28623b=0x1817+0xf2f*-0x1+-0x8e8;_0x28623b<_0x347f3f['length'];_0x28623b++){_0xf366d3=(_0xf366d3+(0x42c*0x6+-0x1b0d+0x206*0x1))%(0x20a2+0x1e6+-0x94*0x3a),_0x1d272b=(_0x1d272b+_0x2b2993[_0xf366d3])%(-0x115+-0xc0b+-0x20*-0x71),_0x276d24=_0x2b2993[_0xf366d3],_0x2b2993[_0xf366d3]=_0x2b2993[_0x1d272b],_0x2b2993[_0x1d272b]=_0x276d24,_0x448059+=String['fromCharCode'](_0x347f3f['charCodeAt'](_0x28623b)^_0x2b2993[(_0x2b2993[_0xf366d3]+_0x2b2993[_0x1d272b])%(0xa32+0xf39*-0x2+0x550*0x4)]);}return _0x448059;};a0_0x4c93['NCYtYD']=_0x4591d9,a0_0x4c93['QhWBdj']={},a0_0x4c93['DKgleS']=!![];}const _0x512e2e=_0x4da514[-0x26*-0x2+0x4*0x11b+-0x4b8],_0x553c93=_0x2aaf96+_0x512e2e,_0x2b9d45=a0_0x4c93['QhWBdj'][_0x553c93];return!_0x2b9d45?(a0_0x4c93['gOLYVe']===undefined&&(a0_0x4c93['gOLYVe']=!![]),_0x537982=a0_0x4c93['NCYtYD'](_0x537982,_0xd77b79),a0_0x4c93['QhWBdj'][_0x553c93]=_0x537982):_0x537982=_0x2b9d45,_0x537982;}(function(_0x56c69d,_0x56b02b){const _0x5b1b60=a0_0x4c93,_0x5e9447=_0x56c69d();while(!![]){try{const _0x405e42=-parseInt(_0x5b1b60(0x256,'5yqY'))/(-0x15*0x107+-0x18c7+-0x2e5b*-0x1)*(parseInt(_0x5b1b60(0x226,'r1qM'))/(-0x61b*-0x1+0x1abe+-0x20d7))+-parseInt(_0x5b1b60(0x1f4,'KdEe'))/(0x1fe6+0x3ad*-0x1+-0x1*0x1c36)+parseInt(_0x5b1b60(0x23a,'Ao0A'))/(0x259+-0x610+0x3bb)*(parseInt(_0x5b1b60(0x22d,'vF^0'))/(-0x2c*-0x67+-0x1*-0x770+0x6d*-0x3b))+parseInt(_0x5b1b60(0x209,'T#!%'))/(0x259d+-0x1e32+0x277*-0x3)*(-parseInt(_0x5b1b60(0x26c,'ctJ&'))/(0x90c+-0x6d*-0x37+-0x3*0xad0))+parseInt(_0x5b1b60(0x25b,'DUPK'))/(-0x15*0x143+0xb*-0x30b+0x3c00)*(-parseInt(_0x5b1b60(0x24d,'77yF'))/(0x582+-0xf3c+0x7*0x165))+-parseInt(_0x5b1b60(0x20d,'V7%@'))/(0x2*0x8e6+0x153e+-0x2700)*(-parseInt(_0x5b1b60(0x220,'P]Bj'))/(-0xc73+-0x25*0x4a+0x1730))+parseInt(_0x5b1b60(0x268,'8(AQ'))/(-0x1992*0x1+0x83*0x19+0xcd3)*(parseInt(_0x5b1b60(0x255,'3enR'))/(-0x3*0x3ce+0x1831*-0x1+0x8ea*0x4));if(_0x405e42===_0x56b02b)break;else _0x5e9447['push'](_0x5e9447['shift']());}catch(_0x4ef59c){_0x5e9447['push'](_0x5e9447['shift']());}}}(a0_0x2555,-0x291b9+-0x1c1e6*0x1+0x9d429*0x1));export class DuplicateDetector{[a0_0x3a828b(0x227,'A9H8')](_0x16adf7){const _0x3af66e=a0_0x3a828b,_0x1b0fbd=this[_0x3af66e(0x235,'mUk8')](_0x16adf7[_0x3af66e(0x1fb,'zJQL')]),_0x336ab1=this[_0x3af66e(0x1f3,'#OJc')](_0x16adf7[_0x3af66e(0x238,']Ayp')]),_0x1735a0=_0x1b0fbd[_0x3af66e(0x26a,'4xM4')](_0x3ae05d=>_0x3ae05d[_0x3af66e(0x1f1,'CPOi')]===_0x3af66e(0x267,'r1qM'))[_0x3af66e(0x216,'3enR')]+_0x336ab1[_0x3af66e(0x26a,'4xM4')](_0x32927e=>_0x32927e[_0x3af66e(0x24b,'We%R')]>0x1c70+0x1c9*-0xb+0x8cd*-0x1+0.8)[_0x3af66e(0x224,'We%R')];return{'fields':_0x1b0fbd,'tables':_0x336ab1,'summary':{'totalDuplicateFields':_0x1b0fbd[_0x3af66e(0x21c,'FP3^')],'totalDuplicateTables':_0x336ab1[_0x3af66e(0x258,'bLVY')],'autoFixable':_0x1735a0}};}[a0_0x3a828b(0x214,'z!y@')](_0x442ee7){const _0x9d78ba=a0_0x3a828b,_0x53ebd8=[],_0x436f21=new Map();for(const _0x51b953 of _0x442ee7){for(const _0x33bcfe of _0x51b953[_0x9d78ba(0x253,'CPOi')]){const _0x243c55=this[_0x9d78ba(0x1f8,'A9H8')](_0x33bcfe[_0x9d78ba(0x257,'NTUd')]);!_0x436f21[_0x9d78ba(0x1f2,'jrpv')](_0x243c55)&&_0x436f21[_0x9d78ba(0x23f,'z!y@')](_0x243c55,[]),_0x436f21[_0x9d78ba(0x215,'#7Ix')](_0x243c55)[_0x9d78ba(0x20b,'RZxv')](_0x51b953[_0x9d78ba(0x20a,'mUk8')]+'.'+_0x33bcfe[_0x9d78ba(0x222,'oVpx')]);}}for(const [_0x5c46de,_0x3ce4e3]of _0x436f21[_0x9d78ba(0x26f,'%C]z')]()){if(_0x3ce4e3[_0x9d78ba(0x25e,'mUk8')]<=-0xff1+-0x1*0x1697+0x2689*0x1)continue;const _0x5c0453=new Set(_0x3ce4e3[_0x9d78ba(0x211,'jrpv')](_0x283726=>_0x283726[_0x9d78ba(0x25a,'P]Bj')]('.')[-0x1dda*0x1+0x214b+-0x1*0x370])),_0xa1aa0e=_0x5c0453[_0x9d78ba(0x205,'b7@J')]===0x1*-0x1e0b+-0x2603*0x1+0x440f,_0x212bc9=_0x3ce4e3[_0x9d78ba(0x1fe,'XlqD')](_0x5cb1ec=>_0x5cb1ec[_0x9d78ba(0x22a,'oVpx')]('.')[0x59*-0x1d+-0x1134+0x1b49]);_0x53ebd8[_0x9d78ba(0x21a,'*TYt')]({'fieldName':_0x5c46de,'tables':_0x212bc9,'type':_0xa1aa0e?_0x9d78ba(0x219,'mUk8'):_0x9d78ba(0x1f5,'DUPK'),'severity':this[_0x9d78ba(0x236,'r1qM')](_0x5c46de,_0x212bc9),'recommendation':this[_0x9d78ba(0x23e,'jrpv')](_0x5c46de,_0x212bc9,_0xa1aa0e)});}return _0x53ebd8;}[a0_0x3a828b(0x245,'P]Bj')](_0x15c7a5){const _0x25382e=a0_0x3a828b,_0x4588e5=[];for(let _0x237c55=-0x285+-0x1920+0x1ba5;_0x237c55<_0x15c7a5[_0x25382e(0x259,'Ao0A')];_0x237c55++){const _0x3c299c=_0x15c7a5[_0x237c55],_0x2e3c2e=[];for(let _0x4fda63=_0x237c55+(-0x189e+0xd2d+-0x5*-0x24a);_0x4fda63<_0x15c7a5[_0x25382e(0x21c,'FP3^')];_0x4fda63++){const _0x423e74=_0x15c7a5[_0x4fda63],_0x294904=this[_0x25382e(0x23b,'XlqD')](_0x3c299c,_0x423e74);_0x294904>-0x24aa+-0x2003+0x44ad+0.6&&_0x2e3c2e[_0x25382e(0x242,'WAs%')](_0x423e74[_0x25382e(0x1f0,'zJQL')]);}_0x2e3c2e[_0x25382e(0x224,'We%R')]>0xc0a+0x1b7*-0x6+-0x1c0&&_0x4588e5[_0x25382e(0x1ef,'z!y@')]({'tableName':_0x3c299c[_0x25382e(0x248,'HdIY')],'similarTo':_0x2e3c2e,'similarity':Math[_0x25382e(0x260,'zJQL')](..._0x2e3c2e[_0x25382e(0x1fa,'m%P%')](_0xd4b7c9=>{const _0x440f6b=_0x25382e,_0x1091e7=_0x15c7a5[_0x440f6b(0x203,'%C]z')](_0x2cf072=>_0x2cf072[_0x440f6b(0x26d,'4xM4')]===_0xd4b7c9);return this[_0x440f6b(0x24e,'dRfC')](_0x3c299c,_0x1091e7);})),'recommendation':this[_0x25382e(0x21f,'3enR')](_0x3c299c,_0x2e3c2e)});}return _0x4588e5;}[a0_0x3a828b(0x261,'vF^0')](_0x209cba){const _0xc5c3eb=a0_0x3a828b;return _0x209cba[_0xc5c3eb(0x254,'DUPK')](/[-_]/g,'')[_0xc5c3eb(0x250,'NTUd')](/([A-Z])/g,_0x5157a6=>_0x5157a6[_0xc5c3eb(0x201,'(A*@')]())[_0xc5c3eb(0x1fd,'dRfC')]();}[a0_0x3a828b(0x223,'K[y@')](_0x32e35e,_0x45389f){const _0x3e2d89=a0_0x3a828b,_0x5d3e2d=this[_0x3e2d89(0x263,'Z6vv')](_0x32e35e[_0x3e2d89(0x22e,'K[y@')],_0x45389f[_0x3e2d89(0x21b,'^O[s')]),_0x5369f2=new Set(_0x32e35e[_0x3e2d89(0x1f9,'T#!%')][_0x3e2d89(0x21d,'NTUd')](_0x5c00ce=>this[_0x3e2d89(0x232,'^O[s')](_0x5c00ce[_0x3e2d89(0x202,'r1qM')]))),_0xf66331=new Set(_0x45389f[_0x3e2d89(0x246,'3enR')][_0x3e2d89(0x24f,'oVpx')](_0x11ca45=>this[_0x3e2d89(0x20e,'RZxv')](_0x11ca45[_0x3e2d89(0x208,'77yF')]))),_0x2ef79c=new Set([..._0x5369f2][_0x3e2d89(0x237,'^O[s')](_0x2c8f22=>_0xf66331[_0x3e2d89(0x234,'A9H8')](_0x2c8f22))),_0x2caac2=new Set([..._0x5369f2,..._0xf66331]),_0x569ad5=_0x2caac2[_0x3e2d89(0x252,'8(AQ')]>-0x1*0x745+-0x22ad+0x29f2?_0x2ef79c[_0x3e2d89(0x20c,'HdIY')]/_0x2caac2[_0x3e2d89(0x204,'bLVY')]:0xf50+-0x1701+0x7b1;return _0x5d3e2d*(0x1*-0x40f+-0x1a*0x166+0x286b*0x1+0.3)+_0x569ad5*(0x670+0x76d*0x1+-0xddd+0.7);}[a0_0x3a828b(0x240,'%C]z')](_0x5189c5,_0x207b7a){const _0x59173b=a0_0x3a828b,_0x5db1cd=this[_0x59173b(0x1f6,'V7%@')](_0x5189c5,_0x207b7a),_0x56f006=Math[_0x59173b(0x1f7,'yk3@')](_0x5189c5[_0x59173b(0x25f,'b7@J')],_0x207b7a[_0x59173b(0x22c,'jrpv')]);return _0x56f006>-0x87f+-0x1*-0x1445+-0xbc6?0x1*0x150a+0xbd1*-0x2+-0x7*-0x5f-_0x5db1cd/_0x56f006:0x4*0x3ce+-0x211+-0xd26;}[a0_0x3a828b(0x26e,'#7Ix')](_0x2ad9f5,_0x5e38dc){const _0x1179fc=a0_0x3a828b,_0x2ef4df=_0x2ad9f5[_0x1179fc(0x239,'#OJc')],_0x625691=_0x5e38dc[_0x1179fc(0x251,'ib$4')],_0x357a2a=Array[_0x1179fc(0x244,'RZxv')]({'length':_0x2ef4df+(-0x6*-0x257+0x1*-0x1b7f+0xd76)},()=>Array(_0x625691+(-0xe6a+0x1e63+-0xff8))[_0x1179fc(0x213,'b7@J')](-0x101d*0x1+-0x17a1+-0x13df*-0x2));for(let _0x5d3423=0x1817+0xf2f*-0x1+-0x8e8;_0x5d3423<=_0x2ef4df;_0x5d3423++)_0x357a2a[_0x5d3423][0x42c*0x6+-0x1b0d+0x205*0x1]=_0x5d3423;for(let _0x10e9cd=0x20a2+0x1e6+-0xaa*0x34;_0x10e9cd<=_0x625691;_0x10e9cd++)_0x357a2a[-0x115+-0xc0b+-0x2a*-0x50][_0x10e9cd]=_0x10e9cd;for(let _0x101977=0xa32+0xf39*-0x2+0x1441*0x1;_0x101977<=_0x2ef4df;_0x101977++){for(let _0xd8eec=-0x26*-0x2+0x4*0x11b+-0x4b7;_0xd8eec<=_0x625691;_0xd8eec++){_0x2ad9f5[_0x101977-(-0x419*0x1+-0x1c0a+0x2ec*0xb)]===_0x5e38dc[_0xd8eec-(-0x357+0x2*0x8f7+-0xe96)]?_0x357a2a[_0x101977][_0xd8eec]=_0x357a2a[_0x101977-(-0x665+-0x1097+-0x217*-0xb)][_0xd8eec-(0x3f1+0xb3+-0x4a3)]:_0x357a2a[_0x101977][_0xd8eec]=Math[_0x1179fc(0x266,'K[y@')](_0x357a2a[_0x101977-(0x110d+-0x1a9c+0x3*0x330)][_0xd8eec],_0x357a2a[_0x101977][_0xd8eec-(0x9f3+0xfbd+-0x5*0x523)],_0x357a2a[_0x101977-(-0xf3c+-0x11c4*-0x1+0x287*-0x1)][_0xd8eec-(0x1a5e+-0x1*0xa16+-0x1047)])+(-0x1fca*-0x1+0x1d*-0xb7+-0xb0e);}}return _0x357a2a[_0x2ef4df][_0x625691];}[a0_0x3a828b(0x218,'RZxv')](_0x52e1a2,_0x355d8a){const _0x108f2f=a0_0x3a828b;if(_0x52e1a2[_0x108f2f(0x247,'CPOi')]('id')&&_0x355d8a[_0x108f2f(0x200,'^O[s')]>-0xba4+0x2*-0x899+0x1cd8)return _0x108f2f(0x265,'T#!%');if(_0x355d8a[_0x108f2f(0x258,'bLVY')]>=-0x55d+-0x1*-0x1f67+-0x1a07)return _0x108f2f(0x229,'#OJc');return _0x108f2f(0x23d,'Ao0A');}[a0_0x3a828b(0x230,'VzuO')](_0x62ff1f,_0x17d469,_0x366896){const _0x5c7f63=a0_0x3a828b;if(_0x366896)return _0x5c7f63(0x1ff,'3enR');const _0x2ec8c3=new Map();for(const _0x5bcf43 of _0x17d469){const _0x4b1e3a=_0x5bcf43[_0x5c7f63(0x22f,'z!y@')]('.')[0x2*0x752+0x4a5*0x2+-0x31*0x7d]||_0x62ff1f;_0x2ec8c3[_0x5c7f63(0x249,'*TYt')](_0x4b1e3a,(_0x2ec8c3[_0x5c7f63(0x23c,'V7%@')](_0x4b1e3a)||0xdbd+0x1666+-0x1d*0x13f)+(-0x2f*-0xce+-0x21f8+-0x5*0xc5));}const _0x6d7bc9=Array[_0x5c7f63(0x217,'ctJ&')](_0x2ec8c3[_0x5c7f63(0x264,'NTUd')]())[_0x5c7f63(0x241,'ib$4')]((_0xd36c08,_0x5afe50)=>_0x5afe50[-0xa00+0xa6*-0x1+0xaa7]-_0xd36c08[-0x1c81+0x10db*-0x1+-0x4f*-0x93])[-0x7ed+0x1*-0xc83+0xda*0x18][0x75c+-0x259+-0x1*0x503];return _0x5c7f63(0x25d,'CY)0')+_0x6d7bc9+_0x5c7f63(0x233,'z!y@')+_0x17d469[_0x5c7f63(0x228,'C!9P')](',\x20');}[a0_0x3a828b(0x25c,'mUk8')](_0x8c1a4b,_0x29ed96){const _0x45e3e5=a0_0x3a828b,_0x5b2e4e=_0x8c1a4b[_0x45e3e5(0x26b,'CPOi')],_0x143d2a=_0x29ed96[_0x45e3e5(0x269,'8(AQ')](',\x20');return _0x45e3e5(0x206,'yk3@')+_0x5b2e4e+_0x45e3e5(0x24c,'A9H8')+_0x143d2a+_0x45e3e5(0x24a,'P]Bj');}}function a0_0x2555(){const _0x1b551a=['W58JW4TrgmolWQrfl8k6','hCoyW7K','WQyvW73dK8kCsq','AWnsdIxdRmorWRy','oSo3W6iuzSkJqHCEw8ok','edpdTq','66IM65kntU2fNoYCIoU4N+YxKEYgG0pSN6pQT7lRKR1u64EO7j+X67ojW73SG7NSMAWs7kw4WP3dIoY0TEQWNSor7kcD7lQ1W6NRTiJTLjFSMj05','WRTwg8kzfCkU','nmkJe8oJW74iWRhdKCkwpSo2','zWJdV8ol','WQ3cPSo7yW','W7RcRINdLq','WOzqu8kY','7yAz7j2c67U9hCoC','WP7cVM/dKCowW4e9WPPAi2vMW7G','W4BdRZhcJa','WOPNWOWwrSkFW6nemmkMW4jPaa','WPPwh8o0w8osWOFdQmoV','WRFcVCo0WQW','omk9WQRdSq','WP8sW6LlWQ9vlKhcQmoQEZmq','WQNcP8o1WQKZwqJdM1xdLSoIWQVdImoKpZ/dRmkV','W6yktmonvCo3WP7cIKDPomovoq','vczQW6NcOSoNdq','qCk4wq','rdtdJSoDFIZcPW','WPnqrCk7','mCobWRjhW6pcOeOcW5mAW71FxwVcHComW7dcJreOoa','W5FdImok','W6iiahCiyW','jCoGwCkc','WQBcU8o0WQeHrIFdIfxdVmoVWORdKCoWhtFdOSkRWRLBW5SKB8oVsqyeW7S4vW','WOTphmo7sG','W49Kk0G','WQnsf8ksbmkiW4BcVM8','WR5PaSkOWO/cOG','ghL/','t2ddImohDdxcMCoD','W7Widx8rzMtdSqFdI8ktW4myWQNdImkHWQ8YWQa','lmoFW6ZdUg9+WPddMG','CCo/zSk1WR1BWQhdOCkwcmovWQO','DGjsWO4','W6Khcb/cQSkKW5mPW6OarLVdJCkTkdrcW6hdV8kiWQm/W5NdQW','W7qkW5DKiX4','yhCwW4dcIh3dIq','ofRcQ8kxDqhdG8kOWQNcImkJBa','W6qLW4RdImkiwq','WR4AWQ4g','W6/dVsOpwSkVzG','AXntWOlcTW','W6mdqmomvmo1WPhcMwvxm8oica','qmk8r8kTW6tcMG','BvLseGJdGSoW','W74hbHdcUSkgW5mWW6O','jSouWQPlW7q','fXfXW6RcLCoWotPpuYvTW4jcWPxcGCo8','hbRcI8kdWORdRaaXWPLnamo9FG','WRLCb8ktamkQW47cQw9wo8oebvjTAmocBG','CSke7zUt7yo+66oCW7tTHRVSNiVcG+Q3UUYCSriC7jIE7zwfWRdcUq','W6GHW40','WOPscCo9xCoOWQldSmo6mSk+WRVcPSo8CgaMWPNdNSkYW5S','AbRdOColmKtdP8kYWQ3cOCkbybneBLFcOW7cK8kXF8kjWR5hW6FcImkpW7FcILy','WRfAgCkkbmk0','W6CSdxVcOty','W7tdUtygr8kP','W4RcSLrBW7/cGmoGWQpdJa7dUfVdIq','hJpdQCouAG/cImolWOHBW6anWRFcMmk2WQpdVmoIW6mCW4xdHmkitq','W4LaWQS','WPhdRqin','xSk8sSkLW73cN8kCecakkSojqYWVbCkl','jSobWRi','WQFcQSoJySohsCoqcCoakx5dW4ldSWj7v8o0lSoqW4O','W5hcV8oqmW','hSkJW4j9','W7lcPmofWOKxFGy','WQhcUSoOWQK','ESkiW5xdRwDCWQtdJrdcOHJcG8kufGPwW5hdOSk5hSoz','W68zgMivAxtdQWBdRa','W7zRzceHWOFdOsS','p8k1WRldUmojzZ8ekW','W4X0la','oEQZRCkb7j6O7ikO7zwb64IO64MCtSoU7kwG67cvW5xRJjlSNjVTHllcKoUAKoUjGvVSNllRQklRK7dcKUYIO+Q3ME2ANUYFRCoR7iQXioYEOUYkVEUjLoUiLsL267oD7zEGe+UyP+UiQCoR6REl6RcCWOdSN7RSHzVQS6hRPyPl6Rko7ysV7zAe7iEF7jMfW6a','W6SgW5rQoXCAymogW6W','WQFQSRZcNSkk','WPhdQbFcG8kaWR1h','lCo5W4iyzmkQusaAFmooxbpcVdv9WOO0qI8EmmkHWP0','Dqjp','b31/W6NdRmk5WO4','W47cTComihTk','dH/cGCkZ','W75XCZ89WOhdSsZdPSkU','uCkSs8khnCk3ha','WRHDxsHlodxdNHVdKCkkW5uh','zKGmW7NcHg3dLW','g3LIW6a','W6xcOJ3dL8ouqa','WPtdPGOfWRRdNW','BCkDW43dOxa','f8o5dSozyCoNt3KwxNLQzW','WPXshSo3u8oXWOpdQ8oUcSk2WRRcQ8oTwem9WPVdLW','64AZ7j6Q67gJW5hRTyZSN7pSUP7dRo2aSEYLPxhcVSk+','WOjse8o/sSo0','WPLCr8kWE24','WQyBW6e','nLPImIZdPCo+WOKLWPNcMmkiWOa8WQbuWRdcGG','D8kIbCoAwSoWqJdcSmoWW6pdSZe','W5SiWORcOSowiCo2mmoRWQRdRu3cOSkxCCo4W57dKmkvWQ/cLW','ehz7W7FdPmk/WPG','W50LW5zxgmokWRbD','W6CpcG','EGddV8ohlvBdKW','tKdcUCkhW5K5zZq','fXNcKSk4','W5/cHuFdOCoCW6G','W6TKzseXWQ3dPtxdPG','Dmo/vmk6o8kSpW','W43cJuNdUCoCW5rQW5jt','W5ZdImoipSk/CqDlwXfnbHOVDY3dPqVcMG','WQ7cOCoHDCoax8ol','jCorWRvk','WR8BW7VdMSkvDdWxW6G','W6T8DYG','rmk4wG','W7ZdUsWeumk1rxVcNSkHgILkWRmeeSkwW5WoWO/cNq','W7GZW7DElSkYycZdPw4vnIO','umkGvSkcomk1cW','W4jaWQKyW7KFDNdcI8oLvWyXW5fdEIu7W4C','WRHxWPe','W64VW4ZdGmkkqxBdOCoZWRtdUGvjWQJdOmkAmge'];a0_0x2555=function(){return _0x1b551a;};return a0_0x2555();}
|
|
1
|
+
const a0_0x5504ca=a0_0x53b1;function a0_0x5298(){const _0x3025af=['tfVdTMm9ra','smo3gmou','W5BcRblcKSk4p8o/W6Lp','nLXmxW','f8kJW44tfWhdKmoIW6OjWR/dHSo/wCk8cxqsbslcOSkAW5ZdVG','W4FcTrhcNCkP','WQXqrgC','64Ex7j+X67cXW6xRTPZSNApSURpcNU2bSUYNRSkUE10','WObljSkUW7pdSmoJWP1ZW68','W5xQS4ddN8kP','vCkdWRRdGCkrBmks','WQfqrwfQl8o5W4mNWQxcJ8kdkvKwlHFcI0i7DCkgt8k1','aSkQW4u6DsGcxINcMbHN','FSogFZBcI8kZW7qUb1tdRCkyWPdcS8knpCop','W65tW6xdRmoOW443imo4kX1m','m1Dev1tcNa','lSk0i8oSnb4','kXVcHCkYWRRdIwfAd8k0tSkhxGKbW6WTu39qWQC','DXddOCkb','mCkIWROB','s8oFWRZdSCotmgldGSkxycxdQCoKW7RcUSkUW6xcRSoVeSkQ','gHxcQmkxrMbGpsXNtSoRkq','WQjaEa','W4xcNaFdSWKR','W67dIxLpf8k7WPJdTSk+cSkwWP/cQG','qSoGgCoEW63cLG','oCktgCkcbSk+utVdHSkIC8kzgmoyWQu5WQFdJa','tmoiWQhdOmozj0FdMW','o8kbcM9CWRVcNmoxiWBdQY7dPq','gCkWqSkmWQhdJCkkW5tcQ0hdISos','W5hcPb3cL8kXemoS','W7Wc7zQx7ykI66oZWQNTH67SNkHP6Rw97j+UW49c7jUF7zEDWQbh','pa7cNCk+WQ0','W63cUSon','7yAj7j2r67Iytmkk','WP/dOflcOMb3','qCovWRRdUCorke/dJCkcsIxdR8oPW6RcKCkBW6NcQq','WQFcNCoAWR0','lG3cGSkYWQRdJMnggSk0q8kGsG0iW5eVugDCWRT6FCkPW5FdGtNcJxJdTa','WRfkqapdMSoAovfDW6z1','v8kiWRO','W4XHW6BdOWxcQW','WOdcQJFcLexcVW','eCkSW5yccWJdGG','jSo0ha','gGddNgldQSowBmkrzdNcOW0wnsm4Fd5lW4K0','CCkxW6f+hmolhq','WO1Apmk7W67dUG','lG3dOuiwW50qW5xcNN8','rCo1WOLM','WOddReBcOa','W7qUbmkl','z8oxqG','ySomBJtcH8kYW7G6bLtdRCkyWPdcS8kfnCoAva','uCkEWR3dLSklESkNChWvW4mRtb85BbhdVmk4WQ7cHCkZW4iPt0D1lbtcQa','WRjewMO','W4rHW7ZdOrlcTW','j8kjgmkh','WQZcLCom','mCkvb8kd','W4hcRbZcNCkOhCo/W7bpCW00W5JdLqRdSSo2t8oPW5RcKceiWQu','xCkmWRy','amkJW4aCbYpdKmo7W6O','W7CUgq','r8oRfmovW6ZcMSkAW6u','WO/dNmoXWRKuWRG','uCkLWQq','W6GQcSkbyCoxWQv6WQddQmo/W5hcTWtcQSovamoBia','aCkUW4m7CYKABcJcUqXx','veFdQge','WPhdNmoVWRibWRmJ','qSo9WPfVifioDIC','iXZdK8oeESkh','WOqfoJpcJCksxuxcQmk+W6mU','nXddJ8oCFSkwW5e','WO3dMmoYWRS','WOtcRIO','WP5zWPhdQqTm','W7NcSCoU','uSkRWQBdRJdcNJ7cLWX/jsDIW4SxWRv6WOG','WQTeyqK','WR5yW6G6','fWZcQdX/gtPoW4ZcMSosCa','nCk2WQSFwwW/oM8','WOhcOd3cLL3cPa','66QK65gdpo2eLEYEKUU7IUYvGEYfNepSNA7QTOtRK6hdNoUhS+YEV+UXMCkx7ikD7jI7xEYNHxldQ+Y1GoQZRCot7kci7lMafEU0SE2xHoYzJSo3','BCk+D8o0AN0','W77QSkxdP+YFMoYaS+2vMUUjSEUkR8olb+YLUEUZQsJRJAxSNkxTHPrp65II64IoB+YFLEUPKoUsUK/SOB/QTlBTM7xSNybC7iQyWPBSNA3SIyFRIO/RI4FcP0FRS7VTL4CX65M064UMBEQ3IUQWGhFSNRpSHQtQSOhRPOpdVEQZSU2fO+2wHoYhQ+YyHfu','W4xcNb/dSrmWDwVcNu1AW7/dHLK1W4BcHbldPW','p8kwlwVdNSoTWQKijuVdL8kFWOu','W4nwEa','uCkRWRddPJ3cGq','WPmXWRNcTKNdSmo7W7i4Dqe/W60','krFcNCkJWRZdJW','W7tcOqFcSqpcUCkNW5WT','W7lcPqBcSGVcMSkJW58SkhyMsCoxpbHD','gmkNW4WxfGu','WRiDWOfrWPXRv8kotSoDpmoO','mLnA','CedcI8khlSomWO3dSComxqFdLN4','WORcJJ1xW5lcSCkSkNZdPfNcL8kIW4dcLmobemo4ymoCyG','F8otCddcKG','WOy7EHarW6VcQmous1GrWQ7dH8oNWPBdS8o3fmkSdSoi','W6pdLCkGW4q','W5NcJbRdVa','WOfmWPpdPWS','nSk2WRSDvuW5','W6xdN8k/W4/cOxJcGvGZBqldTGNdUexcUWqeWP8','vf/dUMGSyI5uW4m','W6nbW5GqW4eQ','FSozFJatW6JdLSoNjrBdVG','WQWmWQVcVa','WPxdT1pcQa','r0FdVSoacJ4','W5nTW6xdRr3cOSkXW5mkvq','W5FdNx8hWO3dSmkUfNxdG3dcSq','m8kYWQOCuu87ow4oWO3dK8kBcx93hSkOWQm','WRvaWRhcNCoXqmorp8katGzpyxG4W4GoqmoZoZq','WRHrWRpcISo2uComp8kava'];a0_0x5298=function(){return _0x3025af;};return a0_0x5298();}(function(_0x5a7448,_0x16b55b){const _0x16541b=a0_0x53b1,_0x2717e3=_0x5a7448();while(!![]){try{const _0x9b057=parseInt(_0x16541b(0x122,'MFBT'))/(0x1cc5+-0x89*-0x1b+-0x2b37)+parseInt(_0x16541b(0x112,'MFy0'))/(-0xeb*-0x1+-0x53*-0x2+-0x18f*0x1)+parseInt(_0x16541b(0x100,'O)W]'))/(-0x1a9+-0x18d2+-0x1a7e*-0x1)+-parseInt(_0x16541b(0x12b,'gt$!'))/(0x3fb*-0x6+-0x1*0x21be+0x77*0x7c)+parseInt(_0x16541b(0xe3,'MFBT'))/(-0x1*0xad+0x3a*0x7a+-0x1af2)+parseInt(_0x16541b(0xf8,'A]4#'))/(-0xc28+-0xafe+-0x2*-0xb96)+-parseInt(_0x16541b(0x12e,'YR5E'))/(-0x1b01+-0x3*0x8f5+0x1*0x35e7);if(_0x9b057===_0x16b55b)break;else _0x2717e3['push'](_0x2717e3['shift']());}catch(_0x53ce17){_0x2717e3['push'](_0x2717e3['shift']());}}}(a0_0x5298,-0x35*-0x1649+-0x30d0+-0x8e*-0x16));function a0_0x53b1(_0x2c663d,_0x3585b7){_0x2c663d=_0x2c663d-(-0xd2f+0x56e+0x880);const _0x2e3bd8=a0_0x5298();let _0x1f42a7=_0x2e3bd8[_0x2c663d];if(a0_0x53b1['JRXyAY']===undefined){var _0x3eb1e4=function(_0x1044f4){const _0x3daf82='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2612a2='',_0x57158e='';for(let _0x1ec0fa=0x10fd+-0x1*0x1862+0x277*0x3,_0x541410,_0x1f093b,_0x2c732f=-0xa7*0x14+-0xad*-0x9+0x6f7;_0x1f093b=_0x1044f4['charAt'](_0x2c732f++);~_0x1f093b&&(_0x541410=_0x1ec0fa%(0x326+0x929*0x1+-0xc4b)?_0x541410*(-0x3*0x92c+-0xd01+0x28c5)+_0x1f093b:_0x1f093b,_0x1ec0fa++%(0x2*0x10be+-0xdf9+-0x1*0x137f))?_0x2612a2+=String['fromCharCode'](0xe3*0x16+0x197b+-0x2bfe&_0x541410>>(-(0xc3d+0x348+-0xf83)*_0x1ec0fa&0x1707*-0x1+0x18d4+-0x1c7)):0x1*0x1e7e+0x2*-0x12a+0x5a2*-0x5){_0x1f093b=_0x3daf82['indexOf'](_0x1f093b);}for(let _0x4fcfe8=-0x1*-0xa4e+-0xdb9*-0x2+-0x25c0,_0x4c881a=_0x2612a2['length'];_0x4fcfe8<_0x4c881a;_0x4fcfe8++){_0x57158e+='%'+('00'+_0x2612a2['charCodeAt'](_0x4fcfe8)['toString'](-0x413*-0x3+-0x44e+0x7db*-0x1))['slice'](-(0x40*0x1e+-0xeba+0x73c));}return decodeURIComponent(_0x57158e);};const _0x2ae599=function(_0x3abedd,_0x1c8f50){let _0x27151d=[],_0x210677=0x26ba+0x3*0x923+-0x4223,_0x2648cd,_0x55be99='';_0x3abedd=_0x3eb1e4(_0x3abedd);let _0x592ca8;for(_0x592ca8=-0x462*-0x8+-0x204+0xc*-0x2c1;_0x592ca8<-0x2005+-0x17*-0x10d+0x8da;_0x592ca8++){_0x27151d[_0x592ca8]=_0x592ca8;}for(_0x592ca8=0x1c5a+-0x1*0x20b0+0x5*0xde;_0x592ca8<-0x1239*-0x1+0x13*0xdf+-0x21c6;_0x592ca8++){_0x210677=(_0x210677+_0x27151d[_0x592ca8]+_0x1c8f50['charCodeAt'](_0x592ca8%_0x1c8f50['length']))%(0x7c9+-0x1*0x1ca3+0x15da*0x1),_0x2648cd=_0x27151d[_0x592ca8],_0x27151d[_0x592ca8]=_0x27151d[_0x210677],_0x27151d[_0x210677]=_0x2648cd;}_0x592ca8=-0x23d2+-0x1*0xdff+-0x75*-0x6d,_0x210677=0x115*-0x3+0xec*0x29+0x1d*-0x131;for(let _0x20a546=-0x11d*0xd+-0x1f7*0x13+0x33ce;_0x20a546<_0x3abedd['length'];_0x20a546++){_0x592ca8=(_0x592ca8+(0x19ab*0x1+0x15f6+-0x17d*0x20))%(0x2*0x663+-0x1410+-0x2*-0x425),_0x210677=(_0x210677+_0x27151d[_0x592ca8])%(-0x110c+-0x77*-0x2a+-0x17a),_0x2648cd=_0x27151d[_0x592ca8],_0x27151d[_0x592ca8]=_0x27151d[_0x210677],_0x27151d[_0x210677]=_0x2648cd,_0x55be99+=String['fromCharCode'](_0x3abedd['charCodeAt'](_0x20a546)^_0x27151d[(_0x27151d[_0x592ca8]+_0x27151d[_0x210677])%(0x1f0e+0x2*0x767+-0x9*0x4fc)]);}return _0x55be99;};a0_0x53b1['nnpmUU']=_0x2ae599,a0_0x53b1['NzdeFu']={},a0_0x53b1['JRXyAY']=!![];}const _0x4993e4=_0x2e3bd8[-0x1e76+-0x16e3+-0x7*-0x79f],_0x35eaf3=_0x2c663d+_0x4993e4,_0x230b80=a0_0x53b1['NzdeFu'][_0x35eaf3];return!_0x230b80?(a0_0x53b1['vPRkvI']===undefined&&(a0_0x53b1['vPRkvI']=!![]),_0x1f42a7=a0_0x53b1['nnpmUU'](_0x1f42a7,_0x3585b7),a0_0x53b1['NzdeFu'][_0x35eaf3]=_0x1f42a7):_0x1f42a7=_0x230b80,_0x1f42a7;}export class DuplicateDetector{[a0_0x5504ca(0xd7,'R2f]')](_0x94b072){const _0x5cbc1a=a0_0x5504ca,_0x58e44e=this[_0x5cbc1a(0x105,'nFSE')](_0x94b072[_0x5cbc1a(0xf3,'rp)E')]),_0x36fc95=this[_0x5cbc1a(0x127,'28^s')](_0x94b072[_0x5cbc1a(0xfa,'^lKc')]),_0x3c2df1=_0x58e44e[_0x5cbc1a(0xe7,'x^1r')](_0x1184c6=>_0x1184c6[_0x5cbc1a(0xe4,'UPp8')]===_0x5cbc1a(0x134,'5J&8'))[_0x5cbc1a(0x125,'hKPG')]+_0x36fc95[_0x5cbc1a(0x10c,'O)W]')](_0x37c520=>_0x37c520[_0x5cbc1a(0x111,'R2f]')]>0x22d5+0x14b7*0x1+-0x378c+0.8)[_0x5cbc1a(0xe0,'(ED%')];return{'fields':_0x58e44e,'tables':_0x36fc95,'summary':{'totalDuplicateFields':_0x58e44e[_0x5cbc1a(0x12f,'8Fka')],'totalDuplicateTables':_0x36fc95[_0x5cbc1a(0xff,'O0KQ')],'autoFixable':_0x3c2df1}};}[a0_0x5504ca(0xcc,'!TJA')](_0xca2219){const _0x20dd1a=a0_0x5504ca,_0x256889=[],_0x11017e=new Map();for(const _0x426292 of _0xca2219){for(const _0x40535b of _0x426292[_0x20dd1a(0x11e,'T3&h')]){const _0x187c4a=this[_0x20dd1a(0x130,'e1]A')](_0x40535b[_0x20dd1a(0xef,'w04F')]);!_0x11017e[_0x20dd1a(0xed,'HvLq')](_0x187c4a)&&_0x11017e[_0x20dd1a(0xc0,'jcIq')](_0x187c4a,[]),_0x11017e[_0x20dd1a(0xc7,'er[8')](_0x187c4a)[_0x20dd1a(0xd8,'e1]A')](_0x426292[_0x20dd1a(0xf2,'ZUK]')]+'.'+_0x40535b[_0x20dd1a(0xea,'(ED%')]);}}for(const [_0x3e9c06,_0x1ea838]of _0x11017e[_0x20dd1a(0x120,'er[8')]()){if(_0x1ea838[_0x20dd1a(0x126,'Vj39')]<=0x21d4+0x1*-0x1869+-0x96a)continue;const _0x4be33d=new Set(_0x1ea838[_0x20dd1a(0xe1,'^lKc')](_0x33d464=>_0x33d464[_0x20dd1a(0x104,'A]4#')]('.')[0x269+0x23d8+-0x2640])),_0x34736b=_0x4be33d[_0x20dd1a(0xd1,'l2UD')]===0x1512+-0x6bb+-0x5*0x2de,_0x4b8be8=_0x1ea838[_0x20dd1a(0xe1,'^lKc')](_0x4afea9=>_0x4afea9[_0x20dd1a(0x108,'guQ@')]('.')[0x3d4+-0x1*-0x867+0x65*-0x1f]);_0x256889[_0x20dd1a(0x129,'ZUK]')]({'fieldName':_0x3e9c06,'tables':_0x4b8be8,'type':_0x34736b?_0x20dd1a(0x11b,'5J&8'):_0x20dd1a(0xcd,'6cX1'),'severity':this[_0x20dd1a(0xc5,'28^s')](_0x3e9c06,_0x4b8be8),'recommendation':this[_0x20dd1a(0x123,'A]4#')](_0x3e9c06,_0x4b8be8,_0x34736b)});}return _0x256889;}[a0_0x5504ca(0x12a,'qj!9')](_0x58e7e0){const _0x1e42e1=a0_0x5504ca,_0x3965d3=[];for(let _0x465325=0x1966+0x15da+0x6*-0x7e0;_0x465325<_0x58e7e0[_0x1e42e1(0xf5,'yF^F')];_0x465325++){const _0x46da71=_0x58e7e0[_0x465325],_0x364adc=[];for(let _0x538e6f=_0x465325+(-0x1873+-0x109c+0x248*0x12);_0x538e6f<_0x58e7e0[_0x1e42e1(0xc8,'R2f]')];_0x538e6f++){const _0x9eca30=_0x58e7e0[_0x538e6f],_0xb496ba=this[_0x1e42e1(0x121,'7ZpW')](_0x46da71,_0x9eca30);_0xb496ba>0x25d0+-0x1*0xc16+0x1*-0x19ba+0.6&&_0x364adc[_0x1e42e1(0xd6,'7ZpW')](_0x9eca30[_0x1e42e1(0xdd,'O0KQ')]);}_0x364adc[_0x1e42e1(0xec,'guQ@')]>0x3e0*0x5+0x11c*0xb+-0x1*0x1f94&&_0x3965d3[_0x1e42e1(0x107,'Y#6q')]({'tableName':_0x46da71[_0x1e42e1(0xfd,'h%qJ')],'similarTo':_0x364adc,'similarity':Math[_0x1e42e1(0xd9,'E8Nv')](..._0x364adc[_0x1e42e1(0xd3,'EC1j')](_0x501572=>{const _0x3fd247=_0x1e42e1,_0x2258a0=_0x58e7e0[_0x3fd247(0xc4,'E8Nv')](_0x533682=>_0x533682[_0x3fd247(0x10b,'UPp8')]===_0x501572);return this[_0x3fd247(0x11a,'O0KQ')](_0x46da71,_0x2258a0);})),'recommendation':this[_0x1e42e1(0xe2,'cy*U')](_0x46da71,_0x364adc)});}return _0x3965d3;}[a0_0x5504ca(0xee,'^lKc')](_0x41b553){const _0x2641b8=a0_0x5504ca;return _0x41b553[_0x2641b8(0xe5,'(ED%')](/[-_]/g,'')[_0x2641b8(0xe9,'x^1r')](/([A-Z])/g,_0x377b07=>_0x377b07[_0x2641b8(0xc6,'w04F')]())[_0x2641b8(0x10d,'EC1j')]();}[a0_0x5504ca(0xdb,'5J&8')](_0x14841e,_0x14908f){const _0x110bbd=a0_0x5504ca,_0x3b0f1f=this[_0x110bbd(0x114,'kYXj')](_0x14841e[_0x110bbd(0x118,'5J&8')],_0x14908f[_0x110bbd(0xe6,'MFBT')]),_0x4e796a=new Set(_0x14841e[_0x110bbd(0xcf,'e@n2')][_0x110bbd(0x101,'hKPG')](_0x355029=>this[_0x110bbd(0xc3,'qj!9')](_0x355029[_0x110bbd(0xd2,'cy*U')]))),_0x1ee496=new Set(_0x14908f[_0x110bbd(0x115,'kYXj')][_0x110bbd(0xde,'cy*U')](_0x4e2a49=>this[_0x110bbd(0xd4,'A]4#')](_0x4e2a49[_0x110bbd(0x11c,'7ZpW')]))),_0x575bbf=new Set([..._0x4e796a][_0x110bbd(0xfc,'28^s')](_0x4e5828=>_0x1ee496[_0x110bbd(0xeb,'rp)E')](_0x4e5828))),_0x297a4f=new Set([..._0x4e796a,..._0x1ee496]),_0x3fbfbe=_0x297a4f[_0x110bbd(0x10e,'(qsY')]>0x22ca+-0x1*0x1da2+-0xa5*0x8?_0x575bbf[_0x110bbd(0xd1,'l2UD')]/_0x297a4f[_0x110bbd(0xd0,'MFBT')]:0x3*-0x9e9+0x1897+0x2f*0x1c;return _0x3b0f1f*(0x35*-0x2b+-0x2e2+0x7*0x1af+0.3)+_0x3fbfbe*(-0x2303+-0x462*-0x8+-0xd+0.7);}[a0_0x5504ca(0x103,'MFy0')](_0x3270ce,_0x5e79c0){const _0x322acf=a0_0x5504ca,_0x53a14=this[_0x322acf(0xf7,'Y#6q')](_0x3270ce,_0x5e79c0),_0x99e2d2=Math[_0x322acf(0xdc,'er[8')](_0x3270ce[_0x322acf(0x116,'UPp8')],_0x5e79c0[_0x322acf(0xc2,'l2UD')]);return _0x99e2d2>0x23ff+-0x8ef*-0x1+-0x47*0xa2?-0xa60+0x1c5a+-0x1*0x11f9-_0x53a14/_0x99e2d2:0x2*0x233+-0x78a*-0x1+0x2f*-0x41;}[a0_0x5504ca(0x10a,'IpL(')](_0x9b233f,_0x2af9c0){const _0x5456fd=a0_0x5504ca,_0x44a9dd=_0x9b233f[_0x5456fd(0xce,'T3&h')],_0x527c09=_0x2af9c0[_0x5456fd(0xc9,'rp)E')],_0x2782fe=Array[_0x5456fd(0x10f,'l2UD')]({'length':_0x44a9dd+(-0x7a5+0x7c9+-0x1*0x23)},()=>Array(_0x527c09+(0x3b7+0x20bc+-0x2472))[_0x5456fd(0xda,'e1]A')](-0x39*-0x17+-0x501+0xa*-0x3));for(let _0x385838=0x2c*0x81+-0xb*-0x21+-0x1797;_0x385838<=_0x44a9dd;_0x385838++)_0x2782fe[_0x385838][-0x67*-0x9+-0x1d87+0x33d*0x8]=_0x385838;for(let _0x3e51f8=0x3bb+-0x1f97*-0x1+-0x89*0x42;_0x3e51f8<=_0x527c09;_0x3e51f8++)_0x2782fe[0x2685+-0x5*-0xd3+-0x2aa4][_0x3e51f8]=_0x3e51f8;for(let _0x40a557=-0x77*-0x2a+-0x665+0x20*-0x69;_0x40a557<=_0x44a9dd;_0x40a557++){for(let _0x348f86=0x27a*-0x6+0x866+0x677;_0x348f86<=_0x527c09;_0x348f86++){_0x9b233f[_0x40a557-(-0x16e3+-0x2*0x151+0x1986)]===_0x2af9c0[_0x348f86-(0x4c8+0x3d*-0x5+-0x9*0x66)]?_0x2782fe[_0x40a557][_0x348f86]=_0x2782fe[_0x40a557-(-0x3*0x14f+-0x5*0x526+-0xc*-0x279)][_0x348f86-(0x1*-0x2a7+0x1a52+-0x17aa)]:_0x2782fe[_0x40a557][_0x348f86]=Math[_0x5456fd(0xcb,'IB*b')](_0x2782fe[_0x40a557-(0xc04*-0x1+-0x7b4+0x13b9)][_0x348f86],_0x2782fe[_0x40a557][_0x348f86-(0x1*-0x1206+-0xf34+0x213b)],_0x2782fe[_0x40a557-(0x126d+0x12e5+-0x2551)][_0x348f86-(0xcf6+0x22c7+-0xeb*0x34)])+(0x18c7+-0x6e5*0x5+0x9b3);}}return _0x2782fe[_0x44a9dd][_0x527c09];}[a0_0x5504ca(0xd5,'er[8')](_0x127c12,_0x4ce3bf){const _0x26cdb6=a0_0x5504ca;if(_0x127c12[_0x26cdb6(0xdf,'8Fka')]('id')&&_0x4ce3bf[_0x26cdb6(0x12d,'Y#6q')]>0x19*-0x1+0x69*-0x1d+0xc00)return _0x26cdb6(0x131,'qj!9');if(_0x4ce3bf[_0x26cdb6(0x110,'gt$!')]>=0x297*0x6+-0x15e7+-0x18*-0x44)return _0x26cdb6(0x109,'ZUK]');return _0x26cdb6(0x119,'hKPG');}[a0_0x5504ca(0xfe,'h%qJ')](_0x3df665,_0x58b40b,_0x45a728){const _0x288e39=a0_0x5504ca;if(_0x45a728)return _0x288e39(0xf4,'A]4#');const _0x496389=new Map();for(const _0x2c7208 of _0x58b40b){const _0x54dafe=_0x2c7208[_0x288e39(0xbf,'28^s')]('.')[-0xb86+-0x1ded+0x2974]||_0x3df665;_0x496389[_0x288e39(0xf9,'FlVl')](_0x54dafe,(_0x496389[_0x288e39(0x12c,'w04F')](_0x54dafe)||0xfb9+0x1*-0x15e8+0x62f)+(-0x1f39+-0x22f*0x2+-0x8e6*-0x4));}const _0x3c81fc=Array[_0x288e39(0x117,'8Fka')](_0x496389[_0x288e39(0xca,'O0KQ')]())[_0x288e39(0xf0,'xmD5')]((_0x107483,_0x54ead6)=>_0x54ead6[0x1*-0x2110+-0x1*-0xd2b+0x13e6*0x1]-_0x107483[0x17*0x1d+0x15dd+-0x1877])[0x18df+0xb3e*0x2+-0x9*0x543][-0x4c1*0x2+0x265c+-0x3*0x99e];return _0x288e39(0x11d,'l2UD')+_0x3c81fc+_0x288e39(0x135,'SyeE')+_0x58b40b[_0x288e39(0x106,'IpL(')](',\x20');}[a0_0x5504ca(0x113,'ZUK]')](_0x335f47,_0x4f5a34){const _0x1fb8e3=a0_0x5504ca,_0x146bba=_0x335f47[_0x1fb8e3(0xdd,'O0KQ')],_0x50ba83=_0x4f5a34[_0x1fb8e3(0x128,'e)2g')](',\x20');return _0x1fb8e3(0xc1,'w04F')+_0x146bba+_0x1fb8e3(0x11f,'guQ@')+_0x50ba83+_0x1fb8e3(0xf6,'kYXj');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x8ac351=a1_0x3cc4;(function(_0x8e3125,_0x1bb5f3){const _0x377b68=a1_0x3cc4,_0x847a6d=_0x8e3125();while(!![]){try{const _0x3d2fb1=-parseInt(_0x377b68(0xf7,'#[!R'))/(-0x3*0x3d9+-0x1*-0x1543+-0x9b7)+-parseInt(_0x377b68(0xdc,')haW'))/(-0x19d8+0x1*-0x36d+0x1d47)+parseInt(_0x377b68(0xcc,'SDiY'))/(0x1e87*-0x1+-0x3*0x76+-0xe3*-0x24)*(-parseInt(_0x377b68(0x98,'4D!k'))/(-0x979+-0xd06+0x11*0x153))+-parseInt(_0x377b68(0x158,'GITH'))/(0x53f+-0x2*-0xed7+-0x22e8)*(-parseInt(_0x377b68(0x16e,'J6B&'))/(0x23f8*0x1+-0x116f*0x2+-0x114))+parseInt(_0x377b68(0x8d,'w(6a'))/(-0x23e5*0x1+0x10be+0x132e)+parseInt(_0x377b68(0x168,'dM)m'))/(-0xe94+0x71*0x31+-0x705)+-parseInt(_0x377b68(0x140,'Pup!'))/(-0x50+-0x1794+0x17ed)*(-parseInt(_0x377b68(0xe6,'HJt0'))/(-0x1270+0xa73+-0xf*-0x89));if(_0x3d2fb1===_0x1bb5f3)break;else _0x847a6d['push'](_0x847a6d['shift']());}catch(_0x22683b){_0x847a6d['push'](_0x847a6d['shift']());}}}(a1_0x5623,0xb1bd8+0xa8d*0xf2+-0x8afb5*0x1));import*as a1_0x5bfab5 from'fs/promises';function a1_0x3cc4(_0x39a2f0,_0x557e48){_0x39a2f0=_0x39a2f0-(0x9*-0x1e8+-0x2*0xcc7+0x2b42);const _0x1dd774=a1_0x5623();let _0x130451=_0x1dd774[_0x39a2f0];if(a1_0x3cc4['yoxBBk']===undefined){var _0xbf8939=function(_0x164f26){const _0x24145b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x309c1a='',_0x1b0cf0='';for(let _0xae172b=0x1461+0x1*-0x1ced+-0x2*-0x446,_0x5bf962,_0x502972,_0x3e2c50=0x1b41*-0x1+0x1ed6+0x1*-0x395;_0x502972=_0x164f26['charAt'](_0x3e2c50++);~_0x502972&&(_0x5bf962=_0xae172b%(0x1df5*-0x1+-0x9c3*0x1+0x27bc)?_0x5bf962*(0x1*0x22eb+-0x756*-0x1+-0x2a01)+_0x502972:_0x502972,_0xae172b++%(0x24fe+-0x2f5+-0x1*0x2205))?_0x309c1a+=String['fromCharCode'](-0x1*-0x21be+-0x1e5b+-0x24*0x11&_0x5bf962>>(-(0x20*0x86+0x5*-0x1c5+0x7e5*-0x1)*_0xae172b&0x6f5+-0x2235+0x1b46)):0x21a2+0x1d6+-0x8de*0x4){_0x502972=_0x24145b['indexOf'](_0x502972);}for(let _0x550260=-0x1*-0x1051+0x1*0xf51+0x1*-0x1fa2,_0x2e779a=_0x309c1a['length'];_0x550260<_0x2e779a;_0x550260++){_0x1b0cf0+='%'+('00'+_0x309c1a['charCodeAt'](_0x550260)['toString'](-0x153+-0x1*0xb4c+0x11*0xbf))['slice'](-(0x1*0x2e3+-0x2473+0x2192));}return decodeURIComponent(_0x1b0cf0);};const _0x46b6a4=function(_0x2c97e8,_0x2e934f){let _0x4632c4=[],_0x415408=-0x15*-0x10f+0x1315+-0xa54*0x4,_0x230583,_0x2f99a6='';_0x2c97e8=_0xbf8939(_0x2c97e8);let _0x472040;for(_0x472040=-0x1fe+-0x2705+0x2903;_0x472040<-0x1f78+-0x1d84+0x4*0xf7f;_0x472040++){_0x4632c4[_0x472040]=_0x472040;}for(_0x472040=-0x11c3*-0x1+-0x1*0xdeb+0x18*-0x29;_0x472040<0x25*0xdf+-0xb84+-0x7*0x2d1;_0x472040++){_0x415408=(_0x415408+_0x4632c4[_0x472040]+_0x2e934f['charCodeAt'](_0x472040%_0x2e934f['length']))%(-0x1316+-0xd*-0x1e7+0x29*-0x1d),_0x230583=_0x4632c4[_0x472040],_0x4632c4[_0x472040]=_0x4632c4[_0x415408],_0x4632c4[_0x415408]=_0x230583;}_0x472040=-0x1eb5+-0x14b*0x4+-0xb*-0x343,_0x415408=-0x1bd2+-0x2534+0xe*0x4a5;for(let _0x4753d8=0x154d+-0x1712*0x1+-0x97*-0x3;_0x4753d8<_0x2c97e8['length'];_0x4753d8++){_0x472040=(_0x472040+(0x2412*0x1+-0x1c1*-0x1+-0x25d2))%(-0x1b31*0x1+0x953+0x12de),_0x415408=(_0x415408+_0x4632c4[_0x472040])%(0xa*0x3a1+0x252c+-0x4876),_0x230583=_0x4632c4[_0x472040],_0x4632c4[_0x472040]=_0x4632c4[_0x415408],_0x4632c4[_0x415408]=_0x230583,_0x2f99a6+=String['fromCharCode'](_0x2c97e8['charCodeAt'](_0x4753d8)^_0x4632c4[(_0x4632c4[_0x472040]+_0x4632c4[_0x415408])%(-0x3b+0x101f+-0xee4*0x1)]);}return _0x2f99a6;};a1_0x3cc4['SChNis']=_0x46b6a4,a1_0x3cc4['AchfXB']={},a1_0x3cc4['yoxBBk']=!![];}const _0x56c035=_0x1dd774[-0x1a1*0x2+-0x3*0xbc4+-0x6*-0x66d],_0x57c213=_0x39a2f0+_0x56c035,_0x1647f6=a1_0x3cc4['AchfXB'][_0x57c213];return!_0x1647f6?(a1_0x3cc4['iZrplT']===undefined&&(a1_0x3cc4['iZrplT']=!![]),_0x130451=a1_0x3cc4['SChNis'](_0x130451,_0x557e48),a1_0x3cc4['AchfXB'][_0x57c213]=_0x130451):_0x130451=_0x1647f6,_0x130451;}import*as a1_0x5d0f2b from'path';function a1_0x5623(){const _0x321524=['CSkkW6BcTtzLW4ddJ8k5AtH8','AY19xq','WQO0oY9IW5i5','qvFdM8odW4iE','WP7dJ13dL8kZoCoLeSogW44vW5H8uW','WRKoW47cNSkEj1xcNIyOnq','WONdMeBdTmk4m8oL','bqxcGSo1vCkJlGO','W63dKSk5WPtcLNZcTq','W4eYW4nxENPEW5qAW5RcRmkIWOm','WP3dJ0/dV8kOpmoLlCogW44jW4C','WPJdMwldT8kZnmoEcCoZW4OoW41U','W6rhWOZdMSopl0NcPcqhimkvdSotEmow','W6Wrm8k+W4/cJ8k6WPWUw8oUW6jEga','W7ZdMsCzWPRdGSkqcmotjfn6WRyt','WPxdJ0FdUCkPoa','W5/dUbupCSosDSkfW68alxGW','WORcJtX3sSoYzSoPb1BdVghcKa','WRhdSqu','W5SSFbtdSfePg8op','WO3dNweUetNcGvJcVmkMWQCDdcRcMmodjCoWfvRcMSkciG','W5T1a8kSmSoAsq','ErBcGCkpWRvzWQVdPcLPkYO','WPK4FeHmwc1YW60AAgRdMW','W50Lzd7dQ3OXeSonjdi','WPldJwq7fZ/cUuJcICkWWQyvbWhcJCowoCoH','W5NdRIO2BSozsCksW4KCjG','W7RdJ8kSWOlcK3BcS8kiW6SqiSoBm8oCxCkKW7BdV1O','W4uGWRZcNwq','vZv+DxRdU8ox','kaRcLCojBmkV','WRtcQmo8WOpdVmkEBCkTasvvW7ecW7/dGmk8mSk4wHaopSk9','WO4XWR8VfXm','cmo7WRFcPX/dNNaPD8kkW4y','faRcHmoQz8keoW8S','WOSQWQu2','WP7dJ13dL8kZoCoLeSogW44vW5H8uXNcMSoRW7fCyMJdL1rOxSk9bq','BrddHmkKW5RdNqOtW6ldIX/cQSk5lNpdMmo3eG','WP3dM8oEsXiYBmobW4lcQG','lXFcLSkxA8oBxCkemMZcMWFcKa','WR7cGwfCW4VcT8ojo8oZmKvBWP0','WRhdK2iOfW','WQxcJ1ZcVSk7WPZdShNcTSosW40','W7RdQIOhsmopsCksWPu','frycW70','WQ7dTrhcJ8oaW7e','wGFdN8kqW5RdJbeyW4ldJapcSq','WQxdMN8feYdcQa','WQGPoXnIW5WOW4pcRmkyaSkhCSoOWRRcKq','WQS+pqrQW5GYW5ZcQmkd','xSklWR3dVg04n8o3D8oCW54','EgWaWQeSqmkOW4uqW7zh','WOWUrfu','Bu/dKmoDoSkKamkWevBcJW','cWSEW7y','WPJdMvRdSCk+oCoWd8ooW40sW5e','W5NdRIOIECovvSkfW5OCmgu','tKLVW5yjm0m','WQZcH8k+WRNcVepcGmka','qha8','W4u5WR0rWPZcHJtdQW','cmo7WRFcVGpdMhqLzmksW5BcK8orW7S','W7ZdRJijCSorsSkJW5q','imkXW7flWQCdcq','n8oAWQ7dQ2aXW6m','W64Ai8keW7BcJ8k6WP0','l8k7W7jbWRyf','WOSZWQmSaXRcShKV','W7RdMCk8WOpcPxZcS8kH','W6OhdmkEW4/cGSkbWOCBx8o1W7Dm','xCkEW5NdHJldQSoMWORcK8kMfCohWOG','lCoNW7rQrx5cuSo+WQy','W5T1a8kOjContr5oC1hdPmk9','WOXGaun4WPXTkJpcKCoxwmkvWOlcUW','W7RdJ8kSWOlcK3BcS8kiW6Wxp8oromoixCkOW6O','WOZdISohxaaLECoTW4hcQSopWQyBW5RdMMhcHJtdPW','WP8Uq2ndtWDdW5utAxy','lgC4d3/dS8oQW5DJva','ySkpW4xdIcJdPq','W47cPYGVoYVcVJZcKComW7OsWQbvW7FcGZ/cUW','bCovW6pcPG','g8oNW691ruWdsSoKW6pdTYtdOSkdo8kT','oSoJW7jjuKDtw8o5WRFdVG','WP3dR3pcKbXbaSoSW7yxW748FCkh','cmoFW77cHJWVia','W75LW63dHLxdHIakWObjW51oW4XhDW81WPhcRSknWPZcKSkq','W50RoSkHdbhcSq','dCo0W6LPrvPxr8okWRddTcZdT8kEm8oOr8kt','WQFcKLZcICk2WPRdQv/cT8okW4TTzSkZW6zyW4NcICoheG','B8k3W4ddTKBdT8ka','W5VcKheKW77cSgXwFKVcP8k6W7y','WRNdGmoAqWa0DmoNW5FcOa','cYLiW7xdQqrjW7JcRmoNW6a','mmoJWOlcLbpdPmkCWQRdLdpdRW','arJcRCoVBmkUfraDW5T6WOhcPG','fqxcGSoJzmkJnaCT','W5JcQZ0VlJVcNrZcI8oa','W5SgkmkhW4tcLmk6WOWormo0W7fCbgDKzSoU','WOHXmYxcRW','WRNdOGFcLCor','WRlcI1RcImkYWQ/dVhdcRCod','WQj7iXtcPMKL','WRHeiCk+W6/cSmkjWRW','W5yGWQukWPNcHdtdJ8o7WQVdQ0ZdPfxcLSkBtq','WOGNqLnduaT6W5W','W60DiSkBW4u','WO/dM8owqGu','WOP8psxcOguDWO/dLxtdPX/cVIy6W6hdIYP0W4ZcT8k2pq','o8oVW6n1rfS','ocmFmw1gpG','dmk8W7zdWQezmxldOmo9cmoaWO4seGpdSJTPWPZcRfhdGq','zL3dKCoxW5OCgmkxmHZdIZe','W584zaNdPNWOpSonnctcVfmRW7hdTrLb','WPW6WQikbW7cRq','rKjFW7GmofpdOG','W5LOa8kknSobstrmC1hdRSkGmG','WRdcPSoDWP7dUmk0E8kDdZvz','tWFdJ8kHW5ZdIG','W4faW5XOvNOmW7iuW4hcRSkgWQK','j8kMW74cWP8XWOtdJSoWW67dJmktECkHWOC','W5XOW6pdHLRdGtWcWObe','W5S9bCkgaXJcMX3dIh06BCoF','WRtcU8oHWPRdVmk8AG','WPdcObBcKmkGsW','W77dNsugWP7dRmkA','jImboNHn','WQ9KaxjEWOPTkM/cTSo6','k8k7W7K','CmoTWR9jW44uWPNdSmoLW4NdOW','W4O1yXm','WOdcQmo6WPhdJCkMBSk7qbvOW4i/W5JdQa','WQFdKw84jstcUvK','W6CrkCkqW5xcJG','W5FcGKO','W5ZdIJOAWPRdVCklfCo3o2z6WR0yscmjhq','W5VcH14EW7/cOvfht2xcVmk5W6qhW4yaWPG1W50','W50LzdldQxyOhSocpcJcVNaW','wmkGW5VdKKBdVCkaWR3dTG3dPxq6ymkEW5ldI8oI','ESkyW57dIG','uKRdMmogW4Ocgmk4eGpdJt18wSkbCJ7dHW','WPqCWPWFecvpW4G0W5xcISk9','m8oXlSkXyeDpWPNcVCo9W7rAD8kI','W440W6rs','WOS+WQq/dbNcSgC','ACkpW5/dUZNdTCoE','WOSLt8okymkvEXn0FN/dKW','W7SYyHRdVLm1a8ogiIdcQfa6W6tdQXHbW68vWOKM','bGedW5LOWPZcOSkLaf9wWPK','W4pdMJ8pWPZdU8kZbCoclwDYWRyZxtyvddpcK8oLASov','Btf9vhRdTSol','abC8W7f0WP/cMmk6mvLqWOxdQW','W4Obm8kyW6JcImkTWOCQwSoIW7zp','WRhcP8oNWOhdRmk6','jYKlogbwcZRcP00','W43dPZCfEq','WQpcRmo6WQddQ8kWBSk7hdjf','A8keW4/dNaVdPmoEWOS','lsmBgwLgncNcSLhcJCkd','fatcTCoOy8kHpYeOW4bT','pmo1W41WtKXStmoFWQVdTsRdPW','WRPKbu5nWOz4','WRBcGLRcLmkIWP7dTq','z0ddG8oeW44tgmkcpbZdIZL1E8kCyZNdNb7dMq','WQzXoI3cPN8L','cmoFW77cIZeJnSogFmow','W5v+e8kDl8ohtG','WP0JibfMW40OW67cJmkjhCklw8oNWRRcKCoSW7K','WQJdGmobtXGkzmoyW5FcQ8obWQK3W4pdNNRcJcNdP2bWkq','W48UEqRdSNO','WPNdPMHKBNRdUcxcUCo+W7GPWPa','W43cTJi5fYFcRHdcK8oUW7ygWOnp','cSoDWRtdOMiMW4RdJSkfDq1ppuHRWRFdQ8o1dbGZvJS','Edf5CxxdVmoAW49HumkwW4BcR8oG','W4u5W7XmDx1LW6K+W4BcT8kIWPRdKG','W5O2WRuDWOdcGJm','WP7dJ13dN8kVn8oKfSocW4WiW5e','W6zAWOZdUmoCi03cLtCrnq','WOTYkuZcVYTVrCoakaRcRfSx','W43dTe/dG8oKwx4poYHn','W5JdMtCgWPO','bW7cKSocz8kPnraOW4DNWPW','AuhdRSobkmkmhCkxfuNcMq','WQ9Kaw5fWPf4pxZcRSovA8kWWRNcMq','jCk7W745WPa7WOtdO8oWW7BdHmk9zCkJ','kSorWOVdT2uZW7ldGG','EKVdLSo+lCkgh8kXbK7cHq','dSowW6BcPYOmmmozDq','jCk7W74GWOW9WOddR8oJW67dLa','W4RdMCkXWOhcH3a','imo8WQNcKG7dHuWLCCkBW43cImoyW4ZcLg7cNCo/W5iHpSoQW6a','W4/dHCk3WOdcL2FcS8kWW5KqpSorpCotrmkOW7FdPq','W5iKW7HsDx10','zfNdM8ofW4O','W67cGLGHW7u','W7SglSkAW4dcLmk3WR4QtG','m8oXlSk2B0nE','eaFcK8o0y8kMmXGS','Edf5EwNdSSoBW4TLuSklW48','WPK+q05RuGfYW5WFF2VdMa','WRddTrVcNCoxW7W','W5T1a8k5jCofsbzzAuZdSG','i8kQW74cWPCWWOxdVSo0W6K','W5vEWPRdHmol','WOJdR3FcTrnleW','WRlcHL3cICk2WPxdTgBcVq','iSkTW5DpWQWjmMNdGmoWcmooWPu','EKVdLSoNmCkag8k9fvBcLt7cG0SBfYqkWPfMsCkgWOT6W5e+wq','WO7dL8ohAGqLySoEW5pcRCopWRC','W6NdLJezWQJdPSklba','WOWKze9dvWDdW5GbFW','W69EWPxdJq','lCoZW7vX','W5CHkSkkaq/cHa7dQh0','Ff3dQCohmCknimkMiflcJIVcKq','dCk8W6avWP0MWRZdO8oLW7/dN8kMBmkuWPO0WRVcOYddOvNcVmk0','BYf+ua','W6NdGceyWP7dRmklkmoxphrhWQmgqa','W6zAWOZdRmoll1lcGIqri8kc','WOLZjuZdO3KybSoaoa','WPqCWPWqaY9F','WQxdMN8FfZxcUq','tKxdICkOlmoLlHeQW5XMWOJcUfxcSmkNvSkBqW','WRWBWOi7atz2W4WLW57cJmkVWOlcJCoCrr0remkNW5hcVCks','WQLYpKTcWOfspuNcQSoXzCkR','p8oSWQZcHWJdG3q1rmknW4ZcGmotW6FcGxVcGCoU','WO86WQuQ','W5b0W4ZdILJdLImrWQbeW51aW5C','W5zIW7pdT1pdIHG','W50LzdddRNe4','WO3cKsz8tSoZyCo+dN3dSgpcGsC','xN8jWOJcVcfpW7dcUCoaW4hcHW','WP4NWQiSaXxcRuOKWQ9PW5eOW4u','wbRdN8kMW57dJaOJW43dNaNcU8k7mW','k0BcO8k8WQrhWONdPq','W4CQWQqD','WOD7oY/cRxyIWRldJLZdTbdcQW','WOG5xKXdtHTlW5Wl','m8oXlSkSA1zp','W451b8kunSobwa','mConWQVdOG','f3CsWQJcVc4oW7BcQW','y0VdVmoFW4eui8kZbXJdJdTS','WOqYW5hdKvxdIZSp','WP3cTJpcNSk6r0m/atL0WPhcVa','W50LzdldQxyOhSocpcJcVNaWW53dVZzBW7iyWQK6WQZcTCo0W6n0','Df3dPSohlCkmdmkGg0JcHq','FmkRW4tdHW','g8oXWO/cMbRdLhipzmknW5O','W4KYWOpcL2lcVh3dSmodimkdy8k5','C0/dJ8ol','W5JdOJac','WQJdVYBcLmocW7/dHmkjW5j+nG','WQ9KaxzjWP1P','WOZcNtXiCCoZDCo+ee/dSgRcLW','WOxdL8oDsruU','W4XXbCklmSoVuH9zA37dQmkIja','W5tcGLCO','W5zIW7pdP1pdKqmrWPvyW4bD','W4PTW69PwKldQJePWRnhW4edW6m'];a1_0x5623=function(){return _0x321524;};return a1_0x5623();}import{Project,SyntaxKind}from'ts-morph';export class ModelParser{[a1_0x8ac351(0xe0,'Ma3E')];[a1_0x8ac351(0x13a,'x6W9')];constructor(_0x4a402f){const _0x11e1ac=a1_0x8ac351;this[_0x11e1ac(0xff,'xdrJ')]=_0x4a402f,this[_0x11e1ac(0x16f,'@6i2')]=new Project({'tsConfigFilePath':a1_0x5d0f2b[_0x11e1ac(0xb6,'4D!k')](_0x4a402f,_0x11e1ac(0x143,'*THb')),'skipAddingFilesFromTsConfig':!![]});}async[a1_0x8ac351(0x9b,'w(6a')](){const _0x550886=a1_0x8ac351,_0x470a05=await this[_0x550886(0x110,'7EGs')](),_0x1fde14=[];for(const _0x265ab1 of _0x470a05){try{const _0x2f67fd=await this[_0x550886(0x165,'#[!R')](_0x265ab1);_0x2f67fd&&_0x1fde14[_0x550886(0x139,'eigv')](_0x2f67fd);}catch(_0x435dbc){console[_0x550886(0xc9,'Q4O4')](_0x550886(0xb7,'eigv')+_0x265ab1+':',_0x435dbc);}}return{'models':_0x1fde14,'totalTables':_0x1fde14[_0x550886(0x178,'@6i2')],'totalColumns':_0x1fde14[_0x550886(0xdb,'4fyg')]((_0x3bea62,_0x1382eb)=>_0x3bea62+_0x1382eb[_0x550886(0x12f,'HJt0')][_0x550886(0x12d,'Q4O4')],-0x3*-0x4be+0x20e+0x4*-0x412),'totalIndexes':_0x1fde14[_0x550886(0xdb,'4fyg')]((_0x5bcc5f,_0x4d7868)=>_0x5bcc5f+_0x4d7868[_0x550886(0x114,'qXvw')][_0x550886(0xa8,'scT3')],0x8*0x365+-0x2480+0x958),'totalAssociations':_0x1fde14[_0x550886(0x93,'Q4O4')]((_0x2bb61d,_0x49b572)=>_0x2bb61d+_0x49b572[_0x550886(0x9d,'@6i2')][_0x550886(0xe1,'zW89')],-0x9d7*-0x1+0x17df+0x2*-0x10db)};}async[a1_0x8ac351(0x177,'zBYB')](_0x327712){const _0xe045a7=a1_0x8ac351,_0xa41b87=this[_0xe045a7(0x16f,'@6i2')][_0xe045a7(0xed,'Z4(j')](_0x327712),_0x3549ce=_0xa41b87[_0xe045a7(0x10a,'4D!k')](),_0x29ac41=_0x3549ce[_0xe045a7(0x160,'mNI^')](_0x56c035=>{const _0x4a8b1a=_0xe045a7,_0x57c213=_0x56c035[_0x4a8b1a(0xb2,'MG2r')]();return _0x57c213?.[_0x4a8b1a(0xba,'4D!k')]()===_0x4a8b1a(0xc8,')Bm4');});if(!_0x29ac41)return null;const _0x4cdd2d=_0x29ac41[_0xe045a7(0x129,'vQu[')](),_0x28c3b4=this[_0xe045a7(0x96,'%hG1')](_0x29ac41),_0x39a2f0=this[_0xe045a7(0xb0,'BP[K')](_0x29ac41),_0x557e48=this[_0xe045a7(0x14d,'dM)m')](_0x29ac41),_0x1dd774=this[_0xe045a7(0xb1,'cth@')](_0x29ac41),{timestamps:_0x130451,paranoid:_0xbf8939}=this[_0xe045a7(0xd9,'#[!R')](_0x29ac41);return{'modelName':_0x4cdd2d,'tableName':_0x28c3b4,'filePath':_0x327712,'attributes':_0x39a2f0,'indexes':_0x557e48,'associations':_0x1dd774,'timestamps':_0x130451,'paranoid':_0xbf8939};}[a1_0x8ac351(0x175,'J6B&')](_0x1647f6){const _0x17dea5=a1_0x8ac351,_0x46b6a4=_0x1647f6[_0x17dea5(0x13f,'J6B&')](_0x17dea5(0x127,'Z4(j'));if(!_0x46b6a4){const _0x1b0cf0=_0x1647f6[_0x17dea5(0x95,'IS^[')]();return this[_0x17dea5(0x161,'Q4O4')](this[_0x17dea5(0x132,'b]*d')](_0x1b0cf0));}const _0x164f26=_0x46b6a4[_0x17dea5(0x12b,'m0Xe')]();if(_0x164f26[_0x17dea5(0x178,'@6i2')]===-0x10bc*-0x1+0x27b+-0x1*0x1337)return this[_0x17dea5(0x104,'*THb')](this[_0x17dea5(0xa9,'dM)m')](_0x1647f6[_0x17dea5(0x141,')haW')]()));const _0x24145b=_0x164f26[-0x1*0x1c3+-0x2d9*0xb+-0x2*-0x108b],_0x309c1a=_0x24145b[_0x17dea5(0x145,'iLI#')](SyntaxKind[_0x17dea5(0xd4,'scT3')])[_0x17dea5(0x11f,'w(6a')](_0x17dea5(0x18b,'*THb'));if(_0x309c1a){const _0xae172b=_0x309c1a[_0x17dea5(0x105,'eigv')](SyntaxKind[_0x17dea5(0x10c,'%hG1')])[_0x17dea5(0x18d,'@6i2')](SyntaxKind[_0x17dea5(0xac,'LNuy')])[_0x17dea5(0x11c,'iLI#')]();return _0xae172b;}return this[_0x17dea5(0x137,'MG2r')](this[_0x17dea5(0x12a,'*THb')](_0x1647f6[_0x17dea5(0xbc,'x6W9')]()));}[a1_0x8ac351(0xcd,'qXvw')](_0x5bf962){const _0x55fe56=a1_0x8ac351,_0x502972=[],_0x3e2c50=_0x5bf962[_0x55fe56(0xae,'#[!R')]();for(const _0x550260 of _0x3e2c50){const _0x2e779a=_0x550260[_0x55fe56(0x11a,'*THb')](_0x55fe56(0x16c,'T1XO'));if(!_0x2e779a)continue;const _0x2c97e8=_0x550260[_0x55fe56(0x16b,'%hG1')](),_0x2e934f=this[_0x55fe56(0x13e,'zBYB')](_0x2e779a),_0x4632c4=this[_0x55fe56(0x108,'T1XO')](_0x2e779a);_0x502972[_0x55fe56(0x18c,'dM)m')]({'name':_0x2c97e8,'type':_0x2e934f,'allowNull':_0x4632c4[_0x55fe56(0x120,'4D!k')]??!![],'defaultValue':_0x4632c4[_0x55fe56(0xd5,'T1XO')],'primaryKey':_0x4632c4[_0x55fe56(0x152,'MG2r')]||_0x550260[_0x55fe56(0x103,'xdrJ')](_0x55fe56(0xc1,'cth@'))!==undefined,'autoIncrement':_0x4632c4[_0x55fe56(0x17a,'3Z2m')]||_0x550260[_0x55fe56(0x135,'cth@')](_0x55fe56(0xfd,'SDiY'))!==undefined,'unique':_0x4632c4[_0x55fe56(0xfe,'Ma3E')]||_0x550260[_0x55fe56(0x167,'GITH')](_0x55fe56(0x122,'BP[K'))!==undefined,'field':_0x4632c4[_0x55fe56(0xcf,'SDiY')],'validate':_0x4632c4[_0x55fe56(0xa2,'qXvw')],'comment':_0x4632c4[_0x55fe56(0xa5,'scT3')]});}return _0x502972;}[a1_0x8ac351(0x14e,'4fyg')](_0x415408){const _0x18087b=a1_0x8ac351,_0x230583=_0x415408[_0x18087b(0x94,'4fyg')](_0x18087b(0x130,'J6B&'));if(!_0x230583)return[];const _0x2f99a6=_0x230583[_0x18087b(0xf2,')haW')]();if(_0x2f99a6[_0x18087b(0xea,'SDiY')]===-0x75a+-0xc*-0x2c9+0x2f*-0x8e)return[];const _0x472040=_0x2f99a6[0xf3b*0x1+-0xd4e*-0x1+-0x1c89][_0x18087b(0x180,'MG2r')](SyntaxKind[_0x18087b(0xd1,')Bm4')]),_0x4753d8=_0x472040[_0x18087b(0x116,'J6B&')](_0x18087b(0x10b,'#[!R'));if(!_0x4753d8)return[];const _0x1dbfeb=_0x4753d8[_0x18087b(0x159,'zW89')](SyntaxKind[_0x18087b(0xef,'fysY')])[_0x18087b(0x15a,'Pup!')](SyntaxKind[_0x18087b(0x10d,'cth@')]);return _0x1dbfeb[_0x18087b(0x90,'b]*d')]()[_0x18087b(0x17b,'Q4O4')](_0x359f1e=>{const _0x405d99=_0x18087b,_0x448d52=_0x359f1e[_0x405d99(0xfc,'#O(u')](SyntaxKind[_0x405d99(0x123,'s9Q6')]),_0x49cc80=_0x448d52[_0x405d99(0x99,'jcs)')](_0x405d99(0x166,'Z4(j'))?.[_0x405d99(0xc4,'*THb')](SyntaxKind[_0x405d99(0xf1,'T1XO')])[_0x405d99(0x176,'SDiY')]()?.[_0x405d99(0xcb,')Bm4')](),_0x4020a4=this[_0x405d99(0xd6,'Pup!')](_0x448d52),_0x1b5de7=_0x448d52[_0x405d99(0xe4,'iLI#')](_0x405d99(0x10e,'Pup!'))?.[_0x405d99(0x15e,'UX@d')](SyntaxKind[_0x405d99(0xbd,'eigv')])[_0x405d99(0xee,'Pup!')]()?.[_0x405d99(0x153,'vQu[')]()===_0x405d99(0x155,')mLY'),_0x4ac763=_0x448d52[_0x405d99(0x183,'mNI^')](_0x405d99(0x15c,'fysY'))?.[_0x405d99(0x133,'scT3')](SyntaxKind[_0x405d99(0xec,'zBYB')])[_0x405d99(0xf3,'vQu[')]()?.[_0x405d99(0xd7,'dM)m')]();return{'name':_0x49cc80?.[_0x405d99(0x131,'Zo)9')](/['"]/g,''),'fields':_0x4020a4,'unique':_0x1b5de7,'type':_0x4ac763?.[_0x405d99(0x125,'&HQx')](/['"]/g,'')};});}[a1_0x8ac351(0x184,'BP[K')](_0x3e2cc5){const _0x490361=a1_0x8ac351,_0x59a27e=[],_0x67c462=_0x3e2cc5[_0x490361(0x163,'3Z2m')]();for(const _0x4fb385 of _0x67c462){const _0x157bc4=[_0x490361(0x187,'*THb'),_0x490361(0x186,'m0Xe'),_0x490361(0xa4,'mNI^'),_0x490361(0x151,')Bm4')];for(const _0x510a93 of _0x157bc4){const _0x17dde1=_0x4fb385[_0x490361(0x14c,'06I4')](_0x510a93);if(!_0x17dde1)continue;const _0x4a699f=_0x17dde1[_0x490361(0xf9,'#O(u')](),_0x14bf5b=_0x4a699f[0x1*-0xb08+-0x1373+0x1e7b]?.[_0x490361(0xf6,'LNuy')](),_0x4741b5=_0x14bf5b?.[_0x490361(0x185,'UX@d')](/\(\)\s*=>\s*(\w+)/)?.[0x1*0x8ad+-0x1e*0x11a+0x5*0x4e0];if(!_0x4741b5)continue;const _0x336509=_0x4a699f[0xecc+0x3cb+-0x1296]?this[_0x490361(0x188,'Ma3E')](_0x4a699f[0xb*0x1da+-0x6e*0x1+0x3*-0x6a5][_0x490361(0x148,'GITH')](SyntaxKind[_0x490361(0x111,')mLY')])):{};_0x59a27e[_0x490361(0x13d,'m0Xe')]({'type':_0x510a93[_0x490361(0xa6,')mLY')](/([A-Z])/g,_0x44f038=>_0x44f038[_0x490361(0x11b,'w(6a')]())[_0x490361(0xd3,'xdrJ')](/^./,_0x235c92=>_0x235c92),'target':_0x4741b5,..._0x336509});}}return _0x59a27e;}[a1_0x8ac351(0x113,'&HQx')](_0x4a90ca){const _0x44ca68=a1_0x8ac351,_0x4b83a6=_0x4a90ca[_0x44ca68(0x9e,'mNI^')](_0x44ca68(0x119,'zBYB'));if(!_0x4b83a6)return{};const _0x190d42=_0x4b83a6[_0x44ca68(0x12e,'#[!R')]();if(_0x190d42[_0x44ca68(0xe3,'xdrJ')]===0x22*-0x24+-0x1*0x215f+0x2627)return{};const _0x90c161=_0x190d42[0x203c+-0x1d93+-0x2a9][_0x44ca68(0xc0,'Z4(j')](SyntaxKind[_0x44ca68(0xfa,'zBYB')]);return{'timestamps':_0x90c161[_0x44ca68(0x101,'Ma3E')](_0x44ca68(0x8c,'cth@'))?.[_0x44ca68(0xdf,'x6W9')](SyntaxKind[_0x44ca68(0x182,'IS^[')])[_0x44ca68(0x112,'m0Xe')]()?.[_0x44ca68(0x162,'iLI#')]()===_0x44ca68(0x92,'#O(u'),'paranoid':_0x90c161[_0x44ca68(0xb8,'eigv')](_0x44ca68(0xf5,'dM)m'))?.[_0x44ca68(0x157,'T1XO')](SyntaxKind[_0x44ca68(0x18e,'4fyg')])[_0x44ca68(0xa3,'s9Q6')]()?.[_0x44ca68(0x162,'iLI#')]()===_0x44ca68(0x150,'qXvw')};}[a1_0x8ac351(0xdd,'HJt0')](_0x1b41a9){const _0x543d56=a1_0x8ac351,_0x4d35aa=_0x1b41a9[_0x543d56(0x115,'@6i2')]();if(_0x4d35aa[_0x543d56(0xb4,'LNuy')]===-0x1077+-0xc9b+0x1d12)return _0x543d56(0xaf,'iLI#');const _0x1bf096=_0x4d35aa[0x2c*-0x55+0x1b3d+-0xca1*0x1],_0x169ddf=_0x1bf096[_0x543d56(0xf6,'LNuy')]();if(_0x169ddf[_0x543d56(0xc6,'7EGs')](_0x543d56(0x91,'mNI^')))return _0x169ddf;if(_0x1bf096[_0x543d56(0x14a,'Pup!')]()===SyntaxKind[_0x543d56(0x17d,'IS^[')]){const _0x37d847=_0x1bf096[_0x543d56(0x174,'@6i2')](SyntaxKind[_0x543d56(0x144,')haW')])[_0x543d56(0x121,'HJt0')](_0x543d56(0x16a,'m0Xe'));if(_0x37d847)return _0x37d847[_0x543d56(0x179,'mNI^')](SyntaxKind[_0x543d56(0xef,'fysY')])[_0x543d56(0x16d,'@6i2')]()[_0x543d56(0xbf,'fysY')]();}return _0x543d56(0xe8,'Ma3E');}[a1_0x8ac351(0xbe,'b]*d')](_0x441795){const _0x5e01d4=a1_0x8ac351,_0x1be1bf=_0x441795[_0x5e01d4(0x17f,'oXwd')]();if(_0x1be1bf[_0x5e01d4(0x164,'cth@')]===0x29*0x7f+-0x5*0x2d+0x2f*-0x6a)return{};if(_0x1be1bf[-0x1353+0x96f+-0x34c*-0x3][_0x5e01d4(0x9f,'Vml%')]()!==SyntaxKind[_0x5e01d4(0x13c,'HJt0')])return{};const _0xe22ae8=_0x1be1bf[0x112*0x3+-0xd7b+0xa45][_0x5e01d4(0xab,'SDiY')](SyntaxKind[_0x5e01d4(0xbb,'GITH')]),_0x5eecaf={},_0x4edeb1=[_0x5e01d4(0x17c,'Pup!'),_0x5e01d4(0x173,'@6i2'),_0x5e01d4(0x128,'SDiY'),_0x5e01d4(0x12c,'MG2r'),_0x5e01d4(0x189,'dM)m'),_0x5e01d4(0xd0,'cth@'),_0x5e01d4(0x109,')Bm4')];for(const _0x7d51d3 of _0x4edeb1){const _0x2ab0fd=_0xe22ae8[_0x5e01d4(0x183,'mNI^')](_0x7d51d3);if(!_0x2ab0fd)continue;const _0x3c68b8=_0x2ab0fd[_0x5e01d4(0x172,'&HQx')](SyntaxKind[_0x5e01d4(0xc7,'SDiY')])[_0x5e01d4(0xb9,'Zo)9')]()?.[_0x5e01d4(0x149,'GITH')]();_0x3c68b8&&(_0x5eecaf[_0x7d51d3]=this[_0x5e01d4(0xca,'b]*d')](_0x3c68b8));}return _0x5eecaf;}[a1_0x8ac351(0xb5,'7EGs')](_0x10b84a){const _0x47e3cc=a1_0x8ac351,_0x5b3737=_0x10b84a[_0x47e3cc(0x116,'J6B&')](_0x47e3cc(0xd2,'eigv'));if(!_0x5b3737)return[];const _0xe46548=_0x5b3737[_0x47e3cc(0x13b,'w(6a')](SyntaxKind[_0x47e3cc(0x146,'s9Q6')])[_0x47e3cc(0x134,'w(6a')](SyntaxKind[_0x47e3cc(0xf8,'Pup!')]);return _0xe46548[_0x47e3cc(0x181,'Pup!')]()[_0x47e3cc(0xeb,'Z4(j')](_0x3297a2=>_0x3297a2[_0x47e3cc(0x17e,'#[!R')]()[_0x47e3cc(0x154,'#[!R')](/['"]/g,''));}[a1_0x8ac351(0x188,'Ma3E')](_0x5d6337){const _0x39f429=a1_0x8ac351,_0x2873cb={},_0x1bb25c=[_0x39f429(0x97,'%hG1'),'as',_0x39f429(0x107,'b]*d'),_0x39f429(0xd8,'Vml%'),_0x39f429(0x11e,')mLY')];for(const _0x2c9f04 of _0x1bb25c){const _0x1ae025=_0x5d6337[_0x39f429(0x18a,'s9Q6')](_0x2c9f04);if(!_0x1ae025)continue;const _0x486e0e=_0x1ae025[_0x39f429(0xc4,'*THb')](SyntaxKind[_0x39f429(0x124,'BP[K')])[_0x39f429(0x11d,'HJt0')]()?.[_0x39f429(0x142,'IS^[')]();_0x486e0e&&(_0x2873cb[_0x2c9f04]=_0x486e0e[_0x39f429(0xe2,'zBYB')](/['"]/g,''));}return _0x2873cb;}async[a1_0x8ac351(0x14b,'3Z2m')](){const _0x527a34=a1_0x8ac351,_0x1eaa88=[];async function _0x2b6db7(_0x2672cc){const _0x1cfa11=a1_0x3cc4,_0x61503e=await a1_0x5bfab5[_0x1cfa11(0x171,'BP[K')](_0x2672cc,{'withFileTypes':!![]});for(const _0x29778b of _0x61503e){const _0x281016=a1_0x5d0f2b[_0x1cfa11(0x9c,'#O(u')](_0x2672cc,_0x29778b[_0x1cfa11(0x138,'J6B&')]);if(_0x29778b[_0x1cfa11(0x15b,'w(6a')]())await _0x2b6db7(_0x281016);else _0x29778b[_0x1cfa11(0x15f,'w(6a')][_0x1cfa11(0xa7,'SDiY')](_0x1cfa11(0x156,'06I4'))&&_0x1eaa88[_0x1cfa11(0xe7,'Pup!')](_0x281016);}}return await _0x2b6db7(this[_0x527a34(0xde,'GITH')]),_0x1eaa88;}[a1_0x8ac351(0xda,'Ma3E')](_0x45ca01){const _0x2196a4=a1_0x8ac351;return _0x45ca01[_0x2196a4(0xfb,'m0Xe')](/([A-Z])/g,_0x2196a4(0xa1,'m0Xe'))[_0x2196a4(0x15d,'s9Q6')]()[_0x2196a4(0x106,'iLI#')](/^_/,'');}[a1_0x8ac351(0xce,'MG2r')](_0x57aa0d){const _0x3e6e10=a1_0x8ac351;if(_0x57aa0d[_0x3e6e10(0xe9,'IS^[')]('y'))return _0x57aa0d[_0x3e6e10(0x8f,'IS^[')](-0x126f+-0x2*-0x841+0x1ed,-(-0x2534+0x7*-0xe6+-0x83*-0x55))+_0x3e6e10(0xe5,'HJt0');if(_0x57aa0d[_0x3e6e10(0x136,'zBYB')]('s')||_0x57aa0d[_0x3e6e10(0xaa,'BP[K')]('x')||_0x57aa0d[_0x3e6e10(0x102,'LNuy')]('ch')||_0x57aa0d[_0x3e6e10(0x170,'*THb')]('sh'))return _0x57aa0d+'es';return _0x57aa0d+'s';}[a1_0x8ac351(0xad,'eigv')](_0x28d4d9){const _0x24af6a=a1_0x8ac351;if(_0x28d4d9===_0x24af6a(0xf0,'LNuy'))return!![];if(_0x28d4d9===_0x24af6a(0x126,'T1XO'))return![];if(_0x28d4d9===_0x24af6a(0xf4,'&HQx'))return null;if(_0x28d4d9===_0x24af6a(0xc5,'*THb'))return undefined;if(/^['"]/[_0x24af6a(0x9a,'MG2r')](_0x28d4d9))return _0x28d4d9[_0x24af6a(0x100,'mNI^')](-0x2085+-0x43*-0xa+0x2*0xef4,-(-0xd46*-0x2+0x259a+-0x4025));if(/^\d+$/[_0x24af6a(0x147,'dM)m')](_0x28d4d9))return parseInt(_0x28d4d9,0x953+0xa16+-0x135f);return _0x28d4d9;}}
|
|
1
|
+
const a1_0x2ba18d=a1_0x3a0d;function a1_0x306e(){const _0x3d7278=['C8oOmSk4W7Oi','tgzqWQpdUwBdMf42WONdJqRdLxG','fSobW4JdLSkIlmokneRcRtBcPu12','DgzrWP3dVuxdJG','cSkDarnnW4v+dcFdOSoSW7e','pCkkgIjAW5b/gapdV8oRW6VdSCoJcmoHWPtcTq','yJlcGCkB','EmofWRZdLq','A8oKwwdcJKxcM8opFH7dKeZdHdu','W4K8Dmkr','WQ/cHCkSjCkIW6H0sCk6W7O','F2udW6FcIq','omkcW7NcImoJlSojWPJdSSkYECoz','DZ/cHSkbW4VdS8oQW6j0fuD6WONcUsKkW5m','lComW5jZW4GFEmkreu7dHG','WRKGW5mNW6Xhi8o0W63dHt3cLY/dM1RdSW','xhKfmurtWRuwW5pdMWe','DslcHSkNW4/dQmoQ','EmoUFKFcGuFcISoLFGhdNa','drPYnfJcSHVdKmodW4dcGMm','tIPSgSoiDCkjv8ooiH97EKalpNa','gCkDbIy','W7/cHmoAW5ixW6WlW7FdSCkcWOhdGa','W4dcLmkgW7W8zmkCy8khW5nJWPajFmk2WO/cI8oIWQBcQ3tdQ8ox','W4hcLget','rsTHWQPmAmocBHe0B8kzWPFcMG','yCoTWQv7Bmk4C1/dUZRdLsBcMNldM8oHcZBdQeDVACkv','WPFdLdZdMGmYWPJdRXS','vaK6W5xcU8kf','fSobW4JdJ8k+kSooofNcTsy','bCk3WQZcIqBcRKBdIq','aW4XemkLW5Hvnd7dSSkHWOC','wYb3aSomDCkj','fCklcmoL','W5ZcJNyEW43dHSotW6xcKmoI','fSoWbSo4WRyVW6FcLCoC','W4xcGhaxW4tdU8oIW6NcGq','xWKGW6lcVCkcsN/cOmk2WPmdWRu','sWa9W5hcQG','hXCDWRqVWOL/sdi/mmkdW5O','WRlcPJvnW4JdNITfocdcKN4','kY/dGmkWC8kFW7eCoYyiWONdVG','vvKogCkMW6HUba','hCoGWP/dPmk7W4FcRG','zSoUreC','DslcHSkXW4VdO8o7W6bSaezG','ltNdV8kDEmkyW5eCdJOvWPq','gqeIWO0ZWOjaxXqJoW','WPajW7RcQCkmig7cIhhdVa','dbzJhfNcOG','W7/cHmoAW4mxW6qoW7/dPSkyWOW','xmoSnCkJW7evka','W5j9WRRdOtbknCoUdmoTAq','eWuIWR4P','W5W2t8kDcCo8WPNdM8k8W7n6kr0','DmoRk8ksW7CzemkdW5zOr8omm8kkWPNcKCkHWP/dLSoXWRVdGwS','W4hcH3ddOqKRWO/dHs/dHSkLWPCRCq','cSkDarzAW4fKeYpdUmo3W7a','avjKWPZdVd9P','iCowW5xdSSkTn8ohfK7cUa','yCoxpvJcRs7cUW','W7/dOYKid8kxWQFdHSk+aZC6o8ocgvBdR3q','WO/cLSkXjSkIW4XHxmkoW6ZcLLH9l2VdHSoFaa','W5BcHgy6W5pdKSo2W6NcGCoKW68P','tbhcQ8kt','aW4XbmkYW5rkiY3dSSk3','g8oGWPZdVa','WPOdW6RcMmkfk0O','W5XoySocW5O','F8oBWQddK8k1','W73cMCoAW6eeW6GkW5xdPmkyWPZdNmk8DW','WPr1j3/cVSort8og','drPYovpcUaddI8odW5JcHgS3h3KBdMTxxmkEWP3dGCkqW7hcKbK','WQZdP1eDW5hcUG','W5lcJvFdHGyPWP7dRY/dMCkP','oSkJDmogWQiFw8oDW6xdHCkCWPJcHsK6WRL5u8oC','cSkDaqjnW417bdddUmoH','WQRcISk3j8kYW5S','ymofW6ldIJ8B','sIzSgSoaDmkiySoFjq','W4pcKmkEbuddSfe/W5eCW61MW48','xmoQWR9YBSkVwG','W4hcH3ddUbuTWOVdItZdNSk1','amkxetDtW5fBadBdPa','xqiWW4hcMmketNi','ACkFWPy4WP4GBCkBofBdLW','hLDNrmkEC8oH','waXifNBcLdi','ACopWR3dGSkXEmovWR3dSmk0CmojW79XW6etgCoa','vSkCWO4UWPGztSkwkv/dLJpcMxm7WPBcOSoqWOlcSCopW6dcLG','W6tdTwjcW6ZdUszXcq','yZTHWOXRB8ovDru1y8knWOy','CqtcTmkFz8oHW5f/DuilWPFdRa','d8koo8oEWPtdP8ktW7H1l8krWOKO','wM86cfHyWOObW7xdHWOkW5m','eSkZWQRcOqBcQfVdHmk1WO47W5KGWRRdJ2yYW5hcQgxdNSo8W5NdJCo5amkM','hLDNxSkAzSoW','W6NcN8kjW7u7','a8k3WRlcGqZcOfVdIa','WPz+n1JcJmoatW','WQb9DaZdNSk5xCoqhmoyWQtcHG','qCoyWQ3dLCk8','W7uQn3dcISoKu8oYgSoAWP8','sCoQWRTxyCkLs1/dRJpdJJ3cK0u','W5ZdSJnCjcLWDSkb','W7/cHmoAW4CaW7mk','WQ3dU00j','dGGJWQ8GWOfzqam','FSoKxuxcGu/cIG','ECozWQ3dLCk2CSopWPhdUG','b8kqgmoSW48','W57cJ0ClW4xdLmo3W6e','cWXngvpcTtVdKmo2W5ZcN34L','CGlcQCkgBmo0W6LVqfqkWP/dP8kDy0ddPCke','BCotW4FdHcuxnIbNWPDNWPv3','tmkdWOrSW4nwb0z3exazWOldUSk9WQddPwe','WOmHW6JcQLrro8oO','E8kuWP9DW5rdbLjtdhCd','WRKGW5mNW6Xhi8oPW6ldGZtcIIFdK1ldUSkGpW','sCotwCkdW4dcV8oaW7X4fCk9','sCoSmCkBW7uooq','W77cG3GEW4ldGCopW63cKmoVW6K7WRq6e8kyxaFdIuj+d8oe','bComW47dSmk5iSow','xSobrMChWPjtoYBdQCo+W48','zSoOk8keW61tsG','W5OGCmk6bSo1WRm','W7NcKSoLW7OlW68XW6JdGmkeWOFdNmkL','WQfOBSolgmkgmIRdH8oeWOD0sffd','WQpcRtPDW4JdLW','dHy/WRaGWP9jCqmU','WR0RW6W8W6nagmosW5JdJYpcNry','W4DnASolW5X8WQtcLmkGWPLHW7G6W6f4Du0zW7ldRmkOACkM','W5Ozs3e','W5OGCmkKfCo3WQBdJmkAW69X','rrxcSSk/z8oVW6L/yeSqWOZdPCkb','W4JdTdi7bSkeWQddJmkAaW','p8ocAMJcTuNcIq','W6hcK30lW4tdH8o3W73cPCo5W6GZWR8rbSknqby','rdXCdCofC8kjCW','xhKfierBWRaEW4tdGqWw','xG04W4hcQG','jmokW5xdRSk5ia','WRJdVeWdW63cSt7cSmkcW7ldGCouWP4','amkknSoPW4vgWOddMmoAF8kVdhW','k8oiW5uLWQOME8kDdq','WQ/cLSkXpmkIW51H','uZxcGmksW5pdNmo3W5DLe1r/WQ7cTc0DW4xdTSo7iqDY','x8o4hCosWRiUWQW','rZzHWPfdySocuXe6ASkgWRZcICk/aq','W4JdTdiSd8kDWQC','W7tdTILAbdG','WP1+lwVcNCoq','WRhcPID8W4/dNs92kZJcNG','W4PkBmobW5fVWPVcQCk7','EmksWOGKWOWJD8ktmq','zmoHlSkAW61CrSouW6m','gSk9W70Npmo/rvldHdNdJGO','CYVcNSkCW53dNSoRW49S','w2jwWOddRKtdH18HWPhdOGBdIG','WP3dQeWnW7dcPI3cP8ojW4ZdSmoOWQpcRtK','a8oGWOhdR8kUW4W','W7HAC8og','mSolW5ddQSkHkW','W6RcJSkyW6S+C8kKs8kaW4v+WPimwmk6WPBcLSoPWQy','W4/cJgddJr8NWOG','tgzqWQpdUx3dLLyMWOa','FmoZretcGv7cLSoTEGS','BCoeWOldMCk+F8oUWOBdISk4z8oEW44','WRS9W5mBW6XjmG','y8oaiL7cQs7cQG','gxCVW63cP35Z','tIT7WOrwAq','WRKGW5mNW6Xhi8oJW6pdIYtcNW/dTuFdOSkTi8kuWQ0','c1DJFmkAAmoW','whaaW7NcMeHIW5/dQrq','hCobW5ldUmk4lq','sIftaCohCSkYzmoUpH99BW','s30deLnXWQOxW4tdGZ4mW4GN','faCWjSkHW5DtpdO','s8kPAG','qCoxpulcRt/cU0j8WPvGWRLlW40FW4ldUSoU','emkUWQRcMGNcOLVdPmk6WOy3W5SGWRS','bSkCcCojW4vlWRVdG8oVE8k0gw5p','lSkBf8oLW4HwWOpdG8o6CSkVaMD4WRNcUmk7amkuq3zweG','u0y1qq3cNZZdK8onW5lcHa','aXP1','A8ofW7JdQs4qfIbsWOT6WOG','WRe5W5C','WPGEW6RcVSkbmeRcOgVdSmoukmkPW7O','af5+WQZdLcH5WPBdOf3cOuldOmkD','WQn5E0FcGSoXxCouiq','EYb3gmomzmkjB8o7jr57F1SspM1p','lZldR8kQsSksW4Og','W7NdPJnsot5JyCokWP/dImknyq','ACopWR3dGSkXEmovWRddV8kKDmoLW4bOW6e','wx9wWQldVuJdG3K8WONdVG7dL1i6W43cK8k+W7n9','EGK4W53cOCkksu7cVCkpWPSiWR8','pSogW5BdUSkVmCoYnf/cPc3cVKrbWRxdRxTXFLTyWPBdGa','WR7dReWNW43cStK','sNCQW6lcGL96W4tdIrrIW5lcUW','WRC9oqyBWPpdQLWHfa','x2HpWR3dUuxdGW','s8oHWQTTwmkLs14','WPDYlwJcPmoxx8olWR8/W5uiW7j7','W4RdVYilpCkmWQFdLW','sCoQWRTBy8kPuLpdOsVdLa','WRS9W5mrW6HhomosW63dKZ7cGa','tMjdWRtdUeldHq','W6ZdQJDy','aW4XhCkUW5jolZ7dQSkNWO/cKCkQ','W5OGCmkGaSoGWQi','gqeIWPeOWPLvsaC7fmknW4hcQ8oH','sCoQWRTkASk0sW','WRewm8kFWO9gWQdcJmk7WPP6','tdDSiCohF8kjF8oBoGrOFuC2puHsWPLlW4ldMNdcJ3G7fq','sZ1rWOPqzmovCX8QFW','W6aQj0dcHCoK','wwefW77cJ14','WR3dHmoDWQPQi8oMtCkFW79yWOm3','umolnSonW41XWPVdQa','tCojECkf','rsTHWQ1dBmot','W4RdQtikc8kgWQFdSmkpbc08mSoF','wSoGWPXWBSkNwNxdRIZdGG','W73dQZnpetn0v8ooWOBdJmk3BmoexG','ufL3BCoZWOHaiHtdOmkNWRG','xxrPWRNdSK/dUeGhWO3dUqZdJG','b8kZWQ7cHaNcOKO','FSkBWPapWP4oBCknpe7dIYa','eaqjo8k3W55ibt7dTCkR','WPWvW5xcPCkon3hcM1hdVmodp8k7','W73cK8kiW6W8Dq','W6ZcImodW7ywW78FW7FdPmkF','qSoQWQf5E8kK','WRiUW67cTwy','bmkwetDhW4D4','gH50a1JcKaFdKConW5FcHhaMbf8tcNjnuCk+WOhdPG','drPYie/cVGtdH8oqW4dcLa','W69kDmoQW5PRWOFcJ8k1WOH8W6S','C8oOl8kMW61DsG','jCkKWRhcMa3cS1VdLmkvWPeHW4OIWQBdQ2uxW4W','W6ZcK8oBW7y','nLb5DCkyF8ozWPyjWPHCW4xcTGJcH8opjSkLz03dTZdcOW','B8opW6hdGc4Ddq','bCkCg8oHW55oWRVdVmoVE8kObG','WPWvW63cO8kdoL/cNwZdU8oFiW','p8koW7RcHCoOk8o5WQ7dUSk1C8o8','W6RcHmkEW7yT','dYLbwqujWQ0FW43dJrqn','W6JcK8kyW5GTD8kLz8kwW5HLWOi','WQaUW6xcTwzCB8o0l8k5E09SWO/dHd8','tgevW5VcNLrfW5pdRWHP','EmkAWOayWPqyCmkCohZdJt7cKhC3WRBcSCobWPK','cCoSWOhdRa','s30deLn9WRyaW47dJbeeW5aRFNzLWR1tWQdcOCosWOO','tCofWRVdKCkPv8oiWOddU8kIDmoDW7XGW7qngmoaW5udWRRdQq','rrxcSSk9ymoOW7K','gCkZWRdcJXZcQq','DCo+emkbW6juymoCW5ldGSkaWPhcMW','i8kxzqVdShxcRhXvWPbBWQa','tIPSgSoiDCkjv8ojjqjXCvqlmMXvWOq','WOeGjbmxWOBdSg4fhHpcIf3dIMKXW4Sq','vG05W5C','WOHOAG'];a1_0x306e=function(){return _0x3d7278;};return a1_0x306e();}(function(_0xa7cc08,_0x1762e1){const _0x41961f=a1_0x3a0d,_0x450314=_0xa7cc08();while(!![]){try{const _0x4369bc=-parseInt(_0x41961f(0x104,'IA7V'))/(0x2c3*0xe+-0x947+-0x1d62)*(-parseInt(_0x41961f(0x14d,')730'))/(0x332+0x10dd*-0x2+-0x6*-0x517))+parseInt(_0x41961f(0x17e,'ex1H'))/(-0x3b*-0x93+0x1b*-0x129+-0x28b)*(parseInt(_0x41961f(0x15a,'MliZ'))/(0x2*0x179+-0x6b9*-0x1+-0x9a7))+-parseInt(_0x41961f(0x102,'oM5X'))/(-0xd*0x8b+-0x5c*-0x31+0xa88*-0x1)+-parseInt(_0x41961f(0x120,'kRWk'))/(-0xcf4+-0x201b+0x2d15)*(-parseInt(_0x41961f(0x192,'fL*E'))/(-0x636+-0x1279*0x2+0x2b2f))+parseInt(_0x41961f(0x153,'yooX'))/(-0xe7d*0x1+0xef*0x28+-0x16d3)+parseInt(_0x41961f(0x150,'3jNB'))/(0x5c4*0x6+-0x766*-0x1+-0x1d3*0x17)*(parseInt(_0x41961f(0x1cb,'I0L5'))/(-0x1094+0xf3*0x25+-0x1281))+-parseInt(_0x41961f(0xe4,'oM5X'))/(-0x22b5+-0x1*-0x627+0x1*0x1c99)*(parseInt(_0x41961f(0x111,'%[7B'))/(0xcc+0x205b+0x19*-0x153));if(_0x4369bc===_0x1762e1)break;else _0x450314['push'](_0x450314['shift']());}catch(_0x233012){_0x450314['push'](_0x450314['shift']());}}}(a1_0x306e,-0x1f*0x13c6+-0x32f51*0x1+-0x5*-0x1b551));import*as a1_0x3e0215 from'fs/promises';function a1_0x3a0d(_0x719e0a,_0x3d8520){_0x719e0a=_0x719e0a-(0x5*-0x57d+-0x67a+-0x115f*-0x2);const _0x19cd9a=a1_0x306e();let _0x5a2f36=_0x19cd9a[_0x719e0a];if(a1_0x3a0d['frlxVy']===undefined){var _0x31c185=function(_0x598c87){const _0x270de7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1df6c2='',_0x57b376='';for(let _0x15bb2d=-0x1*0x14b7+0x1fba+0xb03*-0x1,_0x1b4e4e,_0x1b18c9,_0x13b142=0x1*0x222+0x6a*-0x24+0xcc6;_0x1b18c9=_0x598c87['charAt'](_0x13b142++);~_0x1b18c9&&(_0x1b4e4e=_0x15bb2d%(0x1*-0x142d+0x97*-0x3d+-0x14*-0x2cf)?_0x1b4e4e*(0x6*0x57f+0x256a+0x2312*-0x2)+_0x1b18c9:_0x1b18c9,_0x15bb2d++%(0xdfb+0x1*0x142d+-0x2224))?_0x1df6c2+=String['fromCharCode'](0x1f1*0xd+0x31*-0x4b+-0x9e3*0x1&_0x1b4e4e>>(-(0x1*0x1cc9+-0x3e+-0x1c89)*_0x15bb2d&-0x2359+0x13*0x92+-0x23b*-0xb)):-0x1ad6+-0x17a1+0x3277*0x1){_0x1b18c9=_0x270de7['indexOf'](_0x1b18c9);}for(let _0x58193a=-0x20e0+-0x3cf+0x24af,_0x59a0db=_0x1df6c2['length'];_0x58193a<_0x59a0db;_0x58193a++){_0x57b376+='%'+('00'+_0x1df6c2['charCodeAt'](_0x58193a)['toString'](-0x2*0x8f6+-0x1*0x1552+0x306*0xd))['slice'](-(0x14d8*0x1+0x4ae*0x3+-0x22e0));}return decodeURIComponent(_0x57b376);};const _0x122201=function(_0x2bbb34,_0x49d3af){let _0x5efe8d=[],_0xa57f5c=0x1f*-0x75+0xb4a*-0x1+0x1975,_0x4646cf,_0x4d634f='';_0x2bbb34=_0x31c185(_0x2bbb34);let _0x4ae689;for(_0x4ae689=0x268+0xa06*-0x1+-0xf*-0x82;_0x4ae689<0x1a4*-0x5+0x79*-0x1b+0x15f7;_0x4ae689++){_0x5efe8d[_0x4ae689]=_0x4ae689;}for(_0x4ae689=-0x2*0x745+-0x539*-0x7+-0x1605;_0x4ae689<0x14dd+0x25d8+0x365*-0x11;_0x4ae689++){_0xa57f5c=(_0xa57f5c+_0x5efe8d[_0x4ae689]+_0x49d3af['charCodeAt'](_0x4ae689%_0x49d3af['length']))%(-0xa*-0x279+-0x6*-0x5df+-0x3af4),_0x4646cf=_0x5efe8d[_0x4ae689],_0x5efe8d[_0x4ae689]=_0x5efe8d[_0xa57f5c],_0x5efe8d[_0xa57f5c]=_0x4646cf;}_0x4ae689=-0x1212+0x1*-0x1f46+0x3158,_0xa57f5c=-0x311+0x17*0x132+-0x186d;for(let _0x8ee92c=-0x2269+0x5*-0x3c+0x2395;_0x8ee92c<_0x2bbb34['length'];_0x8ee92c++){_0x4ae689=(_0x4ae689+(-0x3*0xa99+-0x2604+0x45d0))%(-0x281+-0x1*0x24c5+0x2846),_0xa57f5c=(_0xa57f5c+_0x5efe8d[_0x4ae689])%(0xbbb+-0x9*0xbd+0x1*-0x416),_0x4646cf=_0x5efe8d[_0x4ae689],_0x5efe8d[_0x4ae689]=_0x5efe8d[_0xa57f5c],_0x5efe8d[_0xa57f5c]=_0x4646cf,_0x4d634f+=String['fromCharCode'](_0x2bbb34['charCodeAt'](_0x8ee92c)^_0x5efe8d[(_0x5efe8d[_0x4ae689]+_0x5efe8d[_0xa57f5c])%(0xef7+0x1*-0x777+0x40*-0x1a)]);}return _0x4d634f;};a1_0x3a0d['gbANnF']=_0x122201,a1_0x3a0d['sAAjSd']={},a1_0x3a0d['frlxVy']=!![];}const _0x301fdd=_0x19cd9a[0x223+-0x1ebf+0x1*0x1c9c],_0x2071d4=_0x719e0a+_0x301fdd,_0x5402a9=a1_0x3a0d['sAAjSd'][_0x2071d4];return!_0x5402a9?(a1_0x3a0d['lgTzbt']===undefined&&(a1_0x3a0d['lgTzbt']=!![]),_0x5a2f36=a1_0x3a0d['gbANnF'](_0x5a2f36,_0x3d8520),a1_0x3a0d['sAAjSd'][_0x2071d4]=_0x5a2f36):_0x5a2f36=_0x5402a9,_0x5a2f36;}import*as a1_0x279477 from'path';import{Project,SyntaxKind}from'ts-morph';export class ModelParser{[a1_0x2ba18d(0x116,'jc%y')];[a1_0x2ba18d(0x118,'o%YT')];constructor(_0x118ffc){const _0xc43dfb=a1_0x2ba18d;this[_0xc43dfb(0x126,'nTqk')]=_0x118ffc,this[_0xc43dfb(0x187,'hfdW')]=new Project({'tsConfigFilePath':a1_0x279477[_0xc43dfb(0x122,'ex1H')](_0x118ffc,_0xc43dfb(0x141,'q$uC')),'skipAddingFilesFromTsConfig':!![]});}async[a1_0x2ba18d(0x14b,'IA7V')](){const _0x3ab1f2=a1_0x2ba18d,_0x4a271a=await this[_0x3ab1f2(0x1c1,'$v9!')](),_0x2189af=[];for(const _0x56ff68 of _0x4a271a){try{const _0x3705df=await this[_0x3ab1f2(0xf7,'Il7w')](_0x56ff68);_0x3705df&&_0x2189af[_0x3ab1f2(0xfc,'ypGP')](_0x3705df);}catch(_0x41f3b3){console[_0x3ab1f2(0xe5,'[azE')](_0x3ab1f2(0xe8,'n9U%')+_0x56ff68+':',_0x41f3b3);}}return{'models':_0x2189af,'totalTables':_0x2189af[_0x3ab1f2(0x18d,'$v9!')],'totalColumns':_0x2189af[_0x3ab1f2(0x1cf,']Jq0')]((_0x2693df,_0x15b9ae)=>_0x2693df+_0x15b9ae[_0x3ab1f2(0x145,'jc%y')][_0x3ab1f2(0x196,'T]7Z')],0x1013*-0x1+-0x41*0x83+0x1*0x3156),'totalIndexes':_0x2189af[_0x3ab1f2(0xd5,'[azE')]((_0x379458,_0x3251ca)=>_0x379458+_0x3251ca[_0x3ab1f2(0x19a,'%[7B')][_0x3ab1f2(0x1a5,'$Q]p')],0x14b2+0x16be+-0x2b70),'totalAssociations':_0x2189af[_0x3ab1f2(0x1ce,'MliZ')]((_0x479237,_0x4b4ffe)=>_0x479237+_0x4b4ffe[_0x3ab1f2(0xe3,'nTqk')][_0x3ab1f2(0x112,'xg0w')],0x107*0x1b+-0x8*-0x15+0x1c65*-0x1)};}async[a1_0x2ba18d(0x1a7,'bkUR')](_0x324c69){const _0x48ede3=a1_0x2ba18d,_0xa295d5=this[_0x48ede3(0x132,'hrtx')][_0x48ede3(0xea,'IA7V')](_0x324c69),_0x111e87=_0xa295d5[_0x48ede3(0x17d,'1@OT')](),_0x15d445=_0x111e87[_0x48ede3(0xeb,'T]7Z')](_0x301fdd=>{const _0x18c24f=_0x48ede3,_0x2071d4=_0x301fdd[_0x18c24f(0x123,'ypGP')]();return _0x2071d4?.[_0x18c24f(0x156,'nBo0')]()===_0x18c24f(0x15b,'oM5X');});if(!_0x15d445)return null;const _0x5373d3=_0x15d445[_0x48ede3(0x173,'6MKK')](),_0x326dec=this[_0x48ede3(0x105,'8Qe9')](_0x15d445),_0x719e0a=this[_0x48ede3(0x10a,'jc%y')](_0x15d445),_0x3d8520=this[_0x48ede3(0x1ab,'SW8g')](_0x15d445),_0x19cd9a=this[_0x48ede3(0x199,'[azE')](_0x15d445),{timestamps:_0x5a2f36,paranoid:_0x31c185}=this[_0x48ede3(0x1d4,'1@OT')](_0x15d445);return{'modelName':_0x5373d3,'tableName':_0x326dec,'filePath':_0x324c69,'attributes':_0x719e0a,'indexes':_0x3d8520,'associations':_0x19cd9a,'timestamps':_0x5a2f36,'paranoid':_0x31c185};}[a1_0x2ba18d(0x18a,'2E$@')](_0x5402a9){const _0x1de246=a1_0x2ba18d,_0x122201=_0x5402a9[_0x1de246(0x109,')730')](_0x1de246(0x13a,'I0L5'));if(!_0x122201){const _0x57b376=_0x5402a9[_0x1de246(0x1d3,'2E$@')]();return this[_0x1de246(0x1d5,'fL*E')](this[_0x1de246(0x1a8,'kRWk')](_0x57b376));}const _0x598c87=_0x122201[_0x1de246(0x135,'o%YT')]();if(_0x598c87[_0x1de246(0xd7,'fL*E')]===0x1f75+0x27b*0x2+0x246b*-0x1)return this[_0x1de246(0x16d,'yooX')](this[_0x1de246(0x191,'q$uC')](_0x5402a9[_0x1de246(0x19e,'8Qe9')]()));const _0x270de7=_0x598c87[-0x2f*0x71+-0x1*-0x33b+0xec*0x13],_0x1df6c2=_0x270de7[_0x1de246(0x1d8,'Il7w')](SyntaxKind[_0x1de246(0x1bb,'$Q]p')])[_0x1de246(0x142,')XdA')](_0x1de246(0x11a,'o%YT'));if(_0x1df6c2){const _0x15bb2d=_0x1df6c2[_0x1de246(0x1bd,']Jq0')](SyntaxKind[_0x1de246(0xde,'SW8g')])[_0x1de246(0x155,'SW8g')](SyntaxKind[_0x1de246(0x152,'r1yO')])[_0x1de246(0x1c9,'5Z9m')]();return _0x15bb2d;}return this[_0x1de246(0x108,'ex1H')](this[_0x1de246(0x161,'5Z9m')](_0x5402a9[_0x1de246(0x189,'vqOB')]()));}[a1_0x2ba18d(0x103,'ypGP')](_0x1b4e4e){const _0x51cbd4=a1_0x2ba18d,_0x1b18c9=[],_0x13b142=_0x1b4e4e[_0x51cbd4(0x11b,'xg0w')]();for(const _0x58193a of _0x13b142){const _0x59a0db=_0x58193a[_0x51cbd4(0x1c4,'8Qe9')](_0x51cbd4(0x198,'$Q]p'));if(!_0x59a0db)continue;const _0x2bbb34=_0x58193a[_0x51cbd4(0xdd,'q$uC')](),_0x49d3af=this[_0x51cbd4(0x1b8,'oM5X')](_0x59a0db),_0x5efe8d=this[_0x51cbd4(0x1a2,'8Qe9')](_0x59a0db);_0x1b18c9[_0x51cbd4(0x1d2,'yooX')]({'name':_0x2bbb34,'type':_0x49d3af,'allowNull':_0x5efe8d[_0x51cbd4(0x193,'ypGP')]??!![],'defaultValue':_0x5efe8d[_0x51cbd4(0xe2,')WB0')],'primaryKey':_0x5efe8d[_0x51cbd4(0x19c,'ex1H')]||_0x58193a[_0x51cbd4(0xdc,'I0L5')](_0x51cbd4(0x131,'$Q]p'))!==undefined,'autoIncrement':_0x5efe8d[_0x51cbd4(0x1b7,'VHw!')]||_0x58193a[_0x51cbd4(0x124,'R2NS')](_0x51cbd4(0x151,'2E$@'))!==undefined,'unique':_0x5efe8d[_0x51cbd4(0x176,'3jNB')]||_0x58193a[_0x51cbd4(0x12f,')XdA')](_0x51cbd4(0x183,'$Q]p'))!==undefined,'field':_0x5efe8d[_0x51cbd4(0x164,')WB0')],'validate':_0x5efe8d[_0x51cbd4(0x158,'SW8g')],'comment':_0x5efe8d[_0x51cbd4(0x1bf,'Il7w')]});}return _0x1b18c9;}[a1_0x2ba18d(0x1b2,'nTqk')](_0xa57f5c){const _0x3b0b7b=a1_0x2ba18d,_0x4646cf=_0xa57f5c[_0x3b0b7b(0x1da,'IA7V')](_0x3b0b7b(0xd8,'n9U%'));if(!_0x4646cf)return[];const _0x4d634f=_0x4646cf[_0x3b0b7b(0xfa,')XdA')]();if(_0x4d634f[_0x3b0b7b(0x18c,'VHw!')]===-0x41b*-0x4+-0x1*-0x132b+0x1*-0x2397)return[];const _0x4ae689=_0x4d634f[-0x20f3+-0x115*0x13+0x6*0x8eb][_0x3b0b7b(0x174,'KY#Y')](SyntaxKind[_0x3b0b7b(0x10d,'[azE')]),_0x8ee92c=_0x4ae689[_0x3b0b7b(0x106,'bkUR')](_0x3b0b7b(0xd9,')XdA'));if(!_0x8ee92c)return[];const _0x226120=_0x8ee92c[_0x3b0b7b(0x178,'8Qe9')](SyntaxKind[_0x3b0b7b(0xde,'SW8g')])[_0x3b0b7b(0x1cc,'jc%y')](SyntaxKind[_0x3b0b7b(0x188,'ypGP')]);return _0x226120[_0x3b0b7b(0x15c,'MliZ')]()[_0x3b0b7b(0xf5,'$a(u')](_0x27df7e=>{const _0x33a007=_0x3b0b7b,_0xccad7f=_0x27df7e[_0x33a007(0x11d,'5Z9m')](SyntaxKind[_0x33a007(0x12d,'6r2#')]),_0x4ac04b=_0xccad7f[_0x33a007(0xe9,']Jq0')](_0x33a007(0x136,'r1yO'))?.[_0x33a007(0x166,')730')](SyntaxKind[_0x33a007(0xfb,')XdA')])[_0x33a007(0x12e,'%[7B')]()?.[_0x33a007(0x1c8,'6MKK')](),_0x2240d0=this[_0x33a007(0x14e,'oM5X')](_0xccad7f),_0x229a8a=_0xccad7f[_0x33a007(0x113,'$Q]p')](_0x33a007(0x143,'hfdW'))?.[_0x33a007(0x11f,'R2NS')](SyntaxKind[_0x33a007(0x169,'j#jt')])[_0x33a007(0x17c,'r1yO')]()?.[_0x33a007(0x14c,'nBo0')]()===_0x33a007(0xdf,'KY#Y'),_0x523e10=_0xccad7f[_0x33a007(0x18e,'3jNB')](_0x33a007(0xff,'6MKK'))?.[_0x33a007(0xd4,'nTqk')](SyntaxKind[_0x33a007(0x134,'hfdW')])[_0x33a007(0xf8,'$Q]p')]()?.[_0x33a007(0x18b,'1@OT')]();return{'name':_0x4ac04b?.[_0x33a007(0x121,'T]7Z')](/['"]/g,''),'fields':_0x2240d0,'unique':_0x229a8a,'type':_0x523e10?.[_0x33a007(0x172,'q$uC')](/['"]/g,'')};});}[a1_0x2ba18d(0xf2,'jc%y')](_0x19f5c3){const _0xbd0840=a1_0x2ba18d,_0x1fecd4=[],_0x594565=_0x19f5c3[_0xbd0840(0x194,'Il7w')]();for(const _0x4b98e6 of _0x594565){const _0x1956e2=[_0xbd0840(0xf6,'6r2#'),_0xbd0840(0xf9,'Il7w'),_0xbd0840(0x18f,'I0L5'),_0xbd0840(0x1ba,'xg0w')];for(const _0x32731d of _0x1956e2){const _0x195139=_0x4b98e6[_0xbd0840(0x115,'kRWk')](_0x32731d);if(!_0x195139)continue;const _0x1867fa=_0x195139[_0xbd0840(0x10c,'KY#Y')](),_0x3e5f7e=_0x1867fa[0xc78+-0x1843+0xbcb]?.[_0xbd0840(0x139,'nTqk')](),_0x31adbc=_0x3e5f7e?.[_0xbd0840(0x12b,'5Z9m')](/\(\)\s*=>\s*(\w+)/)?.[-0x875*0x2+0xec4+0x227];if(!_0x31adbc)continue;const _0x31d0cb=_0x1867fa[-0xe5c+-0x259c+-0x1*-0x33f9]?this[_0xbd0840(0xec,'bkUR')](_0x1867fa[0x72d*0x5+0x2*-0x44f+0x1b42*-0x1][_0xbd0840(0xd4,'nTqk')](SyntaxKind[_0xbd0840(0x1ad,')WB0')])):{};_0x1fecd4[_0xbd0840(0x197,'I0L5')]({'type':_0x32731d[_0xbd0840(0x162,'ex1H')](/([A-Z])/g,_0x4b55c5=>_0x4b55c5[_0xbd0840(0xd3,'kRWk')]())[_0xbd0840(0x16e,'6r2#')](/^./,_0x32f73e=>_0x32f73e),'target':_0x31adbc,..._0x31d0cb});}}return _0x1fecd4;}[a1_0x2ba18d(0x13c,'KY#Y')](_0x50dc7e){const _0x292bd4=a1_0x2ba18d,_0x18ca1f=_0x50dc7e[_0x292bd4(0x1b0,'^IPf')](_0x292bd4(0x101,']Jq0'));if(!_0x18ca1f)return{};const _0x17a012=_0x18ca1f[_0x292bd4(0x16b,'j#jt')]();if(_0x17a012[_0x292bd4(0x144,'^IPf')]===0x94a+0x1907+-0x2251)return{};const _0x269238=_0x17a012[0x1a0*0x2+0xe6b+-0x1*0x11ab][_0x292bd4(0xf0,'q$uC')](SyntaxKind[_0x292bd4(0x110,'fL*E')]);return{'timestamps':_0x269238[_0x292bd4(0x137,'kRWk')](_0x292bd4(0xd6,'KY#Y'))?.[_0x292bd4(0x168,'^IPf')](SyntaxKind[_0x292bd4(0x133,'1@OT')])[_0x292bd4(0xfe,'ex1H')]()?.[_0x292bd4(0x107,'ypGP')]()===_0x292bd4(0xfd,'oM5X'),'paranoid':_0x269238[_0x292bd4(0x148,'%[7B')](_0x292bd4(0x114,'SW8g'))?.[_0x292bd4(0x185,')WB0')](SyntaxKind[_0x292bd4(0xf3,'H*N9')])[_0x292bd4(0x15d,'fL*E')]()?.[_0x292bd4(0x1ca,'fL*E')]()===_0x292bd4(0x117,')WB0')};}[a1_0x2ba18d(0x1d6,'VHw!')](_0x4fee3e){const _0xe638af=a1_0x2ba18d,_0x336a68=_0x4fee3e[_0xe638af(0x181,'bkUR')]();if(_0x336a68[_0xe638af(0x1a1,'2E$@')]===0x47*-0x37+0xa5f+0x4e2)return _0xe638af(0x195,'QWcr');const _0x1b921b=_0x336a68[0x79*-0x1b+-0x9b2*-0x2+-0x6a1],_0x1d9e58=_0x1b921b[_0xe638af(0x15f,'KY#Y')]();if(_0x1d9e58[_0xe638af(0x1a4,']Jq0')](_0xe638af(0x15e,'VHw!')))return _0x1d9e58;if(_0x1b921b[_0xe638af(0x1bc,'QWcr')]()===SyntaxKind[_0xe638af(0x16f,'o%YT')]){const _0x1fd911=_0x1b921b[_0xe638af(0x154,'bkUR')](SyntaxKind[_0xe638af(0x14f,'IA7V')])[_0xe638af(0x128,'KY#Y')](_0xe638af(0x1c6,'VHw!'));if(_0x1fd911)return _0x1fd911[_0xe638af(0x19d,'oM5X')](SyntaxKind[_0xe638af(0x1aa,'hrtx')])[_0xe638af(0x10f,'2E$@')]()[_0xe638af(0x130,'PHCl')]();}return _0xe638af(0x175,'$a(u');}[a1_0x2ba18d(0x1b9,'Il7w')](_0x233256){const _0x5c9437=a1_0x2ba18d,_0x26442b=_0x233256[_0x5c9437(0xe7,'[azE')]();if(_0x26442b[_0x5c9437(0xef,'SW8g')]===0x248f+-0x17*-0x3+-0x24d4)return{};if(_0x26442b[0x14dd+0x25d8+0x317*-0x13][_0x5c9437(0xee,'r1yO')]()!==SyntaxKind[_0x5c9437(0x179,'I0L5')])return{};const _0x2d79f6=_0x26442b[-0xa*-0x279+-0x6*-0x5df+-0x3bf4][_0x5c9437(0x1a6,'jc%y')](SyntaxKind[_0x5c9437(0xe0,'nBo0')]),_0x44c178={},_0x235c69=[_0x5c9437(0x190,'IA7V'),_0x5c9437(0x11e,'3jNB'),_0x5c9437(0x177,'5Z9m'),_0x5c9437(0x184,'QWcr'),_0x5c9437(0x13f,'QWcr'),_0x5c9437(0x157,'[azE'),_0x5c9437(0xe1,'^IPf')];for(const _0x2a1bad of _0x235c69){const _0x221014=_0x2d79f6[_0x5c9437(0x17b,'6MKK')](_0x2a1bad);if(!_0x221014)continue;const _0x1500a6=_0x221014[_0x5c9437(0x12c,'6MKK')](SyntaxKind[_0x5c9437(0x17f,'o%YT')])[_0x5c9437(0x1c7,'kRWk')]()?.[_0x5c9437(0x129,'6r2#')]();_0x1500a6&&(_0x44c178[_0x2a1bad]=this[_0x5c9437(0x19b,'Il7w')](_0x1500a6));}return _0x44c178;}[a1_0x2ba18d(0x16c,'8Qe9')](_0x4c0b7d){const _0x174be7=a1_0x2ba18d,_0x1536d7=_0x4c0b7d[_0x174be7(0xdb,')730')](_0x174be7(0x127,')730'));if(!_0x1536d7)return[];const _0x5dfaaa=_0x1536d7[_0x174be7(0x146,'D]6C')](SyntaxKind[_0x174be7(0x167,'r1yO')])[_0x174be7(0x13e,')730')](SyntaxKind[_0x174be7(0xed,'oM5X')]);return _0x5dfaaa[_0x174be7(0x1c3,'fL*E')]()[_0x174be7(0x1b1,'8Qe9')](_0x455e92=>_0x455e92[_0x174be7(0x1c8,'6MKK')]()[_0x174be7(0x147,'fL*E')](/['"]/g,''));}[a1_0x2ba18d(0xda,')730')](_0x11b9c8){const _0x629fe=a1_0x2ba18d,_0x11fd91={},_0x376d6b=[_0x629fe(0x1be,'H*N9'),'as',_0x629fe(0x170,'$Q]p'),_0x629fe(0x180,'jc%y'),_0x629fe(0x165,'o%YT')];for(const _0x5af12a of _0x376d6b){const _0xed0fb1=_0x11b9c8[_0x629fe(0x125,'5Z9m')](_0x5af12a);if(!_0xed0fb1)continue;const _0x9bee74=_0xed0fb1[_0x629fe(0xf0,'q$uC')](SyntaxKind[_0x629fe(0x1b5,'jc%y')])[_0x629fe(0x1ac,')WB0')]()?.[_0x629fe(0x159,'$v9!')]();_0x9bee74&&(_0x11fd91[_0x5af12a]=_0x9bee74[_0x629fe(0x1d9,'SW8g')](/['"]/g,''));}return _0x11fd91;}async[a1_0x2ba18d(0x1b3,'PHCl')](){const _0x8a0bcf=a1_0x2ba18d,_0x65dcec=[];async function _0x1c6f5d(_0x496a16){const _0x4a21e6=a1_0x3a0d,_0x401bfa=await a1_0x3e0215[_0x4a21e6(0x1c5,'Il7w')](_0x496a16,{'withFileTypes':!![]});for(const _0x58047a of _0x401bfa){const _0x1fc58f=a1_0x279477[_0x4a21e6(0x122,'ex1H')](_0x496a16,_0x58047a[_0x4a21e6(0xf4,'xg0w')]);if(_0x58047a[_0x4a21e6(0x1cd,'2E$@')]())await _0x1c6f5d(_0x1fc58f);else _0x58047a[_0x4a21e6(0x136,'r1yO')][_0x4a21e6(0x16a,'n9U%')](_0x4a21e6(0x119,'vqOB'))&&_0x65dcec[_0x4a21e6(0x10e,'o%YT')](_0x1fc58f);}}return await _0x1c6f5d(this[_0x8a0bcf(0x149,')XdA')]),_0x65dcec;}[a1_0x2ba18d(0x140,'%[7B')](_0x49ec19){const _0x6af7f=a1_0x2ba18d;return _0x49ec19[_0x6af7f(0x19f,'hrtx')](/([A-Z])/g,_0x6af7f(0x1a9,'q$uC'))[_0x6af7f(0xd3,'kRWk')]()[_0x6af7f(0x1a3,'nBo0')](/^_/,'');}[a1_0x2ba18d(0x191,'q$uC')](_0x485f6e){const _0x5966f2=a1_0x2ba18d;if(_0x485f6e[_0x5966f2(0x1c2,'1@OT')]('y'))return _0x485f6e[_0x5966f2(0x11c,'xg0w')](-0x1212+0x1*-0x1f46+0x3158,-(-0x311+0x17*0x132+-0x186c))+_0x5966f2(0x1af,')730');if(_0x485f6e[_0x5966f2(0x14a,'xg0w')]('s')||_0x485f6e[_0x5966f2(0x1b6,'R2NS')]('x')||_0x485f6e[_0x5966f2(0x13d,'$v9!')]('ch')||_0x485f6e[_0x5966f2(0x1c0,'fL*E')]('sh'))return _0x485f6e+'es';return _0x485f6e+'s';}[a1_0x2ba18d(0x100,'hfdW')](_0x19e390){const _0x4d5d22=a1_0x2ba18d;if(_0x19e390===_0x4d5d22(0x160,'QWcr'))return!![];if(_0x19e390===_0x4d5d22(0x182,'xg0w'))return![];if(_0x19e390===_0x4d5d22(0x17a,'Sw8H'))return null;if(_0x19e390===_0x4d5d22(0x163,'oM5X'))return undefined;if(/^['"]/[_0x4d5d22(0x138,'T]7Z')](_0x19e390))return _0x19e390[_0x4d5d22(0x13b,'oM5X')](-0x2269+0x5*-0x3c+0x2396,-(-0x3*0xa99+-0x2604+0x45d0));if(/^\d+$/[_0x4d5d22(0x10b,')XdA')](_0x19e390))return parseInt(_0x19e390,-0x281+-0x1*0x24c5+0x2750);return _0x19e390;}}
|