@routinecrew/routinecode 2.31.38 → 2.31.40

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.
Files changed (82) hide show
  1. package/bin/prompt-vault.js +1 -1
  2. package/bin/setup.js +1 -1
  3. package/hooks/lib/block_message.py +1 -1
  4. package/hooks/lib/receipt.py +221 -0
  5. package/hooks/pre-agent-spawn.mjs +1 -1
  6. package/hooks/pre-credit-guard.sh +5 -3
  7. package/hooks/pre-mark-complete.sh +19 -0
  8. package/hooks/pre-read-knowledge-inject.sh +81 -8
  9. package/hooks/session-start.sh +3 -0
  10. package/hooks/stop-usage-metrics.sh +150 -2
  11. package/hooks/tests/gate-integration.test.sh +114 -0
  12. package/hooks/user-prompt-submit.sh +29 -3
  13. package/mcp-db-manager/dist/analyzers/duplicate-detector.js +1 -1
  14. package/mcp-db-manager/dist/core/model-parser.js +1 -1
  15. package/mcp-db-manager/dist/core/schema-reader.js +1 -1
  16. package/mcp-db-manager/dist/executors/migration-executor.js +1 -1
  17. package/mcp-db-manager/dist/generators/migration-generator.js +1 -1
  18. package/mcp-db-manager/dist/index.js +1 -1
  19. package/mcp-db-manager/dist/validators/schema-validator.js +1 -1
  20. package/mcp-dev-tester/dist/analyzers/auth-diagnoser.js +1 -1
  21. package/mcp-dev-tester/dist/analyzers/backend-analyzer.js +1 -1
  22. package/mcp-dev-tester/dist/analyzers/endpoint-diagnoser.js +1 -1
  23. package/mcp-dev-tester/dist/analyzers/frontend-analyzer.js +1 -1
  24. package/mcp-dev-tester/dist/analyzers/runtime-diagnoser.js +1 -1
  25. package/mcp-dev-tester/dist/analyzers/type-comparator.js +1 -1
  26. package/mcp-dev-tester/dist/analyzers/validation-diagnoser.js +1 -1
  27. package/mcp-dev-tester/dist/browser/playwright-manager.js +1 -1
  28. package/mcp-dev-tester/dist/browser/ui-tester.js +1 -1
  29. package/mcp-dev-tester/dist/config/project-config.js +1 -1
  30. package/mcp-dev-tester/dist/index.js +1 -1
  31. package/mcp-dev-tester/dist/testers/api-tester.js +1 -1
  32. package/mcp-doc-fetcher/dist/index.js +1 -1
  33. package/mcp-html-renderer/dist/index.js +1 -1
  34. package/mcp-html-renderer/dist/preview.js +1 -1
  35. package/mcp-html-renderer/dist/template-engine.js +1 -1
  36. package/mcp-intelligence/dist/concept-catalog.js +1 -1
  37. package/mcp-intelligence/dist/concept-server-proxy.js +1 -1
  38. package/mcp-intelligence/dist/config-auth.js +1 -1
  39. package/mcp-intelligence/dist/contracts.generated.js +1 -1
  40. package/mcp-intelligence/dist/domain-templates.js +1 -1
  41. package/mcp-intelligence/dist/grounding.js +1 -1
  42. package/mcp-intelligence/dist/handlers.js +1 -1
  43. package/mcp-intelligence/dist/index.js +1 -1
  44. package/mcp-intelligence/dist/intelligence-file.js +1 -1
  45. package/mcp-intelligence/dist/knowledge-critic.js +1 -1
  46. package/mcp-intelligence/dist/knowledge-handlers.js +1 -1
  47. package/mcp-intelligence/dist/mention-extractor.js +1 -1
  48. package/mcp-intelligence/dist/provenance.js +1 -1
  49. package/mcp-intelligence/dist/semantic-embedder.js +1 -1
  50. package/mcp-log-watcher/dist/config-auth.js +1 -1
  51. package/mcp-log-watcher/dist/file-watcher.js +1 -1
  52. package/mcp-log-watcher/dist/index.js +1 -1
  53. package/mcp-log-watcher/dist/known-solutions.js +1 -1
  54. package/mcp-log-watcher/dist/log-store.js +1 -1
  55. package/mcp-log-watcher/dist/websocket-server.js +1 -1
  56. package/mcp-plan-manager/dist/__tests__/plan-parser.test.js +1 -1
  57. package/mcp-plan-manager/dist/file-ops.js +1 -1
  58. package/mcp-plan-manager/dist/index.js +1 -1
  59. package/mcp-plan-manager/dist/plan-parser.js +1 -1
  60. package/mcp-project-context/dist/git-ops.js +1 -1
  61. package/mcp-project-context/dist/index.js +1 -1
  62. package/mcp-project-context/dist/project-analysis.js +1 -1
  63. package/mcp-routinecode/dist/agent-tracker.js +1 -1
  64. package/mcp-routinecode/dist/blast-radius.js +1 -1
  65. package/mcp-routinecode/dist/config-auth.js +1 -1
  66. package/mcp-routinecode/dist/contracts.generated.js +1 -1
  67. package/mcp-routinecode/dist/explorer-advisor.js +1 -1
  68. package/mcp-routinecode/dist/failure-tracker.js +1 -1
  69. package/mcp-routinecode/dist/file-lock-registry.js +1 -1
  70. package/mcp-routinecode/dist/file-risk-scorer.js +1 -1
  71. package/mcp-routinecode/dist/index.js +1 -1
  72. package/mcp-routinecode/dist/known-solutions.js +1 -1
  73. package/mcp-routinecode/dist/ledger-miner.js +1 -1
  74. package/mcp-routinecode/dist/observed-draft.js +1 -1
  75. package/mcp-routinecode/dist/pattern-matcher.js +1 -1
  76. package/mcp-routinecode/dist/routines.js +1 -1
  77. package/mcp-routinecode/dist/rule-engine.js +1 -1
  78. package/mcp-routinecode/dist/rule-promoter.js +1 -1
  79. package/mcp-routinecode/dist/telemetry-analyzer.js +1 -1
  80. package/mcp-routinecode/dist/verification.js +1 -1
  81. package/mcp-routinecode/dist/viral-loop.js +1 -1
  82. package/package.json +1 -1
@@ -130,7 +130,9 @@ def _target_shape(_name, _inp):
130
130
  import re as _re
131
131
  for _sg in _re.split(r'&&|\||;|\n', (_inp.get('command') or '').strip()):
132
132
  for _t in _sg.strip().split():
133
- if _t in ('cd', 'sudo', 'env', 'time', 'nohup', 'exec') or '=' in _t or _t.startswith('-'):
133
+ if _t == 'cd':
134
+ break # cd 의 인자는 경로(명령 아님) → 이 세그먼트 포기, 다음 세그먼트로
135
+ if _t in ('sudo', 'env', 'time', 'nohup', 'exec') or '=' in _t or _t.startswith('-'):
134
136
  continue
135
137
  _b = os.path.basename(_t)
136
138
  return _b if _re.match(r'^[a-zA-Z][a-zA-Z0-9_.+-]*$', _b) else ''
@@ -217,7 +219,17 @@ for _k, _p in enumerate(_pidx):
217
219
 
218
220
  total_tokens = input_tokens + output_tokens + cache_read + cache_create
219
221
 
220
- if total_tokens == 0:
222
+ if total_tokens == 0 and turns_delta == 0 and not msg_task_sigs:
223
+ # 신규 구간에 집계할 토큰·작업·sig 전무(degenerate/aborted 세션) → 종료.
224
+ # 단 커서는 전진시켜 다음 Stop 재읽기(중복) 방지. ★reviewer 지적: 기존엔 토큰만
225
+ # 0이면 turns/sig 가 있어도 여기서 종료돼 cursor 미전진 → degenerate 44파일 turns 누락.
226
+ try:
227
+ os.makedirs(_cursor_dir, exist_ok=True)
228
+ with open(_cursor_file, "w") as _cf:
229
+ json.dump({"count": len(entries),
230
+ "last_uuid": (entries[-1].get("uuid") if entries else None)}, _cf)
231
+ except Exception:
232
+ pass
221
233
  emit({"continue": True})
222
234
 
223
235
  now = datetime.now(timezone.utc)
@@ -399,6 +411,92 @@ try:
399
411
  except Exception:
400
412
  pass
401
413
 
414
+ # ── 3.6. 메타지능 M1: 주입→결과 귀속 (참관 — 기록만, 행동 불변, fail-open) ──
415
+ # 설계: docs2/지능개선/new/메타지능-v1 §3-2 (v1.1). bad = 같은 파일 Edit 재시도 ≥3
416
+ # (transcript 파생 — 에이전트 협조 불요). good = 주입 이후 resolution(build-pass).
417
+ # 판정 불가 엔트리는 pending 유지(무리한 판정 금지 §9). gain 판정은 M2 holdout 대조만.
418
+ try:
419
+ _att_dir = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'attribution')
420
+ _led_path = os.path.join(_att_dir, 'ledger-' + session_id + '.jsonl')
421
+ if os.path.exists(_led_path):
422
+ _led_rows = []
423
+ with open(_led_path) as _lf:
424
+ for _ln in _lf:
425
+ _ln = _ln.strip()
426
+ if _ln:
427
+ try:
428
+ _led_rows.append(json.loads(_ln))
429
+ except Exception:
430
+ pass
431
+ _pending = [_r for _r in _led_rows if not _r.get('done')]
432
+ if _pending:
433
+ # bad 신호: _new 구간의 파일별 Edit 계열 호출 수 (basename sha1[:8] 키 — ledger 와 동일)
434
+ _edit_cnt = {}
435
+ for _ae in _new:
436
+ if _ae.get('type') != 'assistant':
437
+ continue
438
+ _ac = _ae.get('message', {}).get('content', [])
439
+ if not isinstance(_ac, list):
440
+ continue
441
+ for _ab in _ac:
442
+ if not (isinstance(_ab, dict) and _ab.get('type') == 'tool_use'
443
+ and _ab.get('name') in ('Edit', 'Write', 'MultiEdit', 'NotebookEdit')):
444
+ continue
445
+ _ai = _ab.get('input', {})
446
+ _ap = (_ai.get('file_path') or _ai.get('notebook_path') or '') if isinstance(_ai, dict) else ''
447
+ if _ap:
448
+ _afh = _hl.sha1(os.path.basename(_ap).encode('utf-8', 'replace')).hexdigest()[:8]
449
+ _edit_cnt[_afh] = _edit_cnt.get(_afh, 0) + 1
450
+ # good 신호: 이 세션의 resolution(build-pass) 이벤트 at 목록 (주입 이후 것만 인정)
451
+ _res_ats = []
452
+ try:
453
+ with open(os.path.join(log_dir, 'events.jsonl')) as _ef:
454
+ for _ln in _ef:
455
+ if '"resolution"' not in _ln:
456
+ continue
457
+ try:
458
+ _ev = json.loads(_ln)
459
+ except Exception:
460
+ continue
461
+ if _ev.get('type') == 'resolution' and str(_ev.get('session', ''))[:12] == session_id:
462
+ _res_ats.append(str(_ev.get('at', '')))
463
+ except Exception:
464
+ pass
465
+ _stats_p = os.path.join(_att_dir, 'stats.json')
466
+ try:
467
+ with open(_stats_p) as _sf:
468
+ _att_stats = json.load(_sf)
469
+ except Exception:
470
+ _att_stats = {}
471
+ _att_changed = False
472
+ for _pe in _pending:
473
+ _k = _pe.get('kid') or 'unknown'
474
+ _grp = 'holdout' if _pe.get('holdout') else 'exposed'
475
+ _rec = _att_stats.setdefault(_k, {
476
+ "exposed": 0, "holdout": 0, "exposed_bad": 0, "holdout_bad": 0,
477
+ "exposed_good": 0, "holdout_good": 0,
478
+ "kind": _pe.get('kind', ''), "last_seen": today})
479
+ if _edit_cnt.get(_pe.get('file', ''), 0) >= 3:
480
+ _rec[_grp] += 1
481
+ _rec[_grp + '_bad'] += 1
482
+ _rec['last_seen'] = today
483
+ _pe['done'] = 'bad'
484
+ _att_changed = True
485
+ elif any(_ra > str(_pe.get('at', '')) for _ra in _res_ats):
486
+ _rec[_grp] += 1
487
+ _rec[_grp + '_good'] += 1
488
+ _rec['last_seen'] = today
489
+ _pe['done'] = 'good'
490
+ _att_changed = True
491
+ if _att_changed:
492
+ with open(_stats_p, 'w') as _sf:
493
+ json.dump(_att_stats, _sf, ensure_ascii=False, indent=1)
494
+ with open(_led_path, 'w') as _lf:
495
+ for _r in _led_rows:
496
+ _lf.write(json.dumps(_r, ensure_ascii=False) + "\n")
497
+ except Exception:
498
+ pass
499
+
402
500
  # ── 4. Usage sync (세션 종료 시 서버 동기화) ──
403
501
  # 블로킹 방지: sync_manager.py를 detached 자식 프로세스로 실행하고 즉시 반환.
404
502
  # 네트워크 timeout/재시도는 자식에서 처리되며, stop hook 본체는 로컬 기록 후 종료.
@@ -419,5 +517,55 @@ try:
419
517
  except Exception:
420
518
  pass
421
519
 
520
+ # ── 5. 영수증 세션말 1줄 (설계 Prevented-Cost §4-3: 싼 트리거 → 변화시만 → 주1회 상한) ──
521
+ # diff 키 = 비휘발 이벤트만 {rule_count(필터후), mcp_candidate_count, r1_state}.
522
+ # last_snapshot 은 '실제 표시한 Stop' 에서만 갱신(이벤트 유실 방지). 기본 완전 침묵. fail-open.
523
+ _receipt_msg = None
524
+ try:
525
+ _rs_path = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe', 'receipt-state.json')
526
+ _rlib2 = os.path.join(os.environ.get('ROUTINECODE_HOOKS_DIR', ''), 'lib')
527
+ if _rlib2 and _rlib2 not in sys.path:
528
+ sys.path.insert(0, _rlib2)
529
+ import receipt as _rcp
530
+ # 싼 트리거: §3.5 가 방금 메모리에 만든 _routines 재사용(파일 읽기 0 추가). stats 는 소형.
531
+ try:
532
+ _pre_routines = _routines
533
+ except NameError:
534
+ _pre_routines = None
535
+ _snap_now = _rcp.snapshot(routines=_pre_routines)
536
+ try:
537
+ with open(_rs_path) as _rf:
538
+ _rstate = json.load(_rf)
539
+ except Exception:
540
+ _rstate = {}
541
+ _old_snap = _rstate.get('last_snapshot') or {}
542
+ if _snap_now != _old_snap:
543
+ from datetime import datetime as _rdt, timezone as _rtz
544
+ _now_r = _rdt.now(_rtz.utc)
545
+ def _cool_ok():
546
+ # 쓰기 직전 재읽기 포함 이중 확인 (경쟁 완화 — 설계 §3-3)
547
+ try:
548
+ with open(_rs_path) as _rf2:
549
+ _ls = (json.load(_rf2) or {}).get('last_shown') or ''
550
+ except Exception:
551
+ _ls = _rstate.get('last_shown') or ''
552
+ if not _ls:
553
+ return True
554
+ try:
555
+ return (_now_r - _rdt.fromisoformat(_ls)).days >= 7
556
+ except Exception:
557
+ return True
558
+ if _cool_ok():
559
+ _receipt_msg = _rcp.oneline(_snap_now, _old_snap)
560
+ if _receipt_msg:
561
+ os.makedirs(os.path.dirname(_rs_path), exist_ok=True)
562
+ with open(_rs_path, 'w') as _rf:
563
+ json.dump({'last_shown': _now_r.isoformat(),
564
+ 'last_snapshot': _snap_now}, _rf)
565
+ except Exception:
566
+ _receipt_msg = None
567
+
568
+ if _receipt_msg:
569
+ emit({"continue": True, "systemMessage": _receipt_msg})
422
570
  emit({"continue": True})
423
571
  PYEOF
@@ -0,0 +1,114 @@
1
+ #!/bin/bash
2
+ # Gate integration tests — 오케스트레이션 게이트 실측 회귀 (설계 W8)
3
+ #
4
+ # 검증 대상:
5
+ # [1-2] 3-strike: escalation 상태 ↔ pre-edit-check.sh 차단 (경로 계약)
6
+ # [2b] 3-strike: 컴파일된 tracker(dist)가 훅과 동일 경로 상수를 쓰는지
7
+ # [3-6] design-gate(.sources/pre-agent-spawn.mjs.src): block/score/light/degraded
8
+ # [7] credit-guard: 검증 도구 무과금 (FREE_TOOLS)
9
+ # [8] mark-complete: MCP 미연결 degraded(고지 후 생략) + 연결 시 fail-closed 유지
10
+ #
11
+ # 전부 격리 HOME/XDG — 실사용 상태 무오염. 실행: bash hooks/tests/gate-integration.test.sh
12
+ set -u
13
+ HERE="$(cd "$(dirname "$0")" && pwd)"
14
+ HOOKS="$(cd "$HERE/.." && pwd)"
15
+ ROOT="$(cd "$HOOKS/.." && pwd)"
16
+
17
+ pass=0; fail=0
18
+ ok() { echo " ✓ $1"; pass=$((pass+1)); }
19
+ ng() { echo " ✗ $1"; fail=$((fail+1)); }
20
+ assert_contains() { echo "$1" | grep -q "$2" && ok "$3" || ng "$3 — got: $(echo "$1" | head -c 140)"; }
21
+ assert_not_contains() { echo "$1" | grep -q "$2" && ng "$3 — got: $(echo "$1" | head -c 140)" || ok "$3"; }
22
+
23
+ TH=$(mktemp -d)
24
+ export XDG_RUNTIME_DIR=""
25
+ RUN="$TH/.routinecode/run"
26
+ KNOW="$TH/.routinecode/knowledge"
27
+ mkdir -p "$RUN" "$KNOW/verification" "$KNOW/classifications"
28
+
29
+ # design-gate는 소스 오브 트루스(.src)를 복사해 직접 실행 (obfuscated 산출물은 publish 시 재생성)
30
+ GATE_MJS="$TH/gate.mjs"
31
+ cp "$ROOT/.sources/pre-agent-spawn.mjs.src" "$GATE_MJS"
32
+
33
+ IMPL_PAYLOAD='{"tool_name":"Agent","tool_input":{"subagent_type":"routinecode:implementor","description":"w8","prompt":"TASK: x\nCONTEXT:\n- taskId: sim-w8\n- planName: none"}}'
34
+ EDIT_PAYLOAD='{"tool_name":"Edit","tool_input":{"file_path":"/tmp/x.ts"}}'
35
+
36
+ echo "[1] 3-strike: 통일 경로의 escalation → Edit 차단"
37
+ echo '{"escalated":true,"issueId":"w8"}' > "$RUN/routinecode-escalation.json"
38
+ OUT=$(echo "$EDIT_PAYLOAD" | HOME="$TH" bash "$HOOKS/pre-edit-check.sh" 2>/dev/null)
39
+ assert_contains "$OUT" '"block"' "escalation 활성 시 Edit block"
40
+
41
+ echo "[2] 3-strike: escalation 없음 → allow"
42
+ rm -f "$RUN/routinecode-escalation.json"
43
+ OUT=$(echo "$EDIT_PAYLOAD" | HOME="$TH" bash "$HOOKS/pre-edit-check.sh" 2>/dev/null)
44
+ assert_contains "$OUT" 'allow' "비에스컬레이션 시 allow"
45
+
46
+ echo "[2b] 3-strike: 컴파일된 tracker가 훅과 동일 경로 상수 사용 (쓰기=읽기 계약)"
47
+ # 주의: publish 파이프라인이 dist를 in-place 난독화하면 문자열 grep이 불가(인코딩됨).
48
+ # 난독화 감지 시 정적검사는 생략 — 행동 계약은 케이스[1](훅 차단)이 이미 보증한다.
49
+ # 원본 소스(src/failure-tracker.ts) grep으로 소스 레벨 계약은 항상 검사.
50
+ DIST="$ROOT/mcp-routinecode/dist/failure-tracker.js"
51
+ SRC_TS="$ROOT/mcp-routinecode/src/failure-tracker.ts"
52
+ if grep -q "XDG_RUNTIME_DIR" "$SRC_TS" 2>/dev/null && ! grep -q "= '/tmp/routinecode-escalation.json'" "$SRC_TS" 2>/dev/null; then
53
+ ok "src tracker가 RC_RUNDIR 해석식 사용 (/tmp 하드코딩 제거됨)"
54
+ else
55
+ ng "src tracker에 RC_RUNDIR 해석식 없음 — 회귀"
56
+ fi
57
+ if [ -f "$DIST" ]; then
58
+ if head -c 200 "$DIST" | grep -qE '_0x[0-9a-f]'; then
59
+ echo " - dist 난독화 상태 — 정적 grep 생략(소스 검사로 대체)"
60
+ elif grep -q "XDG_RUNTIME_DIR" "$DIST"; then
61
+ ok "dist tracker도 RC_RUNDIR 해석식 포함"
62
+ else
63
+ ng "clean dist인데 RC_RUNDIR 없음 — 재빌드 필요"
64
+ fi
65
+ fi
66
+
67
+ echo "[3] design-gate: mcp-alive 有 + 검증파일 無 → block (fail-closed 유지)"
68
+ echo "$(date +%s)" > "$RUN/mcp-alive"
69
+ OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
70
+ assert_contains "$OUT" 'No design verification' "무검증 implementor block"
71
+
72
+ echo "[4] design-gate: score 95 → allow"
73
+ echo '{"taskId":"sim-w8","phase":"design","currentScore":95}' > "$KNOW/verification/design-sim-w8.json"
74
+ OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
75
+ assert_contains "$OUT" 'allow' "score>=90 allow"
76
+ assert_not_contains "$OUT" '"block"' "score>=90 비차단"
77
+ rm -f "$KNOW/verification/design-sim-w8.json"
78
+
79
+ echo "[5] design-gate: tier=light → allow (면제)"
80
+ echo '{"tier":"light"}' > "$KNOW/classifications/sim-w8.json"
81
+ OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
82
+ assert_contains "$OUT" 'allow' "light tier 면제"
83
+ rm -f "$KNOW/classifications/sim-w8.json"
84
+
85
+ echo "[6] design-gate: mcp-alive 無 → degraded(allow+고지)"
86
+ rm -f "$RUN/mcp-alive"
87
+ OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
88
+ assert_contains "$OUT" 'allow' "MCP 미연결 시 allow"
89
+ assert_contains "$OUT" 'MCP 미연결' "degraded 고지 포함"
90
+
91
+ echo "[7] credit-guard: score_verification 무과금 통과"
92
+ OUT=$(echo '{"tool_name":"mcp__routinecode__score_verification","tool_input":{}}' \
93
+ | HOME="$TH" ROUTINECODE_USER_ID=1 ROUTINECODE_TENANT_ID=1 bash "$HOOKS/pre-credit-guard.sh" 2>/dev/null)
94
+ RC=$?
95
+ if [ "$RC" -eq 0 ]; then
96
+ assert_not_contains "$OUT" '"block"' "FREE 도구 비차단(exit 0)"
97
+ else
98
+ ng "credit-guard exit=$RC (FREE여야 0)"
99
+ fi
100
+
101
+ echo "[8] mark-complete: mcp-alive 無 + BUILD unknown → degraded(고지, 비차단)"
102
+ OUT=$(echo '{}' | HOME="$TH" bash "$HOOKS/pre-mark-complete.sh" 2>/dev/null)
103
+ assert_contains "$OUT" 'MCP 미연결' "완료게이트 degraded 고지"
104
+ assert_not_contains "$OUT" '"block"' "완료게이트 비차단"
105
+
106
+ echo "[8b] mark-complete: mcp-alive 有 + BUILD unknown → 기존 fail-closed block 유지"
107
+ echo "$(date +%s)" > "$RUN/mcp-alive"
108
+ OUT=$(echo '{}' | HOME="$TH" bash "$HOOKS/pre-mark-complete.sh" 2>/dev/null)
109
+ assert_contains "$OUT" '"block"' "연결 세션 게이트 무약화"
110
+
111
+ rm -rf "$TH"
112
+ echo ""
113
+ echo "pass=$pass fail=$fail"
114
+ [ "$fail" -eq 0 ] && exit 0 || exit 1
@@ -12,6 +12,32 @@
12
12
 
13
13
  INPUT=$(cat)
14
14
 
15
+ # ── 영수증 R2: 채택 커맨드 사용 추적 (설계 Prevented-Cost §4-4 — fail-open, 무출력) ──
16
+ # /routines 로 채택된 커맨드가 프롬프트로 호출되면 adoption.json use_count 증분.
17
+ # 어떤 실패도 무시, 출력 없음 → 아래 credit gate/주입 흐름 무간섭.
18
+ ROUTINECODE_HOOK_INPUT="$INPUT" python3 - <<'PYADOPT' 2>/dev/null || true
19
+ import json, os
20
+ try:
21
+ inp = json.loads(os.environ.get('ROUTINECODE_HOOK_INPUT', '') or '{}')
22
+ p = (inp.get('prompt') or '').strip()
23
+ if p.startswith('/'):
24
+ name = p.split()[0][1:]
25
+ ap = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe', 'adoption.json')
26
+ if name and os.path.exists(ap):
27
+ with open(ap) as f:
28
+ arr = json.load(f)
29
+ hit = False
30
+ for a in (arr if isinstance(arr, list) else []):
31
+ if isinstance(a, dict) and a.get('command') == name:
32
+ a['use_count'] = int(a.get('use_count', 0) or 0) + 1
33
+ hit = True
34
+ if hit:
35
+ with open(ap, 'w') as f:
36
+ json.dump(arr, f, ensure_ascii=False, indent=1)
37
+ except Exception:
38
+ pass
39
+ PYADOPT
40
+
15
41
  # ── Credit gate: SERVER-AUTHORITATIVE (per-turn) ──
16
42
  # 서버(growth, knowledge /growth-proxy 경유)가 apiKey에서 userId를 도출하고 잔액·gate를
17
43
  # 결정한다. 로컬 파일(잔액/플래그) 편집으로는 온라인 상태에서 우회 불가.
@@ -54,7 +80,7 @@ except Exception:
54
80
  _RC_MARK="$HOME/.routinecode/.recharge-opened-$(date -u +%Y%m%d 2>/dev/null)"
55
81
  if [ ! -f "$_RC_MARK" ]; then
56
82
  touch "$_RC_MARK" 2>/dev/null || true
57
- _RC_URL="https://routinecode.routinecrew.net/recharge/write"
83
+ _RC_URL="https://routinecode.routinecrew.net/recharge"
58
84
  ( if command -v open >/dev/null 2>&1; then open "$_RC_URL" >/dev/null 2>&1
59
85
  elif command -v xdg-open >/dev/null 2>&1; then xdg-open "$_RC_URL" >/dev/null 2>&1
60
86
  elif command -v cmd.exe >/dev/null 2>&1; then cmd.exe /c start "$_RC_URL" >/dev/null 2>&1; fi ) &
@@ -68,12 +94,12 @@ try:
68
94
  import block_message
69
95
  msg = block_message.generate()
70
96
  except Exception:
71
- msg = '[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge/write for instant +50, or run /share.'
97
+ msg = '[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge for instant +50, or run /share.'
72
98
  # UserPromptSubmit: {"decision":"block","reason":...} DISPLAYS reason to the user
73
99
  # (continue:false does NOT — it only shows the generic 'Operation stopped by hook').
74
100
  print(json.dumps({'decision': 'block', 'reason': msg}))
75
101
  " 2>/dev/null)
76
- [ -z "$_RC_BLOCK_JSON" ] && _RC_BLOCK_JSON='{"decision":"block","reason":"[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge/write for instant +50, or run /share."}'
102
+ [ -z "$_RC_BLOCK_JSON" ] && _RC_BLOCK_JSON='{"decision":"block","reason":"[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge for instant +50, or run /share."}'
77
103
  printf '%s\n' "$_RC_BLOCK_JSON"
78
104
  exit 0
79
105
  ;;
@@ -1 +1 @@
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
+ const a0_0x40b165=a0_0x120c;function a0_0x58dd(){const _0x54dd0d=['W5igWPBdL8oOiK0vWQveWPpcSCo2w8kIW643aSkSW4ux','WQRdLwDu','WOhcRNOeW4C5W4hcHSkmW5NcSMy','7yEp7j6u67MXW58u','igxcJa','W5Xgu8oDWOVcNa','WQrmWPVcOW','W63cJXFcKLlcHG/cKmoNWQ8xzCkRW6/cNmkEW6xcNq','WPJcTmk3EZX2ig56ja','WOhdOmoXzWxcNgNcP8oIEW','W5RdVCoSjba','WQBdLCk2WQ3dKXnPWQxcQSoAWQyLBW','ySonfmk9ugGo','udxcN8kygSkZgGf+W5C','W4GeW7BdJcddPa','WOjsW5FcHSk+zgCoWOzjWOpcPG','WPhcV8omDmoHWO/cSSod','WPXrms/dJW','bgevWOW','qYtcM8kgeSkYcG','qKLikmoCzmk5fWRcQmojC8kCtYZcJCoiBSoTecK','lCkIW77dKdvhq1eJW7jMW6FcRYRcJIyPqG','jmkyx8oRatjBW5VdJgtcVghdRG','W7FcGqFcK1BcPaFcH8oN','WPtdHxO','W5qvbCo9','WOTekspdMmoqbxrhW6P9fuW6W6HpjJ5qW7/cGW','W5ldJ8o3','WRpcTN7cTq','W4uvW6ZdMt3dRNGeW5SL','W44oW7hdHq','h2OdWO9nWQ7dIW','WPZQSRBcM+YFN+YcIU2uV+UkS+UkOCk+hEYMUoUYLSoV64YK7jYC7yEjWOlRM6/RIO/cGEYFK+URTEUqV0VSOlZQTRlTMRBSNPmI7iM7qEYCVEYjMUUiQUUiL2ag67kS7zwQioUyO+UiPhJQTkhQSz7cPoYEIoYeJUQXG+UMSmoh6Rck7ysU7zwN7isN7jQMW6C','zSojeG','pK/dOSknW7VdTZXYmmoE','qJhcH8kdbW','W4xdTNdcHW','jqNdNtG','AmkvEKpcIIzAW4rozfxdR8kntSkSW7BcImor','W5aaW7RdHZhdGMWDW5S','W6pcGmoTW7NcJMK6WR/cRa','yCodkSk8tMmBW6/dJN7cOa','ymktzfRcJJG','W63cVmoiDHOeWPK','xLLnjq','W4KiW7y','nmk2C8k1gMDlzxldGW','xeLDiSoFESk0dqVcH8oorCkzrGpcImor','W5nrvmooWPBcL2rz','W4VdG8oiWPC','WRPeWPK','jW/dK8or','WQrtWOpdPCo/W5yEWRK','aXq8WP5Bxsi2dG','nSkBk8kUvd8','WOq4vwOflJqRWPZcGbW','WPfd7zU37ygU66oxDU2gVoYCNmo16RAK7j2FW7ZcT+YyRU2vOSksFG','W57cUCkTmG','oua/jSkgFdKFW6mEW47cVYNdLqKZWQ3cUmoJms4','W6xdIrPdcCoY','mmkSC8k1gMbn','oCkNCCkIhxzwzxldMwtdJbRcHYCGW79FWRpdGmor','W4/dMCo3WPbrmWKgW7foW4W','W7SmWRFdJSouW4m','W7VcHmoHW7lcN08','WPXimc/dL8ofmW','WRhQSP/dS8km','W63dIqbbhSoUW7O9hmomCmopBCoMv2DWW6RdRmkyWO8','pmkQhCkfWPZcOG','CvNcIMVdTCoUWQ1NWOFdOLi','x8kXmMNcJmonWQRdOSkuja','CCojeSk2wNi','WRVcPxZcVq','udlcMmkpamkIkrX+W4G2uCohAhhdTa9hW5iBBmoDuJXczmkeW5H7WOS','lSkIW6JdMdHy','dfpdOGnfsIH9y3ZdJCo+','WOG/wc1lW63cPmoAk3nTWPK','grqZWPC','WQxcUSkNWOS','tmoKimoyFIGyWOL4W4XfjmkemXK6y8oyna','66IR65carE2gS+YDH+U7VUYwTUYhTSkI7j6v6Rw+65cCW6FRHQ/SNQBRS7lcQoYbLoYzHmku7kwqW5JcPUY1IEQWHmoh7kcK7lMgWOlRT5/TLQxSM6hdOa','WPVcQYRdNtjtWR/cTIfMfq','WPxdGwXufcG','bxddNSoErSoJarTiW4uRyq','jb/dLa','W6xcIqNcKW','oX/dLSoCqIzHW4joWQHVhCkCW4dcS28Nlbu','cSk1CCkbjNaeWOvZW59waW','W6xcIqNcI1BcMa','W6PIb0VdRSkBamkscsZdN8kBWOZdS0JdNCojW7ZcKsvwW4yZBW','vWxcOq','W6DSguxdUSkBcmkCct7dL8kCWOZdSLxdLCojW7a','vItcNW','WR/dLxffW5BcQq','WQneWOpcQLlcNmoeWOFdRq','WPXijYm','gHqU','nCk3eSkbWPW','jghcKv7dR8k+','W4HQchCBWPBcVmoviq','W7VcU8orBr8aWPG','W49Ieh4','kCkxkmkGtdBdKX7dV8kf','W6uCW5JdSq7cOmo8WO7dIuya','q01o','m8kWAmkQ','W63cJI4fWOhcGwujs2Hr','AujFrN4KW6dcRaFdR8oHcCkdW4/dNdux','W4meW6W','W6HWge3dQmkej8kpcrtdMSk9WPxdPNFdNCohW7tcIs1lW4euC8koW7dcNv8OWOO','xZ8JWQ1RWQVdVmoH','oCkNACkGb20','W5LSetPDdqOvWP7cNWhcTxdcSLPiB2NdHq','W5BdL8ol','W6xcS8om','W4xdQmoUkHbl','W5hdUczvWOvHW7RcS8kSW73cMKS8eheVlmoNWP7dNMr9sZS','WQDqWPlcRG','k2xcK1RdRSk6x8o3W4pcQ8k4FSojW67cTHhcH08NW7Glg19g','64wN7j6567kbWP3RT5ZSNzFSUBil7ykw7kw0iCkIW6q','W6vkumkrDXnPWRJcQc3cUXvxWRpdQSkve8kYuq','W6/cHqVcMeFcGG','xd5bW5yAWP3dUmofk2tdLq','W4VdJ8oLWQldK3mhDwm','WQhcVwhcVq','WPtcTmobF8oGWOm'];a0_0x58dd=function(){return _0x54dd0d;};return a0_0x58dd();}function a0_0x120c(_0x477250,_0x2fabff){_0x477250=_0x477250-(-0x1b*0x13+0x5*0x233+0x63*-0x14);const _0x377946=a0_0x58dd();let _0x3cc0d2=_0x377946[_0x477250];if(a0_0x120c['udQsPT']===undefined){var _0x4af986=function(_0x2966f0){const _0xc5927b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x247f5e='',_0x25f8d2='';for(let _0x3c0d8c=0xd7b+-0xa24+-0x357,_0x3a2378,_0x4b147b,_0x6bd2f9=-0x2352+0x7b3+0x1b9f;_0x4b147b=_0x2966f0['charAt'](_0x6bd2f9++);~_0x4b147b&&(_0x3a2378=_0x3c0d8c%(0xdc+0x4*-0x254+0x878)?_0x3a2378*(-0x70f*-0x2+-0x1*0xf87+0x1a9)+_0x4b147b:_0x4b147b,_0x3c0d8c++%(-0x26a7+-0x2621+-0xa*-0x7ae))?_0x247f5e+=String['fromCharCode'](0x481+0x1*0x53c+0x8be*-0x1&_0x3a2378>>(-(0x13de+-0xbe5+-0x1*0x7f7)*_0x3c0d8c&-0x1c73*0x1+0x1c28+0x51)):0x1a38*0x1+-0x215*-0xb+-0x311f){_0x4b147b=_0xc5927b['indexOf'](_0x4b147b);}for(let _0x566fa9=-0x5f*-0x3+-0x1*0xb23+-0xa06*-0x1,_0x3f3cf4=_0x247f5e['length'];_0x566fa9<_0x3f3cf4;_0x566fa9++){_0x25f8d2+='%'+('00'+_0x247f5e['charCodeAt'](_0x566fa9)['toString'](-0x23cd+0x1cc4+0x719))['slice'](-(-0x7c0+0x24d3+-0x1d11));}return decodeURIComponent(_0x25f8d2);};const _0x3066af=function(_0x7f2a91,_0x59d394){let _0x22097a=[],_0x7255b7=-0xe8e*0x2+0x472+0x18aa,_0x2e7db8,_0x44ac57='';_0x7f2a91=_0x4af986(_0x7f2a91);let _0x1bc402;for(_0x1bc402=-0x2*-0x6ad+0x1f32+0x1*-0x2c8c;_0x1bc402<-0x14fd+0x16bd+-0xc0;_0x1bc402++){_0x22097a[_0x1bc402]=_0x1bc402;}for(_0x1bc402=-0x1f7e+0x17be+0x7c0;_0x1bc402<0x10*0xf1+0x2073+-0x7*0x6a5;_0x1bc402++){_0x7255b7=(_0x7255b7+_0x22097a[_0x1bc402]+_0x59d394['charCodeAt'](_0x1bc402%_0x59d394['length']))%(0x21a*0x3+0x85b+-0x10d*0xd),_0x2e7db8=_0x22097a[_0x1bc402],_0x22097a[_0x1bc402]=_0x22097a[_0x7255b7],_0x22097a[_0x7255b7]=_0x2e7db8;}_0x1bc402=0x979+0x1c46+-0x25bf,_0x7255b7=0x3*0x71+0x363+-0x4b6;for(let _0x527d82=0x58c*-0x1+0x1*-0x526+0xab2;_0x527d82<_0x7f2a91['length'];_0x527d82++){_0x1bc402=(_0x1bc402+(0x4c+-0x1421+0x13d6))%(0x13*-0x19a+0x170*0xb+0xf9e),_0x7255b7=(_0x7255b7+_0x22097a[_0x1bc402])%(-0xc32+-0x2534+0x3266),_0x2e7db8=_0x22097a[_0x1bc402],_0x22097a[_0x1bc402]=_0x22097a[_0x7255b7],_0x22097a[_0x7255b7]=_0x2e7db8,_0x44ac57+=String['fromCharCode'](_0x7f2a91['charCodeAt'](_0x527d82)^_0x22097a[(_0x22097a[_0x1bc402]+_0x22097a[_0x7255b7])%(0x5*0x233+0x228c+-0x2c8b)]);}return _0x44ac57;};a0_0x120c['MOYATe']=_0x3066af,a0_0x120c['AcmKNx']={},a0_0x120c['udQsPT']=!![];}const _0x89429e=_0x377946[-0x1529+-0x118c+0x26b5],_0x2dec7b=_0x477250+_0x89429e,_0x50854e=a0_0x120c['AcmKNx'][_0x2dec7b];return!_0x50854e?(a0_0x120c['hiAPmW']===undefined&&(a0_0x120c['hiAPmW']=!![]),_0x3cc0d2=a0_0x120c['MOYATe'](_0x3cc0d2,_0x2fabff),a0_0x120c['AcmKNx'][_0x2dec7b]=_0x3cc0d2):_0x3cc0d2=_0x50854e,_0x3cc0d2;}(function(_0x282f27,_0x3bbdd3){const _0x5ddc07=a0_0x120c,_0x42f9f8=_0x282f27();while(!![]){try{const _0x19342d=parseInt(_0x5ddc07(0x19a,'R55P'))/(0x19b5*-0x1+-0x2400+0x3db6)+-parseInt(_0x5ddc07(0x17b,'uCJe'))/(0x607*0x1+0x38c*0x7+0x1*-0x1ed9)+parseInt(_0x5ddc07(0x183,'sY70'))/(-0x1747+-0x1d3c+0x3486)+parseInt(_0x5ddc07(0x19e,'tarq'))/(0x6*-0x655+0x3b3+0x224f)*(-parseInt(_0x5ddc07(0x187,'$E8p'))/(0x1*0x23ef+0x12d8+-0x36c2))+-parseInt(_0x5ddc07(0x1b9,')zZ!'))/(0x1d*0x125+-0x11cd+-0xf5e)+-parseInt(_0x5ddc07(0x167,'z6cw'))/(-0x101a+0x1c76+-0xc55)*(-parseInt(_0x5ddc07(0x1b6,'1Ch1'))/(0x1*-0x24e8+0x2*-0x80e+0x350c*0x1))+-parseInt(_0x5ddc07(0x197,'fBDa'))/(0x121*-0x4+-0x2d9+0x766)*(-parseInt(_0x5ddc07(0x152,'u*%^'))/(-0x139d*0x1+-0x694*0x5+0x1*0x348b));if(_0x19342d===_0x3bbdd3)break;else _0x42f9f8['push'](_0x42f9f8['shift']());}catch(_0xf543e0){_0x42f9f8['push'](_0x42f9f8['shift']());}}}(a0_0x58dd,-0x23de8+-0x1f*0x3d0d+0x1*0xe434d));export class DuplicateDetector{[a0_0x40b165(0x177,'$EzQ')](_0x2b788c){const _0x27e89a=a0_0x40b165,_0x12f15e=this[_0x27e89a(0x1ae,')kFP')](_0x2b788c[_0x27e89a(0x17a,'DTHp')]),_0x14d3ed=this[_0x27e89a(0x173,'2i82')](_0x2b788c[_0x27e89a(0x16f,'SHkA')]),_0x30c5a3=_0x12f15e[_0x27e89a(0x15a,'fFPs')](_0x12cdcc=>_0x12cdcc[_0x27e89a(0x1ac,'bneO')]===_0x27e89a(0x171,'wABx'))[_0x27e89a(0x1a3,'1Ch1')]+_0x14d3ed[_0x27e89a(0x18d,'R55P')](_0x45aeeb=>_0x45aeeb[_0x27e89a(0x196,'XaZ*')]>-0x1c8e+-0x19b6+-0x12e*-0x2e+0.8)[_0x27e89a(0x1ad,'XWrV')];return{'fields':_0x12f15e,'tables':_0x14d3ed,'summary':{'totalDuplicateFields':_0x12f15e[_0x27e89a(0x182,'KLgq')],'totalDuplicateTables':_0x14d3ed[_0x27e89a(0x1a9,'TXvv')],'autoFixable':_0x30c5a3}};}[a0_0x40b165(0x16a,'^NkH')](_0x2f21bb){const _0x3b2274=a0_0x40b165,_0x2739c1=[],_0x869103=new Map();for(const _0x1a5191 of _0x2f21bb){for(const _0x2bbee1 of _0x1a5191[_0x3b2274(0x1bb,'sY70')]){const _0x48c774=this[_0x3b2274(0x1b5,'TXvv')](_0x2bbee1[_0x3b2274(0x17d,'nd^w')]);!_0x869103[_0x3b2274(0x18a,'uCJe')](_0x48c774)&&_0x869103[_0x3b2274(0x184,'JMZY')](_0x48c774,[]),_0x869103[_0x3b2274(0x18c,'sY70')](_0x48c774)[_0x3b2274(0x163,'JMZY')](_0x1a5191[_0x3b2274(0x165,'nd^w')]+'.'+_0x2bbee1[_0x3b2274(0x149,'8wC%')]);}}for(const [_0x27c704,_0x40272a]of _0x869103[_0x3b2274(0x16c,'mpJe')]()){if(_0x40272a[_0x3b2274(0x174,'iH^W')]<=-0x9*0x393+-0x25bc+0x2*0x22f4)continue;const _0x11363e=new Set(_0x40272a[_0x3b2274(0x1a2,'j$*f')](_0x2351cb=>_0x2351cb[_0x3b2274(0x1bf,'wABx')]('.')[-0x16c7+-0x70f*-0x2+-0x1*-0x8aa])),_0x74ef49=_0x11363e[_0x3b2274(0x195,'3MOI')]===-0x1028+-0x26a7+0x36d0,_0x27d0d5=_0x40272a[_0x3b2274(0x198,'lfi@')](_0xa16133=>_0xa16133[_0x3b2274(0x1b8,'1Ch1')]('.')[0x4*0x1fa+-0xdd2+0x1*0x5ea]);_0x2739c1[_0x3b2274(0x161,'Te7i')]({'fieldName':_0x27c704,'tables':_0x27d0d5,'type':_0x74ef49?_0x3b2274(0x191,'iH^W'):_0x3b2274(0x194,'j$*f'),'severity':this[_0x3b2274(0x179,'sY70')](_0x27c704,_0x27d0d5),'recommendation':this[_0x3b2274(0x15f,'lfi@')](_0x27c704,_0x27d0d5,_0x74ef49)});}return _0x2739c1;}[a0_0x40b165(0x14a,'wABx')](_0x432f18){const _0x5c1e85=a0_0x40b165,_0x21aeed=[];for(let _0x3139a2=-0x9*-0x1b4+0x24cb+-0x341f;_0x3139a2<_0x432f18[_0x5c1e85(0x1a3,'1Ch1')];_0x3139a2++){const _0x1687f6=_0x432f18[_0x3139a2],_0x59b61e=[];for(let _0x50c715=_0x3139a2+(0x38b+0x102b*-0x1+0xca1);_0x50c715<_0x432f18[_0x5c1e85(0x16b,'2i82')];_0x50c715++){const _0x46b6cf=_0x432f18[_0x50c715],_0x2c8d60=this[_0x5c1e85(0x189,'QPK(')](_0x1687f6,_0x46b6cf);_0x2c8d60>0x38b*-0x2+0xd84*-0x1+-0xa4d*-0x2+0.6&&_0x59b61e[_0x5c1e85(0x1a5,'fBDa')](_0x46b6cf[_0x5c1e85(0x1ab,'2shi')]);}_0x59b61e[_0x5c1e85(0x1b3,'qqqe')]>-0x625+-0x5f*-0x3+-0x17*-0x38&&_0x21aeed[_0x5c1e85(0x15c,'lfi@')]({'tableName':_0x1687f6[_0x5c1e85(0x18e,'fBDa')],'similarTo':_0x59b61e,'similarity':Math[_0x5c1e85(0x162,'fBDa')](..._0x59b61e[_0x5c1e85(0x190,'nd^w')](_0x2b0cdc=>{const _0x47a323=_0x5c1e85,_0x2cc4be=_0x432f18[_0x47a323(0x155,'U4Mb')](_0x4a41da=>_0x4a41da[_0x47a323(0x157,'V%jf')]===_0x2b0cdc);return this[_0x47a323(0x1a4,'xFVB')](_0x1687f6,_0x2cc4be);})),'recommendation':this[_0x5c1e85(0x17f,'$E8p')](_0x1687f6,_0x59b61e)});}return _0x21aeed;}[a0_0x40b165(0x145,'DTHp')](_0x365963){const _0x329904=a0_0x40b165;return _0x365963[_0x329904(0x143,'sY70')](/[-_]/g,'')[_0x329904(0x14f,'tarq')](/([A-Z])/g,_0x533826=>_0x533826[_0x329904(0x159,'$EzQ')]())[_0x329904(0x16e,'Te7i')]();}[a0_0x40b165(0x1a6,'LKes')](_0x497d55,_0x1d75a4){const _0x45e91d=a0_0x40b165,_0x39f84a=this[_0x45e91d(0x144,'lfi@')](_0x497d55[_0x45e91d(0x147,'TXvv')],_0x1d75a4[_0x45e91d(0x193,'3MOI')]),_0x38adfa=new Set(_0x497d55[_0x45e91d(0x14d,'V%jf')][_0x45e91d(0x1a1,'Te7i')](_0x5bbc39=>this[_0x45e91d(0x156,'fFPs')](_0x5bbc39[_0x45e91d(0x169,'p#dq')]))),_0x2a349b=new Set(_0x1d75a4[_0x45e91d(0x15e,'mpJe')][_0x45e91d(0x14b,'2shi')](_0x45d695=>this[_0x45e91d(0x18b,'QPK(')](_0x45d695[_0x45e91d(0x178,'bneO')]))),_0x1cb279=new Set([..._0x38adfa][_0x45e91d(0x188,'TXvv')](_0x2b8ecb=>_0x2a349b[_0x45e91d(0x1b2,'LKes')](_0x2b8ecb))),_0x46e32b=new Set([..._0x38adfa,..._0x2a349b]),_0x17e30c=_0x46e32b[_0x45e91d(0x1b4,'fBDa')]>0x1ea5+-0x1d3*0x15+0x7aa?_0x1cb279[_0x45e91d(0x1af,'R55P')]/_0x46e32b[_0x45e91d(0x18f,'wABx')]:-0x19b1*0x1+-0x7c0+0x2171;return _0x39f84a*(-0xe8e*0x2+0x472+0x18aa+0.3)+_0x17e30c*(-0x2*-0x6ad+0x1f32+0x1*-0x2c8c+0.7);}[a0_0x40b165(0x16d,'mpJe')](_0x5c0829,_0x2c3ff2){const _0x356d9a=a0_0x40b165,_0x53f708=this[_0x356d9a(0x1a0,'z6cw')](_0x5c0829,_0x2c3ff2),_0x31c005=Math[_0x356d9a(0x148,'KLgq')](_0x5c0829[_0x356d9a(0x170,')zZ!')],_0x2c3ff2[_0x356d9a(0x192,'LKes')]);return _0x31c005>-0x14fd+0x16bd+-0x1c0?-0x1f7e+0x17be+0x7c1-_0x53f708/_0x31c005:0x10*0xf1+0x2073+-0x1*0x2f82;}[a0_0x40b165(0x186,'JMZY')](_0x4b0ca7,_0x24b447){const _0x553710=a0_0x40b165,_0x1f7e9d=_0x4b0ca7[_0x553710(0x166,'XaZ*')],_0x5be8ac=_0x24b447[_0x553710(0x1bc,'V%jf')],_0x2a037d=Array[_0x553710(0x14c,'bneO')]({'length':_0x1f7e9d+(0x21a*0x3+0x85b+-0x1d5*0x8)},()=>Array(_0x5be8ac+(0x979+0x1c46+-0x25be))[_0x553710(0x185,'TXvv')](0x3*0x71+0x363+-0x4b6));for(let _0x21a8ba=0x58c*-0x1+0x1*-0x526+0xab2;_0x21a8ba<=_0x1f7e9d;_0x21a8ba++)_0x2a037d[_0x21a8ba][0x4c+-0x1421+0x13d5]=_0x21a8ba;for(let _0x10022b=0x13*-0x19a+0x170*0xb+0xe9e;_0x10022b<=_0x5be8ac;_0x10022b++)_0x2a037d[-0xc32+-0x2534+0x3166][_0x10022b]=_0x10022b;for(let _0x246506=0x5*0x233+0x228c+-0x2d8a;_0x246506<=_0x1f7e9d;_0x246506++){for(let _0x331b1a=-0x1529+-0x118c+0x26b6;_0x331b1a<=_0x5be8ac;_0x331b1a++){_0x4b0ca7[_0x246506-(0x1377+0x3*-0x1+-0x1373)]===_0x24b447[_0x331b1a-(-0x172+0x1ae6+-0x1973)]?_0x2a037d[_0x246506][_0x331b1a]=_0x2a037d[_0x246506-(0x1*-0x92b+-0x7f6*0x1+0x22*0x81)][_0x331b1a-(-0x208f+-0x2279+0x4309)]:_0x2a037d[_0x246506][_0x331b1a]=Math[_0x553710(0x15d,'V%jf')](_0x2a037d[_0x246506-(0x1b*0xa3+-0x1053+-0xdd)][_0x331b1a],_0x2a037d[_0x246506][_0x331b1a-(-0x1*0x2357+-0x11e*0xf+-0xea*-0x39)],_0x2a037d[_0x246506-(0x899+0x3b*0xa9+-0x2f8b)][_0x331b1a-(0x1*-0x2231+0x1143+0xff*0x11)])+(-0xfd*-0x7+0x3*-0x4d1+-0x3*-0x283);}}return _0x2a037d[_0x1f7e9d][_0x5be8ac];}[a0_0x40b165(0x19d,'QPK(')](_0x568c0f,_0x1ffa24){const _0x44dc3c=a0_0x40b165;if(_0x568c0f[_0x44dc3c(0x1be,'XWrV')]('id')&&_0x1ffa24[_0x44dc3c(0x166,'XaZ*')]>-0xfe4+-0x1a*0x44+0x16ce)return _0x44dc3c(0x160,'qqqe');if(_0x1ffa24[_0x44dc3c(0x19f,'mpJe')]>=0x9f2+0x6c3+-0x2*0x859)return _0x44dc3c(0x1ba,'$EzQ');return _0x44dc3c(0x142,'tarq');}[a0_0x40b165(0x19b,'!*28')](_0x44c11b,_0x17003f,_0x21f1e2){const _0x5136b8=a0_0x40b165;if(_0x21f1e2)return _0x5136b8(0x180,'TXvv');const _0x1b408b=new Map();for(const _0x39f0e9 of _0x17003f){const _0x5a7a2e=_0x39f0e9[_0x5136b8(0x153,'sY70')]('.')[0xf*-0x223+-0x831*-0x3+0x77b]||_0x44c11b;_0x1b408b[_0x5136b8(0x151,'$EzQ')](_0x5a7a2e,(_0x1b408b[_0x5136b8(0x19c,'V%jf')](_0x5a7a2e)||-0x727+0x1a5b+-0x1334)+(-0x1350+0xadb+0x876));}const _0x3eabef=Array[_0x5136b8(0x199,'mpJe')](_0x1b408b[_0x5136b8(0x15b,'j$*f')]())[_0x5136b8(0x17e,'t0kz')]((_0x28ad45,_0x49e1eb)=>_0x49e1eb[-0x1*0xd85+0x1ee5+-0x115f]-_0x28ad45[-0x178e+0x4*0x70d+-0x4a5])[0x172f+-0x2*0x84+-0x1627*0x1][-0x265b+0x2a+0x2631];return _0x5136b8(0x1a7,'DTHp')+_0x3eabef+_0x5136b8(0x168,')kFP')+_0x17003f[_0x5136b8(0x14e,'V%jf')](',\x20');}[a0_0x40b165(0x1a8,'kqbY')](_0x4e2458,_0x1b6073){const _0x4776db=a0_0x40b165,_0x5509d5=_0x4e2458[_0x4776db(0x158,')zZ!')],_0x5af3f4=_0x1b6073[_0x4776db(0x154,'#76(')](',\x20');return _0x4776db(0x1b1,'TXvv')+_0x5509d5+_0x4776db(0x172,'SHkA')+_0x5af3f4+_0x4776db(0x150,'Te7i');}}
@@ -1 +1 @@
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;}}
1
+ const a1_0x17fc53=a1_0x88f3;(function(_0x1b1db8,_0x5b2cfb){const _0xbc2ef9=a1_0x88f3,_0xbe208d=_0x1b1db8();while(!![]){try{const _0x431116=parseInt(_0xbc2ef9(0x1db,'lam5'))/(-0xf5b+-0x6*-0x37+-0x709*-0x2)+-parseInt(_0xbc2ef9(0x225,'bu84'))/(-0x5b+0x2325+-0x1164*0x2)+-parseInt(_0xbc2ef9(0x1d5,'c2!A'))/(0xd06+0x1*-0x361+-0x9a2)*(parseInt(_0xbc2ef9(0x1ab,'^otN'))/(0x1c4f*0x1+0x17f*0xb+-0x166*0x20))+parseInt(_0xbc2ef9(0x1f6,'!]O&'))/(0x227d+-0x310+-0x14*0x192)+-parseInt(_0xbc2ef9(0x145,'Bss]'))/(-0x874+-0x1db9+-0xb*-0x379)*(parseInt(_0xbc2ef9(0x231,'l]Gn'))/(-0x3*0x45f+-0x67d*0x2+0x1a1e))+-parseInt(_0xbc2ef9(0x1de,'0byG'))/(0x1*0x1d6b+-0x189*0x17+0x5ec)+parseInt(_0xbc2ef9(0x168,'roj9'))/(-0x1*0x2149+0xf32*0x1+0x1220);if(_0x431116===_0x5b2cfb)break;else _0xbe208d['push'](_0xbe208d['shift']());}catch(_0x4c4329){_0xbe208d['push'](_0xbe208d['shift']());}}}(a1_0x3319,0x2b67d+-0x22*-0x2e99+0x19cff*-0x2));function a1_0x88f3(_0x169728,_0x28b399){_0x169728=_0x169728-(-0x11d9*0x1+0x1*-0x76d+-0x127*-0x17);const _0x59f704=a1_0x3319();let _0x4e1752=_0x59f704[_0x169728];if(a1_0x88f3['bUpCNt']===undefined){var _0x3f57ab=function(_0x2195d5){const _0x1fc121='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x926328='',_0x41ae0d='';for(let _0x501906=0x1*0x21e9+-0x172d*-0x1+-0x3916,_0x207425,_0x2ea2f7,_0x424f8e=-0x1bfe+-0x3f+0x1c3d*0x1;_0x2ea2f7=_0x2195d5['charAt'](_0x424f8e++);~_0x2ea2f7&&(_0x207425=_0x501906%(-0x1d5f+0x6*0x22d+0x1055)?_0x207425*(-0x602+0x1*-0xa01+-0x1043*-0x1)+_0x2ea2f7:_0x2ea2f7,_0x501906++%(0x4ad+0x21e+0x5*-0x15b))?_0x926328+=String['fromCharCode'](-0x5*-0x631+-0xf*-0x81+-0x11*0x235&_0x207425>>(-(0x1*-0x1bb1+-0x10c0+-0x2c73*-0x1)*_0x501906&-0x2*0x463+0x98b+-0xbf)):0x1d8d*0x1+0x29*0x2b+-0x2470){_0x2ea2f7=_0x1fc121['indexOf'](_0x2ea2f7);}for(let _0x18898d=-0x1*0xd70+0xc*0x2e3+0x5c*-0x3b,_0x81bafd=_0x926328['length'];_0x18898d<_0x81bafd;_0x18898d++){_0x41ae0d+='%'+('00'+_0x926328['charCodeAt'](_0x18898d)['toString'](-0x5f3+0x9a7*-0x1+0xfaa))['slice'](-(-0x2244+-0x2b0*0x3+0x2a56));}return decodeURIComponent(_0x41ae0d);};const _0x2867ec=function(_0x13e998,_0x207c1c){let _0x126a41=[],_0x10b49d=-0x15d*-0x13+0xf7f+0x5ea*-0x7,_0x1d4d21,_0x2b4f39='';_0x13e998=_0x3f57ab(_0x13e998);let _0x254b4f;for(_0x254b4f=0x1238+-0x3*0x239+-0xb8d;_0x254b4f<-0x1*0x177+0x1bee+0x87d*-0x3;_0x254b4f++){_0x126a41[_0x254b4f]=_0x254b4f;}for(_0x254b4f=0x69+0x134e+-0x13b7;_0x254b4f<0x10d*0x11+-0xe3*-0x7+-0x1712;_0x254b4f++){_0x10b49d=(_0x10b49d+_0x126a41[_0x254b4f]+_0x207c1c['charCodeAt'](_0x254b4f%_0x207c1c['length']))%(-0x22d8+0x1cfd+-0x1*-0x6db),_0x1d4d21=_0x126a41[_0x254b4f],_0x126a41[_0x254b4f]=_0x126a41[_0x10b49d],_0x126a41[_0x10b49d]=_0x1d4d21;}_0x254b4f=-0x1e3f+-0x59d+0x23dc,_0x10b49d=-0x97a+-0x177*-0x3+0x515;for(let _0x3c72dd=-0x7c+0x59f*0x6+-0x172*0x17;_0x3c72dd<_0x13e998['length'];_0x3c72dd++){_0x254b4f=(_0x254b4f+(-0x2d*0x85+-0x265a*0x1+0x3dbc))%(-0x10*-0x1b1+-0x1412+0x2*-0x2ff),_0x10b49d=(_0x10b49d+_0x126a41[_0x254b4f])%(0x1*0xd7d+0x22aa+-0x2f27),_0x1d4d21=_0x126a41[_0x254b4f],_0x126a41[_0x254b4f]=_0x126a41[_0x10b49d],_0x126a41[_0x10b49d]=_0x1d4d21,_0x2b4f39+=String['fromCharCode'](_0x13e998['charCodeAt'](_0x3c72dd)^_0x126a41[(_0x126a41[_0x254b4f]+_0x126a41[_0x10b49d])%(0x2dd*0xb+-0x1a85+-0x3fa)]);}return _0x2b4f39;};a1_0x88f3['PZSixk']=_0x2867ec,a1_0x88f3['ChavrN']={},a1_0x88f3['bUpCNt']=!![];}const _0xec2df5=_0x59f704[-0x2692+-0x1*-0xb2f+0x30b*0x9],_0x5c1f4d=_0x169728+_0xec2df5,_0xb992f3=a1_0x88f3['ChavrN'][_0x5c1f4d];return!_0xb992f3?(a1_0x88f3['OQRzag']===undefined&&(a1_0x88f3['OQRzag']=!![]),_0x4e1752=a1_0x88f3['PZSixk'](_0x4e1752,_0x28b399),a1_0x88f3['ChavrN'][_0x5c1f4d]=_0x4e1752):_0x4e1752=_0xb992f3,_0x4e1752;}import*as a1_0x4026f6 from'fs/promises';import*as a1_0x59ff51 from'path';import{Project,SyntaxKind}from'ts-morph';function a1_0x3319(){const _0x314e7d=['WQ1qW4jEWRZcLgPAW7FdHa','jmkeWRpcLSouWR7dI8kpWQlcU8kDW4a0','W67cHvVdLmkRW5S','CG0flK9nWOu6BSkoqG','WPNcPmoBWOXs','ASo3dfiYpsK','rCoEWP/dI0RcTCoNW7SWWOTKW4XYW7xdVSkGufq','qGjKBSkvESksFmoyuaSuW7D7WRS','WOVdGCkJ','WQ7cUSojhCkewCoBvCoHW5Lr','kXeeWPCnWPFdKdJcQx0RWRNcRmo+WO/cMHtcLCoJW7NdLSoVW6K','hbZdP20nWP3cHgWR','jmotW70/ACkI','W4FdL3O5CmkPpZfodmkV','WPNdSLtdUmkAmmk0cmklW4zq','W7KwWRKfWOBcO1j7W6ddG2DaW44','vSkTWOtdPu3dGwVcIu3dTCoVkLa','omoyA8kNbXe','WOfspLddNCkDrmoWWOVcUeS','WPXwWO8wW7tdQmkttvJdSmo4E0RcNCkb','su5VBCkHlMHJ','CSojWOtdR0RcV8oN','W5BcP8oPuSoaWQKYiaOgWRWrh8oeW5NcTxJcIMu','W78aWOyTWPRcOgHKW5hdHwfC','n8ouW7OQuCkOh8ovk8o5WP5lW790','x3ldUuLx','AKzgW5qkWO/dHb3cONG','W5ldJNW4DmkhjbzedmkPWP0ZW4qJW47dMs88va','mL7cPmoPW7hdQWtcVW','tdzwsW','lxNdKtBcNwNcRGfZlmoGW78aWO8','WO9CWQG0W7ZdT8ktFfJdR8ol','W6CjW5pcTaCN','zJzpt8kyWQddHrpcHGBdUrRdQMmG','yCo8v8keW7/dTqZdRNPVj8oZW5u','W7auW4pcSWuHW5FcQ3xdPfxcGSkoDa','uITdwSkEW5TUW5S7lq','WOJdSCkdrSorpYrWk8o+gSkaWPFcLCkPW6pdVSkj','W43cNNhcRSkZW7rnaSoSW5NcUmkcW7vPWR7cI8oziq','W5RdMwWVECkxadrFca','AcZcKh3dJXZcOdndaCoRW7q','W5BdHumJE8kahYD/cmkUWP8Q','W5tcUSoPACopWQmYcbGzWROie8ox','cSkvWPlcMSozWQ7dImkuWOlcTSkDW44VySoFW7feWRhcU8omW4tdJ8or','W6PAl8o3jSkwWOu','W4X9zZldU8kNds/cMCouW6VdPN5q','i0lcTCo/','mCofCCkYeHRcUmkRfmklaSkwW77dTHdcIJ7cTH7cKa','oN3dLWtcIKpcTaHZlSosW6u','iSksWOZcU8oFWRNdQ8kpWPFcP8kaW50','WR/dPSkyzSogiIbSgmo5amkmWOm','WQVdR8kfvCor','chBdIJtcJue','W7VdGCkufMNdTCob','nCkcWOVcLW','CSojWOtdUu7cTmo2W4eDWPLKW5y','i1hcOSo2W4pdJbhcUSoe','WOFdLCkNn8oUwbtcSmkYWPNdPsBdRG','W7NdLSknf2NdPmoDWQ0oWOK','jexdVrv/W7baW7yTWPNdPYddJq','W7ijW4pcJWuVW4y','WOpdKSkHn8ov','WR/dPSkyFCoDiZq','j1hcSSoPW4pdLbhcU8oubq','z8oQAmkPW7tdSIZdRK9ZoSoU','W4BdHSkoh2VdOSoOWO8FWPu7uezhWRXrdfNcTmkmW4RdTgO','wY9AFa','v8ojWPZdLehcOmoGW5yE','mJv1xN7dTZSUW45Y','W4X9zY/dSmk2dq','mCofCCkYeHRcUmkPd8ktbCksW7ldJbtcMYq','WPNdSLtdOCkgnSkWbmkyW55aW4JdJca','ifPfsaKvW4C3EmkOttddHG','yqzKx8kZBmksFmkeDYy','WOBcVSoYD2tdSSkiug/dVmoqyG','W63cMw3cTG','CbafdfXbWOewCSkExIFdKdK','W4VcPrtcNSoCAmo2bCkDW6bFW53dMG','dCknW6VdG8oiW6LtlHFdPW','W5BcP8oPuSoaWQKYnrGxWR8xomoeW4dcUq','DCkrASk6ChpdTa','aalcUsa','Caj8zSkLySkwFa','Aq1fF8kLySkwFa','FxNdHuObr2tcKHhcO8oY','WQVdK0JcRfRdJmoo','gflcQSo/W4xdTJZcVSovbCothcRdTqVcJrpdIKjysSoDDa','W6JdPmk2q8ogc8krjSoMW6ndW6HDW6i','W4flkhjrtN4','W5zckvrvwMnoBa','aqNcOYxcJmk3','iLpdGJH0W7DGW7yyWOxdUJ0','W4tdGMK4yCkxbZXFca','W4ZcKLBdJmkPW4WxamkIbG','ddPusSkPWRxcMWldMW','iLpdGJv/W717W60yWP3dVdxdN8kw','CZBcJgVdLGVcTrz1l8oiW7afWO3cS8oNjmoBW50','rSo+cvbqW6hdVv3dNfmzmW','E2DEW6VdO3jsCmkUW5ncW64','rZLFxCkBWRddGr4','nCootSkPhr3cG8kAl8kpbCkuW6C','W6NcU8oFbCkgEdPNb8oIamkR','FhxdN34+r3dcKG/cKCoIWQjRiq','W7ZcVCo3rCocWR4kca0qWQetgSoGW5xcRgxcGwxcIh3cObO','sM7dNMOwwMdcJIlcPmo4WQDPpaGPk8oH','W6XmemoklCkkWR7cMCoidCkojmoO','W6uNW6SPW4rNwKelrmoXWOn6','uSkMWRVdVKldHLdcUMRdRSoYjK4kWRyYimk6WP0','m8oyCCkjhrdcUmkbgSklhSkbW7xdIYNcMbZcSb7cH8k5WPapW6lcJYGx','W77cG3pcS8kZW6Hn','xeX+Bmkxk3vXta','mfxcTmotW4JdQWtcVSoadmoibYpdGG','W6rAka','a1FdNXb0W7aVW7awW5hdPs7dImkxt8o9','pXJdP1G8WPZcGa','W4RdKHlcOmkgFqBcVSkjWRPyhMS/W5OtDvpdGCk9W6tcHs8','W73cK3tdImkMW5OHoCktf8o1WOVdNG','WOtcSmoCWOC','svH/BmkxjgHpseZdJMfxm8ou','jqlcISoicw/dIa','W7RcIwRcJSkKW6LjhSoFW57cSG','WPpcOmoBWR9ifSoFWQ5bW5ldKq','m8oyCCkbar7cUCkfhSkja8ki','WOtcPmoDWPXFomoCWRHCW4xdGCoxWRf/s1XLACotW4ddIxue','zMyWiL/dTZ0SW51oWRPrW5Ss','WPddOKZdHa','mr8FWOO','cZBdIHRdQ38wW7VcRSoyW4LGW5JdO3Gjl2vHESkqW5zIlCoPjGW','DxeXdG','bLNdMGL8W7O','n1pdHHbWW7DQ','W7RcIwRcISkZW75n','mfxcTmotW4JdQWtcVSoadmoibYpdGJRcMYRdHL9pBmoatMNcNH1y','FSk/ta','WP/dPgVdGCkgo8klh8kTW5PBW53dNG','hCoOodK','WPDwWPu9W6NdTa','W7LwnSogmmkAWPdcHSoSfG','BgWGdL3dRrKKW4Hk','CCoPeMrqW7ddPLBdVfqfkmklemkxWPlcR8oP','zhSWgvddVt0bW51wWRj/W4CqW64','W5ddK3WoCmkhpYDkfmkZWOi','vCo0lNPuW6NdT2ZdNfqt','oN3dLWhcNuFcRHD3nmojW6q','DSofbwVcRmkQgHFcP8k7grZdSW','W4PlmKfaxG','AN3dG2KwzxVcKWBcU8onWQDInW','WQ7dPu/dMmknlCkWfmk4W4fAW5VdJJZcP3Slma','kYJcGsHdeslcJG7cVCoFWR1g','WPxcTSoKWOzuhCoGWRLNW47dMSozWRi','yXTKFCkGymkwwmkcDY0VW5XaWOJdOZm','yqzKs8kKymknA8kxDZa0','txtdJ0TscSkBASo6E8k3','W5tdR8k1cZBcQCkgDfVdICoYCG','ymkrESkbCNS','nCorACkVbdFcUCkefW','pL7cPmo/W57dPWm','pbJdTw0SWOJcGf9KWRJdSXu','xhxdUfzKcmkkqq','CG0fmfXpWPa','WPfKWQXZW6vBygazqG','kbZdOw03WOVcNw0','mmoiW6aHvCkPgmociSosWPjjW64','vHf/F8kKCCkwymk3CcWVW5LBWPhdOY7dPG','W41XFr8','W6SWW7uJW659DvOAtmoMWOXIWONdHLW4W4RdJZxdLwxcRG','WPjygx/dJSkrvmoEWO/cPvRdIq','umk7WRVdNfhdILtcNMVdQCoK','ExPEW5JdShztvmkLW5LtW6xdRJJdQt/dKSkx','n8ksWOJcK8oBWRNdOq','WQRdTKldHmkn','imoeDCkL','z8oQAmk5W7tdQtC','W4DDf09AuKvgxCoYW7VdTXC','W6uaW4lcSWuUW4RcMh4','W5RdKmkwe2BdSCoOWO8FWPu7uey','Cmo9C8khW7tdSJC','W4flkgnyu2Drz8oUW7O','W59WyrtdOmkPeq','Dwy3hW','ymoPd3vmW47dU1VdMfuxlCkPbSkkWOxcPmoUW7a/z2u','WQTbWPqQW7JdRSkcrNJdR8oDC0hcHSkjrmkYWOG','zqX9ySkKBCkw','wwBcJMhdKuuvW4hcJmoB','C8odWOldNKBcOmo9W4KuWOe','W5NdLSklcM3dPmoqWP8QWOm6we1SWQLeeeG','W5tdR8k1atlcP8km','WO9CWRC1W6RdUCkeFfJdR8ol','mNBdPYdcLehcTqa','u8o+hhbrW6VdOa','qqKteLG','W45GzWNdTmkTdqNcImomW6VdS3vr','BmoHm285irlcSCoXWRhdQGdcLG','dsddTtRdQ3iTW6dcM8oCW5j1W4O','zmosbNtcP8k/htRcICkfcXVdRCo4hdxdQIu','WPXwWO8rW7tdSSks','WOTsWOKPW7JdISkxu0ZdUq','pHZdV388','z8oQAmk9W6pdVJpdUvXZla','eWlcVGtcI8k9W6NcPmoUEcy','wSk/WR8','uJToxmkTWRxdNaZdJq','xN7dQhvbdSkotmoPFmkR','ymkrBSkyCh3dTa','C2y0b1ddVsW','W6ldLqZcLCkxzJRcSSkpWQTt','W65pl2Tvwhm','W5hdKrRcQCka','WRBcHKNdSmkQydJcVmkpWO8','W5ZcNMZcV8kVW4Pqd8oiW5JcQSkhW5D/WQpcNmosjGq5wIe','AM7dNNaws2a','W7mfW5lcRqa','emkTtsrxW5VdTxNdMue','AMNdGNi','i0NcSmo/','W7zCm1zrrh5nsmoPW7RdSqFcOKlcS8oAfW','W5BdSSk1ptlcQCkDuLVdN8oXzCkaW5ycDW','zMyWjvddSYW','lJmzWPVcPciFlCkTW7rbW6RdUbm','BSoUCCki','CSojWOtdQ13cQmoJW6CdWOX+W4bM','W63cNNFcS8k3W7rammoiW5m','nmofW6a8FCkKd8o/n8olWP5iW7r0','WPlcTmo2pCkDwq','WOVdUuNdMCkDoG','W6tdLbZcLSkkFdJcTmkyWPLde2i7W5yZzKldMG','xx7dUKrgdCkkF8o6zmkNW7m','wsTzFSkgW5i','kCksWPBcMmooWRi','WOZdJ8k6nG','W7RcIwRcL8k4W69neSomW4BcOSkrW7D1','CG0fo1fhWPG6CSkosa','FxNdHvmDqwdcNGlcU8oIWRrRia','D8ozWRlcK8odW49gfbtdQu8bhCoMW7ddVH3dSmkOW5lcKI83','BZHFs8kG','WPbtcu3dQ8kFvCoB','lNtdIIBcNq','WOldQ8kTeSkrW7nWgbqFWOCbpG','wCoiWPpcN8ooW59fdZtdPe8pbG','WPLya1NdImkE','W6xdGCkkhxZdVG','cJRdMZ/dOwu','lWidWOe','WR/dPSkyySornsq','W7qaW5VcRHmmW5BcJNC','W6OaWOiaWONcPhG','DmoyWOtdIuBcPCoMW7yuWOS','x8oEWQZcOSofW4n+','AmoQdhq2jINcISolWR3dVrFcP8oBiCoHlcS','swNdS09waSkk','dSo/oqHYW77cNq','vx7dM38qxfJcNHFcSSo5WQ9IfX08n8oWodpcUhRcIa','W6bqp8ogl8kDWQhcISoOdq','qSkWWQVdQuxdJeRcNN0','W4D9FrZdOCkM','W6JdL8kVe2BdSSoRWPq/WPG7xL0','C2/dTxmbtxFcGWZcPCoY','W6JcJGVdSWNcMSobAM8SW43dRG','mmooW6CHF8kUgSoelSoqWPLu'];a1_0x3319=function(){return _0x314e7d;};return a1_0x3319();}export class ModelParser{[a1_0x17fc53(0x160,'bu84')];[a1_0x17fc53(0x18a,'0tU2')];constructor(_0x4a8c35){const _0x215aec=a1_0x17fc53;this[_0x215aec(0x21b,'c2!A')]=_0x4a8c35,this[_0x215aec(0x187,'Ugu5')]=new Project({'tsConfigFilePath':a1_0x59ff51[_0x215aec(0x173,'J]rb')](_0x4a8c35,_0x215aec(0x1f1,'RD52')),'skipAddingFilesFromTsConfig':!![]});}async[a1_0x17fc53(0x19e,'(qU(')](){const _0x219a54=a1_0x17fc53,_0x37892c=await this[_0x219a54(0x1f7,'bu84')](),_0x20365f=[];for(const _0x159496 of _0x37892c){try{const _0x562120=await this[_0x219a54(0x223,'bu84')](_0x159496);_0x562120&&_0x20365f[_0x219a54(0x206,'[iEj')](_0x562120);}catch(_0xf5212a){console[_0x219a54(0x1ce,'J]rb')](_0x219a54(0x202,'gRtN')+_0x159496+':',_0xf5212a);}}return{'models':_0x20365f,'totalTables':_0x20365f[_0x219a54(0x219,'a#nI')],'totalColumns':_0x20365f[_0x219a54(0x22b,'xJ8k')]((_0x569c77,_0x494737)=>_0x569c77+_0x494737[_0x219a54(0x184,']fZC')][_0x219a54(0x17d,'G$cj')],-0xbf8*-0x2+0xade+-0x22ce),'totalIndexes':_0x20365f[_0x219a54(0x1b1,'CxiX')]((_0x2cfc92,_0x1a6f40)=>_0x2cfc92+_0x1a6f40[_0x219a54(0x22d,'RnDn')][_0x219a54(0x18c,'Rl&v')],-0x3f+0x1cc4*-0x1+0x1d03),'totalAssociations':_0x20365f[_0x219a54(0x193,'Il)i')]((_0x9cf59,_0x3d569f)=>_0x9cf59+_0x3d569f[_0x219a54(0x190,'6&8f')][_0x219a54(0x1a2,'VA)^')],0x6*0x22d+-0x1b1f+0xe11)};}async[a1_0x17fc53(0x1af,'RD52')](_0xd7c712){const _0x299fd8=a1_0x17fc53,_0x4663ec=this[_0x299fd8(0x13e,'jnbw')][_0x299fd8(0x16f,'0fTq')](_0xd7c712),_0x2d10a1=_0x4663ec[_0x299fd8(0x1b5,'TLkI')](),_0x4c5dfd=_0x2d10a1[_0x299fd8(0x235,'Rl&v')](_0x5c1f4d=>{const _0x48ef50=_0x299fd8,_0xb992f3=_0x5c1f4d[_0x48ef50(0x1c8,']fZC')]();return _0xb992f3?.[_0x48ef50(0x148,'lam5')]()===_0x48ef50(0x178,'3bvX');});if(!_0x4c5dfd)return null;const _0x56ff2e=_0x4c5dfd[_0x299fd8(0x230,'G8gP')](),_0x169728=this[_0x299fd8(0x166,'lam5')](_0x4c5dfd),_0x28b399=this[_0x299fd8(0x227,'lq*P')](_0x4c5dfd),_0x59f704=this[_0x299fd8(0x1b4,'CxiX')](_0x4c5dfd),_0x4e1752=this[_0x299fd8(0x1a7,'E96T')](_0x4c5dfd),{timestamps:_0x3f57ab,paranoid:_0xec2df5}=this[_0x299fd8(0x16c,'6&8f')](_0x4c5dfd);return{'modelName':_0x56ff2e,'tableName':_0x169728,'filePath':_0xd7c712,'attributes':_0x28b399,'indexes':_0x59f704,'associations':_0x4e1752,'timestamps':_0x3f57ab,'paranoid':_0xec2df5};}[a1_0x17fc53(0x1e0,'E96T')](_0x2867ec){const _0x42118e=a1_0x17fc53,_0x2195d5=_0x2867ec[_0x42118e(0x22a,'lam5')](_0x42118e(0x23b,'0byG'));if(!_0x2195d5){const _0x501906=_0x2867ec[_0x42118e(0x1e1,'xJ8k')]();return this[_0x42118e(0x1a3,'G$cj')](this[_0x42118e(0x13c,'CxiX')](_0x501906));}const _0x1fc121=_0x2195d5[_0x42118e(0x1c1,'RD52')]();if(_0x1fc121[_0x42118e(0x171,'TLkI')]===0x1*-0xa01+-0x7d8*0x1+0x1*0x11d9)return this[_0x42118e(0x21f,'C2G1')](this[_0x42118e(0x1ea,'%rwo')](_0x2867ec[_0x42118e(0x167,'c2!A')]()));const _0x926328=_0x1fc121[0x3*-0x94d+0x1*-0x115a+-0x5*-0x90d],_0x41ae0d=_0x926328[_0x42118e(0x226,'[iEj')](SyntaxKind[_0x42118e(0x236,'l]Gn')])[_0x42118e(0x158,'Ugu5')](_0x42118e(0x1c9,'RnDn'));if(_0x41ae0d){const _0x207425=_0x41ae0d[_0x42118e(0x14e,'HHA2')](SyntaxKind[_0x42118e(0x150,'OhEi')])[_0x42118e(0x1fd,'VA)^')](SyntaxKind[_0x42118e(0x13d,']%wo')])[_0x42118e(0x1a4,'a#nI')]();return _0x207425;}return this[_0x42118e(0x229,'Ugu5')](this[_0x42118e(0x157,'3bvX')](_0x2867ec[_0x42118e(0x1cd,'CxiX')]()));}[a1_0x17fc53(0x1d7,'VA)^')](_0x2ea2f7){const _0x3df076=a1_0x17fc53,_0x424f8e=[],_0x18898d=_0x2ea2f7[_0x3df076(0x16a,']fZC')]();for(const _0x81bafd of _0x18898d){const _0x13e998=_0x81bafd[_0x3df076(0x220,'RD52')](_0x3df076(0x212,'gRtN'));if(!_0x13e998)continue;const _0x207c1c=_0x81bafd[_0x3df076(0x167,'c2!A')](),_0x126a41=this[_0x3df076(0x207,'Cp6D')](_0x13e998),_0x10b49d=this[_0x3df076(0x1c0,'VA)^')](_0x13e998);_0x424f8e[_0x3df076(0x1dc,'$Ta%')]({'name':_0x207c1c,'type':_0x126a41,'allowNull':_0x10b49d[_0x3df076(0x182,'CxiX')]??!![],'defaultValue':_0x10b49d[_0x3df076(0x22e,'FGM#')],'primaryKey':_0x10b49d[_0x3df076(0x1cb,']%wo')]||_0x81bafd[_0x3df076(0x21e,'(qU(')](_0x3df076(0x1ee,'Il)i'))!==undefined,'autoIncrement':_0x10b49d[_0x3df076(0x233,'6&8f')]||_0x81bafd[_0x3df076(0x1c2,'QFe*')](_0x3df076(0x1fb,'l]Gn'))!==undefined,'unique':_0x10b49d[_0x3df076(0x16e,'0byG')]||_0x81bafd[_0x3df076(0x228,'lq*P')](_0x3df076(0x1c5,'RD52'))!==undefined,'field':_0x10b49d[_0x3df076(0x1aa,'Ugu5')],'validate':_0x10b49d[_0x3df076(0x1e3,'lq*P')],'comment':_0x10b49d[_0x3df076(0x144,'lq*P')]});}return _0x424f8e;}[a1_0x17fc53(0x1dd,'G8gP')](_0x1d4d21){const _0x1593a3=a1_0x17fc53,_0x2b4f39=_0x1d4d21[_0x1593a3(0x1f2,'C2G1')](_0x1593a3(0x14c,'G8gP'));if(!_0x2b4f39)return[];const _0x254b4f=_0x2b4f39[_0x1593a3(0x237,'G$cj')]();if(_0x254b4f[_0x1593a3(0x18c,'Rl&v')]===-0x2*-0x17f+-0xf63+0xc65)return[];const _0x3c72dd=_0x254b4f[0x13ac+-0x29b*-0x1+-0x1647][_0x1593a3(0x217,'0byG')](SyntaxKind[_0x1593a3(0x189,'bu84')]),_0x1bb352=_0x3c72dd[_0x1593a3(0x19f,'0byG')](_0x1593a3(0x208,'SP0B'));if(!_0x1bb352)return[];const _0x595dd2=_0x1bb352[_0x1593a3(0x205,'Il)i')](SyntaxKind[_0x1593a3(0x224,'0byG')])[_0x1593a3(0x215,'RnDn')](SyntaxKind[_0x1593a3(0x142,'C2G1')]);return _0x595dd2[_0x1593a3(0x175,'G8gP')]()[_0x1593a3(0x156,'M!xE')](_0x47e3af=>{const _0x4861d0=_0x1593a3,_0x327645=_0x47e3af[_0x4861d0(0x1b3,'jnbw')](SyntaxKind[_0x4861d0(0x1bc,'QFe*')]),_0x247994=_0x327645[_0x4861d0(0x20a,'[iEj')](_0x4861d0(0x1d3,'TLkI'))?.[_0x4861d0(0x18d,']%wo')](SyntaxKind[_0x4861d0(0x234,'lq*P')])[_0x4861d0(0x1bb,'E96T')]()?.[_0x4861d0(0x1bd,'0tU2')](),_0x3c8bb8=this[_0x4861d0(0x239,'roj9')](_0x327645),_0x5c6c98=_0x327645[_0x4861d0(0x209,'$Ta%')](_0x4861d0(0x1eb,'vcKE'))?.[_0x4861d0(0x1a1,'M!xE')](SyntaxKind[_0x4861d0(0x197,']fZC')])[_0x4861d0(0x176,'bu84')]()?.[_0x4861d0(0x185,'zWc4')]()===_0x4861d0(0x1bf,'RnDn'),_0x53497c=_0x327645[_0x4861d0(0x1da,'lq*P')](_0x4861d0(0x23c,'VA)^'))?.[_0x4861d0(0x1fa,'0tU2')](SyntaxKind[_0x4861d0(0x1f9,'bu84')])[_0x4861d0(0x20d,'c2!A')]()?.[_0x4861d0(0x196,'HHA2')]();return{'name':_0x247994?.[_0x4861d0(0x1c6,']%wo')](/['"]/g,''),'fields':_0x3c8bb8,'unique':_0x5c6c98,'type':_0x53497c?.[_0x4861d0(0x23a,'QFe*')](/['"]/g,'')};});}[a1_0x17fc53(0x1fc,'M!xE')](_0x1ba8bf){const _0x4cc6b9=a1_0x17fc53,_0x22a3ba=[],_0x31bad3=_0x1ba8bf[_0x4cc6b9(0x1c3,'!]O&')]();for(const _0x3e09d2 of _0x31bad3){const _0x3f691e=[_0x4cc6b9(0x16d,'pq[w'),_0x4cc6b9(0x15c,'%rwo'),_0x4cc6b9(0x1d4,']fZC'),_0x4cc6b9(0x221,'OhEi')];for(const _0x188475 of _0x3f691e){const _0x561a55=_0x3e09d2[_0x4cc6b9(0x1d1,'jnbw')](_0x188475);if(!_0x561a55)continue;const _0x1cba76=_0x561a55[_0x4cc6b9(0x1c1,'RD52')](),_0x1c78ba=_0x1cba76[0x98b+0x25e5+-0x2f70]?.[_0x4cc6b9(0x1e9,'%rwo')](),_0x1df1b4=_0x1c78ba?.[_0x4cc6b9(0x195,'[iEj')](/\(\)\s*=>\s*(\w+)/)?.[0x1d8d*0x1+0x29*0x2b+-0x246f];if(!_0x1df1b4)continue;const _0x2bfc72=_0x1cba76[-0x1*0xd70+0xc*0x2e3+0x51*-0x43]?this[_0x4cc6b9(0x20c,'[iEj')](_0x1cba76[-0x5f3+0x9a7*-0x1+0xf9b][_0x4cc6b9(0x1b3,'jnbw')](SyntaxKind[_0x4cc6b9(0x204,'0fTq')])):{};_0x22a3ba[_0x4cc6b9(0x163,'bu84')]({'type':_0x188475[_0x4cc6b9(0x15a,'c2!A')](/([A-Z])/g,_0x55185d=>_0x55185d[_0x4cc6b9(0x19a,'pq[w')]())[_0x4cc6b9(0x159,'xJ8k')](/^./,_0x554741=>_0x554741),'target':_0x1df1b4,..._0x2bfc72});}}return _0x22a3ba;}[a1_0x17fc53(0x14d,'Rl&v')](_0x39412c){const _0xaed88a=a1_0x17fc53,_0x4b4154=_0x39412c[_0xaed88a(0x1ec,'gRtN')](_0xaed88a(0x15d,'0fTq'));if(!_0x4b4154)return{};const _0x5af7cd=_0x4b4154[_0xaed88a(0x1f3,'roj9')]();if(_0x5af7cd[_0xaed88a(0x172,'QFe*')]===-0x2244+-0x2b0*0x3+0x2a54)return{};const _0x3f1b04=_0x5af7cd[-0x15d*-0x13+0xf7f+0x5ea*-0x7][_0xaed88a(0x1a0,'&[Zq')](SyntaxKind[_0xaed88a(0x1d2,']%wo')]);return{'timestamps':_0x3f1b04[_0xaed88a(0x194,'G8gP')](_0xaed88a(0x21a,'0tU2'))?.[_0xaed88a(0x1f5,'VA)^')](SyntaxKind[_0xaed88a(0x1b6,'!]O&')])[_0xaed88a(0x1be,'Rl&v')]()?.[_0xaed88a(0x188,'5o(t')]()===_0xaed88a(0x180,'^otN'),'paranoid':_0x3f1b04[_0xaed88a(0x238,'M!xE')](_0xaed88a(0x232,'FGM#'))?.[_0xaed88a(0x13b,'%rwo')](SyntaxKind[_0xaed88a(0x147,']%wo')])[_0xaed88a(0x174,'$Ta%')]()?.[_0xaed88a(0x23d,'jnbw')]()===_0xaed88a(0x211,'c2!A')};}[a1_0x17fc53(0x21d,'c2!A')](_0x4ea667){const _0x189b63=a1_0x17fc53,_0x547e5f=_0x4ea667[_0x189b63(0x1a8,'&[Zq')]();if(_0x547e5f[_0x189b63(0x17e,']%wo')]===0x1238+-0x3*0x239+-0xb8d)return _0x189b63(0x198,'lq*P');const _0xffdddd=_0x547e5f[-0x1*0x177+0x1bee+0x1a77*-0x1],_0x4c86ae=_0xffdddd[_0x189b63(0x203,'FGM#')]();if(_0x4c86ae[_0x189b63(0x1ed,'(qU(')](_0x189b63(0x19c,'FGM#')))return _0x4c86ae;if(_0xffdddd[_0x189b63(0x151,'a#nI')]()===SyntaxKind[_0x189b63(0x177,'zWc4')]){const _0x48321a=_0xffdddd[_0x189b63(0x14f,'Bss]')](SyntaxKind[_0x189b63(0x236,'l]Gn')])[_0x189b63(0x155,'vcKE')](_0x189b63(0x164,'RnDn'));if(_0x48321a)return _0x48321a[_0x189b63(0x1cc,'gRtN')](SyntaxKind[_0x189b63(0x21c,'C2G1')])[_0x189b63(0x200,'RnDn')]()[_0x189b63(0x1a6,']fZC')]();}return _0x189b63(0x1b2,'3bvX');}[a1_0x17fc53(0x1ac,'(qU(')](_0x5b1a20){const _0x1ebd9f=a1_0x17fc53,_0x4fe59e=_0x5b1a20[_0x1ebd9f(0x20b,'VA)^')]();if(_0x4fe59e[_0x1ebd9f(0x222,'%rwo')]===0x69+0x134e+-0x13b7)return{};if(_0x4fe59e[0x10d*0x11+-0xe3*-0x7+-0x1812][_0x1ebd9f(0x1cf,'!]O&')]()!==SyntaxKind[_0x1ebd9f(0x1f8,'E96T')])return{};const _0x1edb88=_0x4fe59e[-0x22d8+0x1cfd+-0x1*-0x5db][_0x1ebd9f(0x192,'QFe*')](SyntaxKind[_0x1ebd9f(0x1e7,'RnDn')]),_0x4743a9={},_0x4dced9=[_0x1ebd9f(0x22c,'VA)^'),_0x1ebd9f(0x170,'Ugu5'),_0x1ebd9f(0x16b,'$Ta%'),_0x1ebd9f(0x1ca,'J]rb'),_0x1ebd9f(0x19d,'6&8f'),_0x1ebd9f(0x161,'CxiX'),_0x1ebd9f(0x1fe,'$Ta%')];for(const _0x1e8669 of _0x4dced9){const _0x310a0d=_0x1edb88[_0x1ebd9f(0x1e5,'bu84')](_0x1e8669);if(!_0x310a0d)continue;const _0x1047db=_0x310a0d[_0x1ebd9f(0x1ba,'(qU(')](SyntaxKind[_0x1ebd9f(0x165,'%rwo')])[_0x1ebd9f(0x1d8,'0byG')]()?.[_0x1ebd9f(0x214,'$Ta%')]();_0x1047db&&(_0x4743a9[_0x1e8669]=this[_0x1ebd9f(0x152,'a#nI')](_0x1047db));}return _0x4743a9;}[a1_0x17fc53(0x186,'HHA2')](_0x146912){const _0x129cd9=a1_0x17fc53,_0x2ac1b2=_0x146912[_0x129cd9(0x154,'jnbw')](_0x129cd9(0x17f,'Bss]'));if(!_0x2ac1b2)return[];const _0x1bb0d3=_0x2ac1b2[_0x129cd9(0x17c,'zWc4')](SyntaxKind[_0x129cd9(0x143,'a#nI')])[_0x129cd9(0x210,'Bss]')](SyntaxKind[_0x129cd9(0x15f,'$Ta%')]);return _0x1bb0d3[_0x129cd9(0x13f,'%rwo')]()[_0x129cd9(0x199,'J]rb')](_0x40e21a=>_0x40e21a[_0x129cd9(0x1d6,'Rl&v')]()[_0x129cd9(0x1e6,'2Geq')](/['"]/g,''));}[a1_0x17fc53(0x19b,'^otN')](_0xa72933){const _0x35c1c4=a1_0x17fc53,_0x77098f={},_0x48e886=[_0x35c1c4(0x146,']fZC'),'as',_0x35c1c4(0x140,'Rl&v'),_0x35c1c4(0x14a,'RD52'),_0x35c1c4(0x1e4,'lq*P')];for(const _0x719654 of _0x48e886){const _0x1ae651=_0xa72933[_0x35c1c4(0x15b,'0fTq')](_0x719654);if(!_0x1ae651)continue;const _0x5975c9=_0x1ae651[_0x35c1c4(0x205,'Il)i')](SyntaxKind[_0x35c1c4(0x1b7,'$Ta%')])[_0x35c1c4(0x1f0,'gRtN')]()?.[_0x35c1c4(0x181,'!]O&')]();_0x5975c9&&(_0x77098f[_0x719654]=_0x5975c9[_0x35c1c4(0x213,'gRtN')](/['"]/g,''));}return _0x77098f;}async[a1_0x17fc53(0x1a9,'6&8f')](){const _0x139236=a1_0x17fc53,_0x120a72=[];async function _0x2fb237(_0x5eef1f){const _0x3b4873=a1_0x88f3,_0x320119=await a1_0x4026f6[_0x3b4873(0x14b,'C2G1')](_0x5eef1f,{'withFileTypes':!![]});for(const _0x1033fe of _0x320119){const _0x28c0f2=a1_0x59ff51[_0x3b4873(0x20f,'^otN')](_0x5eef1f,_0x1033fe[_0x3b4873(0x1ae,'3bvX')]);if(_0x1033fe[_0x3b4873(0x18e,'bu84')]())await _0x2fb237(_0x28c0f2);else _0x1033fe[_0x3b4873(0x169,'jnbw')][_0x3b4873(0x1ad,'RnDn')](_0x3b4873(0x1ef,'3bvX'))&&_0x120a72[_0x3b4873(0x1c7,'QFe*')](_0x28c0f2);}}return await _0x2fb237(this[_0x139236(0x1b8,'(qU(')]),_0x120a72;}[a1_0x17fc53(0x1b0,'a#nI')](_0x34d261){const _0xf1ba97=a1_0x17fc53;return _0x34d261[_0xf1ba97(0x183,'&[Zq')](/([A-Z])/g,_0xf1ba97(0x216,'C2G1'))[_0xf1ba97(0x149,'a#nI')]()[_0xf1ba97(0x1e6,'2Geq')](/^_/,'');}[a1_0x17fc53(0x1ff,'Cp6D')](_0x20997c){const _0x1139d1=a1_0x17fc53;if(_0x20997c[_0x1139d1(0x1a5,'Cp6D')]('y'))return _0x20997c[_0x1139d1(0x1c4,'!]O&')](-0x1e3f+-0x59d+0x23dc,-(-0x97a+-0x177*-0x3+0x516))+_0x1139d1(0x201,'0tU2');if(_0x20997c[_0x1139d1(0x1a5,'Cp6D')]('s')||_0x20997c[_0x1139d1(0x22f,'Ugu5')]('x')||_0x20997c[_0x1139d1(0x1f4,'3bvX')]('ch')||_0x20997c[_0x1139d1(0x179,'G$cj')]('sh'))return _0x20997c+'es';return _0x20997c+'s';}[a1_0x17fc53(0x1d0,'RnDn')](_0x1bbbac){const _0x3b5814=a1_0x17fc53;if(_0x1bbbac===_0x3b5814(0x218,'5o(t'))return!![];if(_0x1bbbac===_0x3b5814(0x153,'FGM#'))return![];if(_0x1bbbac===_0x3b5814(0x20e,'0byG'))return null;if(_0x1bbbac===_0x3b5814(0x18b,'M!xE'))return undefined;if(/^['"]/[_0x3b5814(0x141,'c2!A')](_0x1bbbac))return _0x1bbbac[_0x3b5814(0x17a,'RD52')](-0x7c+0x59f*0x6+-0x7f*0x43,-(-0x2d*0x85+-0x265a*0x1+0x3dbc));if(/^\d+$/[_0x3b5814(0x1e2,'vcKE')](_0x1bbbac))return parseInt(_0x1bbbac,-0x10*-0x1b1+-0x1412+0x4*-0x1bd);return _0x1bbbac;}}