@profoundlogic/coderflow-server 0.2.1

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 (202) hide show
  1. package/LICENSE.txt +322 -0
  2. package/README.md +158 -0
  3. package/dist/LICENSE.txt +322 -0
  4. package/dist/README.md +158 -0
  5. package/dist/base-image/Dockerfile +184 -0
  6. package/dist/base-image/agent-wrapper.sh +143 -0
  7. package/dist/base-image/apply-local-state.sh +357 -0
  8. package/dist/base-image/coder-git-credential-helper +307 -0
  9. package/dist/base-image/entrypoint.sh +942 -0
  10. package/dist/base-image/ssh_config_template +41 -0
  11. package/dist/base-image/start-code-server.sh +76 -0
  12. package/dist/base-image/sync-repos.sh +170 -0
  13. package/dist/base-image/vscode-extensions.txt +10 -0
  14. package/dist/base-image/vscode-settings.json +41 -0
  15. package/dist/coder-server.js +2 -0
  16. package/dist/config/cli-models.json +45 -0
  17. package/dist/config/imported-skills.schema.json +83 -0
  18. package/dist/config/skill-catalog.json +18 -0
  19. package/dist/config/skill-catalog.schema.json +140 -0
  20. package/dist/config.js +1 -0
  21. package/dist/examples/oidc.json.example +11 -0
  22. package/dist/lib/agent-keepalive.js +1 -0
  23. package/dist/lib/api-keys.js +1 -0
  24. package/dist/lib/apiKeys.js +1 -0
  25. package/dist/lib/auto-judge.js +1 -0
  26. package/dist/lib/basic-auth.js +1 -0
  27. package/dist/lib/build-history.js +1 -0
  28. package/dist/lib/build-output-service.js +1 -0
  29. package/dist/lib/build-scheduler.js +1 -0
  30. package/dist/lib/build-service.js +1 -0
  31. package/dist/lib/claude-oauth-refresh.js +1 -0
  32. package/dist/lib/cli/build.js +1 -0
  33. package/dist/lib/cli/config-command.js +1 -0
  34. package/dist/lib/cli/config.js +1 -0
  35. package/dist/lib/cli/create-user.js +1 -0
  36. package/dist/lib/cli/init.js +1 -0
  37. package/dist/lib/cli/jira.js +1 -0
  38. package/dist/lib/cli/license.js +1 -0
  39. package/dist/lib/cli/server-manager.js +1 -0
  40. package/dist/lib/container-tokens.js +1 -0
  41. package/dist/lib/data-dir.js +1 -0
  42. package/dist/lib/deployment-history.js +1 -0
  43. package/dist/lib/deployment-service.js +1 -0
  44. package/dist/lib/docker-utils.js +1 -0
  45. package/dist/lib/email.js +1 -0
  46. package/dist/lib/emailTemplates.js +1 -0
  47. package/dist/lib/entitlement.js +1 -0
  48. package/dist/lib/fetch-utils.js +1 -0
  49. package/dist/lib/git-provider-service.js +1 -0
  50. package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
  51. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
  52. package/dist/lib/git-provider-setup/index.js +1 -0
  53. package/dist/lib/git-provider-setup/setup-factory.js +1 -0
  54. package/dist/lib/git-provider-setup/setup-interface.js +1 -0
  55. package/dist/lib/git-providers/azure-devops-provider.js +1 -0
  56. package/dist/lib/git-providers/github-app-provider.js +1 -0
  57. package/dist/lib/git-providers/index.js +1 -0
  58. package/dist/lib/git-providers/provider-factory.js +1 -0
  59. package/dist/lib/git-providers/provider-interface.js +1 -0
  60. package/dist/lib/jira-client.js +1 -0
  61. package/dist/lib/logger.js +1 -0
  62. package/dist/lib/model-fetcher.js +1 -0
  63. package/dist/lib/notifications.js +1 -0
  64. package/dist/lib/oidc-auth.js +1 -0
  65. package/dist/lib/oidc-device-flow.js +1 -0
  66. package/dist/lib/passwordTokens.js +1 -0
  67. package/dist/lib/pin-cascade.js +1 -0
  68. package/dist/lib/provider-accounts.js +1 -0
  69. package/dist/lib/provider-oauth.js +1 -0
  70. package/dist/lib/provider-profile.js +1 -0
  71. package/dist/lib/provider-token-refresh.js +1 -0
  72. package/dist/lib/roles.js +1 -0
  73. package/dist/lib/secrets.js +1 -0
  74. package/dist/lib/state-capture.js +1 -0
  75. package/dist/lib/static-files.js +1 -0
  76. package/dist/lib/task-name-generator.js +1 -0
  77. package/dist/lib/users.js +1 -0
  78. package/dist/middleware/requireAuth.js +1 -0
  79. package/dist/middleware/requireInit.js +1 -0
  80. package/dist/middleware/requirePermission.js +1 -0
  81. package/dist/package-lock.json +4151 -0
  82. package/dist/package.json +50 -0
  83. package/dist/routes/apiKeys.js +1 -0
  84. package/dist/routes/auth-oidc.js +1 -0
  85. package/dist/routes/auth.js +1 -0
  86. package/dist/routes/build.js +1 -0
  87. package/dist/routes/containers.js +1 -0
  88. package/dist/routes/deploy-task.js +1 -0
  89. package/dist/routes/environment-management.js +1 -0
  90. package/dist/routes/environments.js +1 -0
  91. package/dist/routes/external-skills.js +1 -0
  92. package/dist/routes/git-credentials.js +1 -0
  93. package/dist/routes/git-provider-setup.js +1 -0
  94. package/dist/routes/health.js +1 -0
  95. package/dist/routes/jira.js +1 -0
  96. package/dist/routes/objective-management.js +1 -0
  97. package/dist/routes/password.js +1 -0
  98. package/dist/routes/prompt.js +1 -0
  99. package/dist/routes/provider-auth.js +1 -0
  100. package/dist/routes/qa.js +1 -0
  101. package/dist/routes/settings.js +1 -0
  102. package/dist/routes/skill-management.js +1 -0
  103. package/dist/routes/skills.js +1 -0
  104. package/dist/routes/tasks.js +2 -0
  105. package/dist/routes/templates.js +1 -0
  106. package/dist/routes/test-task.js +1 -0
  107. package/dist/routes/test.js +1 -0
  108. package/dist/routes/users.js +1 -0
  109. package/dist/routes/visualizations.js +1 -0
  110. package/dist/schemas/template-metadata.schema.json +178 -0
  111. package/dist/scripts/create-user.js +2 -0
  112. package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
  113. package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
  114. package/dist/shipped-skills/objective-management/SKILL.md +238 -0
  115. package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
  116. package/dist/start.js +2 -0
  117. package/dist/web-ui/public/activity-detail-modal.js +1 -0
  118. package/dist/web-ui/public/activity-feed.js +1 -0
  119. package/dist/web-ui/public/activity-formatters.js +1 -0
  120. package/dist/web-ui/public/agent-event-parser.js +1 -0
  121. package/dist/web-ui/public/app.js +1 -0
  122. package/dist/web-ui/public/approve-dialog.js +1 -0
  123. package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
  124. package/dist/web-ui/public/coderflow-logo.svg +46 -0
  125. package/dist/web-ui/public/comments-widget.js +1 -0
  126. package/dist/web-ui/public/docs/.nojekyll +0 -0
  127. package/dist/web-ui/public/docs/README.md +26 -0
  128. package/dist/web-ui/public/docs/_sidebar.md +47 -0
  129. package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
  130. package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
  131. package/dist/web-ui/public/docs/admin/environments.md +215 -0
  132. package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
  133. package/dist/web-ui/public/docs/admin/installation.md +313 -0
  134. package/dist/web-ui/public/docs/admin/skills.md +35 -0
  135. package/dist/web-ui/public/docs/admin/sso.md +241 -0
  136. package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
  137. package/dist/web-ui/public/docs/code/cli.md +102 -0
  138. package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
  139. package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
  140. package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
  141. package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
  142. package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
  143. package/dist/web-ui/public/docs/index.html +151 -0
  144. package/dist/web-ui/public/docs/integrations/custom.md +58 -0
  145. package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
  146. package/dist/web-ui/public/docs/integrations/overview.md +48 -0
  147. package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
  148. package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
  149. package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
  150. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
  151. package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
  152. package/dist/web-ui/public/docs/tasks/judging.md +114 -0
  153. package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
  154. package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
  155. package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
  156. package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
  157. package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
  158. package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
  159. package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
  160. package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
  161. package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
  162. package/dist/web-ui/public/environments.css +3942 -0
  163. package/dist/web-ui/public/environments.html +1791 -0
  164. package/dist/web-ui/public/environments.js +1 -0
  165. package/dist/web-ui/public/favicon-16.png +0 -0
  166. package/dist/web-ui/public/favicon-32.png +0 -0
  167. package/dist/web-ui/public/favicon.ico +0 -0
  168. package/dist/web-ui/public/feedback-widget.css +3133 -0
  169. package/dist/web-ui/public/feedback-widget.js +1 -0
  170. package/dist/web-ui/public/git-history.css +2663 -0
  171. package/dist/web-ui/public/git-history.html +272 -0
  172. package/dist/web-ui/public/git-history.js +1 -0
  173. package/dist/web-ui/public/git-status.js +1 -0
  174. package/dist/web-ui/public/index.html +1459 -0
  175. package/dist/web-ui/public/index.js +1 -0
  176. package/dist/web-ui/public/login.html +346 -0
  177. package/dist/web-ui/public/login.js +1 -0
  178. package/dist/web-ui/public/markdown-editor.js +1 -0
  179. package/dist/web-ui/public/markdown-file-editor.js +1 -0
  180. package/dist/web-ui/public/modal-maximize.js +1 -0
  181. package/dist/web-ui/public/notifications.js +1 -0
  182. package/dist/web-ui/public/server-health.js +1 -0
  183. package/dist/web-ui/public/settings.css +761 -0
  184. package/dist/web-ui/public/settings.html +1044 -0
  185. package/dist/web-ui/public/settings.js +1 -0
  186. package/dist/web-ui/public/setup-password.html +355 -0
  187. package/dist/web-ui/public/setup-password.js +1 -0
  188. package/dist/web-ui/public/skills.css +1949 -0
  189. package/dist/web-ui/public/skills.html +820 -0
  190. package/dist/web-ui/public/skills.js +1 -0
  191. package/dist/web-ui/public/sse-client.js +1 -0
  192. package/dist/web-ui/public/sse-shared-worker.js +1 -0
  193. package/dist/web-ui/public/styles.css +18614 -0
  194. package/dist/web-ui/public/task.html +1779 -0
  195. package/dist/web-ui/public/task.js +1 -0
  196. package/dist/web-ui/public/terminal.html +45 -0
  197. package/dist/web-ui/public/terminal.js +1 -0
  198. package/dist/web-ui/public/theme.js +1 -0
  199. package/dist/web-ui/public/users.html +298 -0
  200. package/dist/web-ui/public/users.js +1 -0
  201. package/dist/web-ui/public/variant-grouping.js +1 -0
  202. package/package.json +63 -0
@@ -0,0 +1,272 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Git History - CoderFlow</title>
7
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml">
8
+ <link rel="icon" href="/favicon-32.png" type="image/png" sizes="32x32">
9
+ <link rel="icon" href="/favicon-16.png" type="image/png" sizes="16x16">
10
+ <link rel="icon" href="/favicon.ico">
11
+ <script>
12
+ (() => {
13
+ const key = 'profound-coder-theme';
14
+ try {
15
+ const stored = localStorage.getItem(key);
16
+ const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
17
+ const theme = stored === 'dark' || stored === 'light' ? stored : (prefersDark ? 'dark' : 'light');
18
+ document.documentElement.dataset.theme = theme;
19
+ document.documentElement.style.colorScheme = theme === 'dark' ? 'dark' : 'light';
20
+ } catch (error) {
21
+ document.documentElement.dataset.theme = 'light';
22
+ }
23
+ })();
24
+ </script>
25
+ <link rel="stylesheet" href="styles.css?v=84">
26
+ <link rel="stylesheet" href="git-history.css?v=13">
27
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css">
28
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
29
+ <script type="module" src="app.js?v=68"></script>
30
+ <script type="module" src="git-history.js?v=8"></script>
31
+ <!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
32
+ </head>
33
+ <body>
34
+ <main class="task-detail">
35
+ <div class="task-hero">
36
+ <div class="hero-top">
37
+ <nav class="breadcrumb" aria-label="Breadcrumb">
38
+ <a class="breadcrumb-link" href="index.html">
39
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
40
+ <path d="M3 11.5L12 4l9 7.5"></path>
41
+ <path d="M5 10.5V20h5v-5h4v5h5v-9.5"></path>
42
+ </svg>
43
+ <span>Home</span>
44
+ </a>
45
+ <span class="breadcrumb-separator" aria-hidden="true">/</span>
46
+ <span class="breadcrumb-current">Git History</span>
47
+ </nav>
48
+ <span class="task-context">Administration</span>
49
+ <div class="admin-menu-container" id="admin-menu-container" hidden>
50
+ <button class="btn-icon-admin" id="admin-menu-btn" title="Admin">
51
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
52
+ <circle cx="12" cy="12" r="3"></circle>
53
+ <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
54
+ </svg>
55
+ </button>
56
+ <div class="dropdown-menu admin-dropdown" id="admin-menu" hidden>
57
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='users.html'">
58
+ <svg class="option-icon icon-users" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
59
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
60
+ <circle cx="9" cy="7" r="4"></circle>
61
+ <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
62
+ <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
63
+ </svg>
64
+ <span class="option-text">Users</span>
65
+ </button>
66
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='environments.html'">
67
+ <svg class="option-icon icon-environments" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
68
+ <circle cx="12" cy="12" r="10"></circle>
69
+ <line x1="2" y1="12" x2="22" y2="12"></line>
70
+ <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path>
71
+ </svg>
72
+ <span class="option-text">Environments</span>
73
+ </button>
74
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='skills.html'">
75
+ <svg class="option-icon icon-skills" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
76
+ <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path>
77
+ </svg>
78
+ <span class="option-text">Skills</span>
79
+ </button>
80
+ <button type="button" class="dropdown-item admin-menu-item" onclick="window.location.href='settings.html'">
81
+ <svg class="option-icon icon-server-settings" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
82
+ <line x1="4" y1="21" x2="4" y2="14"></line>
83
+ <line x1="4" y1="10" x2="4" y2="3"></line>
84
+ <line x1="12" y1="21" x2="12" y2="12"></line>
85
+ <line x1="12" y1="8" x2="12" y2="3"></line>
86
+ <line x1="20" y1="21" x2="20" y2="16"></line>
87
+ <line x1="20" y1="12" x2="20" y2="3"></line>
88
+ <line x1="1" y1="14" x2="7" y2="14"></line>
89
+ <line x1="9" y1="8" x2="15" y2="8"></line>
90
+ <line x1="17" y1="16" x2="23" y2="16"></line>
91
+ </svg>
92
+ <span class="option-text">Server Settings</span>
93
+ </button>
94
+ <button type="button" class="dropdown-item admin-menu-item" id="server-health-btn">
95
+ <svg class="option-icon icon-health" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
96
+ <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path>
97
+ </svg>
98
+ <span class="option-text">Server Health</span>
99
+ </button>
100
+ </div>
101
+ </div>
102
+ <div id="theme-toggle-container"></div>
103
+ </div>
104
+ <div class="status-hero">
105
+ <div class="status-copy">
106
+ <h1>Git History</h1>
107
+ <p class="task-subtitle">Browse commits and review diffs across your repositories.</p>
108
+ </div>
109
+ <div class="status-actions">
110
+ <div class="git-branch-pill" id="repo-branch-pill" hidden>
111
+ <span class="branch-label">Branch</span>
112
+ <span id="repo-branch-name">main</span>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+
118
+ <div id="git-history-loading" class="loading">
119
+ <svg class="loading-spinner" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
120
+ <path d="M21 12a9 9 0 1 1-6.219-8.56"></path>
121
+ </svg>
122
+ <span>Loading Git history...</span>
123
+ </div>
124
+
125
+ <div id="git-history-error" class="empty-state-card" hidden>
126
+ <div class="empty-state-icon">!</div>
127
+ <h2>Unable to load Git history</h2>
128
+ <p id="git-history-error-message" class="text-muted"></p>
129
+ <button class="btn-primary" id="retry-git-history-btn">Try Again</button>
130
+ </div>
131
+
132
+ <div id="git-history-content" class="git-history-layout" hidden>
133
+ <section class="git-history-controls">
134
+ <div class="control-group">
135
+ <label for="env-select">Environment</label>
136
+ <select id="env-select" aria-label="Select environment">
137
+ <option value="">Select environment</option>
138
+ </select>
139
+ </div>
140
+ <div class="control-group">
141
+ <label for="repo-select">Repository</label>
142
+ <select id="repo-select" aria-label="Select repository" disabled>
143
+ <option value="">Select repository</option>
144
+ </select>
145
+ </div>
146
+ <div class="control-group">
147
+ <label for="branch-select">Branch</label>
148
+ <select id="branch-select" aria-label="Select branch" disabled>
149
+ <option value="">Select branch</option>
150
+ </select>
151
+ </div>
152
+ <div class="control-group search-group">
153
+ <label for="commit-search">Search</label>
154
+ <div class="search-input">
155
+ <input id="commit-search" type="search" placeholder="Search commits, authors, hashes..." autocomplete="off">
156
+ <button class="btn-ghost btn-small" id="clear-search-btn" type="button" hidden>Clear</button>
157
+ </div>
158
+ </div>
159
+ <div class="control-group view-group">
160
+ <label>Diff view</label>
161
+ <div class="segmented-control" role="group" aria-label="Diff view">
162
+ <button class="segmented-btn" data-view="unified" type="button">Unified</button>
163
+ <button class="segmented-btn" data-view="split" type="button">Split</button>
164
+ </div>
165
+ </div>
166
+ </section>
167
+
168
+ <section class="git-history-body">
169
+ <aside class="commit-list-panel">
170
+ <div class="commit-list-header">
171
+ <div>
172
+ <h2>Commits</h2>
173
+ <p id="commit-count" class="text-muted">Select a repository to load history.</p>
174
+ </div>
175
+ <div class="pagination-controls">
176
+ <button class="btn-ghost btn-small" id="prev-page-btn" type="button" disabled>Prev</button>
177
+ <button class="btn-ghost btn-small" id="next-page-btn" type="button" disabled>Next</button>
178
+ </div>
179
+ </div>
180
+ <ul id="commit-list" class="commit-list" aria-label="Commit list"></ul>
181
+ </aside>
182
+
183
+ <section class="commit-detail-panel">
184
+ <div id="commit-placeholder" class="empty-state-card">
185
+ <div class="empty-state-icon">
186
+ <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
187
+ <circle cx="12" cy="12" r="4"></circle>
188
+ <line x1="1.05" y1="12" x2="7" y2="12"></line>
189
+ <line x1="17.01" y1="12" x2="22.96" y2="12"></line>
190
+ </svg>
191
+ </div>
192
+ <h2>Select a commit</h2>
193
+ <p class="text-muted">Choose a commit from the list to see details, diffs, and revert options.</p>
194
+ <div class="keyboard-hints">
195
+ <span class="hint"><kbd>j</kbd><kbd>k</kbd> Navigate</span>
196
+ <span class="hint"><kbd>/</kbd> Search</span>
197
+ <span class="hint"><kbd>c</kbd> Copy hash</span>
198
+ <span class="hint"><kbd>m</kbd> Maximize</span>
199
+ </div>
200
+ </div>
201
+
202
+ <div id="commit-detail" class="commit-detail" hidden>
203
+ <div class="commit-detail-header">
204
+ <div class="commit-title">
205
+ <h2 id="commit-message"></h2>
206
+ <div class="commit-meta">
207
+ <span id="commit-author"></span>
208
+ <span class="meta-separator">|</span>
209
+ <span id="commit-date"></span>
210
+ <span class="meta-separator">|</span>
211
+ <span id="commit-hash"></span>
212
+ </div>
213
+ </div>
214
+ <div class="commit-actions">
215
+ <button class="btn-ghost btn-small" id="copy-hash-btn" type="button">Copy hash</button>
216
+ <a class="btn-ghost btn-small" id="view-on-provider-btn" href="#" target="_blank" rel="noopener noreferrer" hidden>View on GitHub</a>
217
+ <button class="btn-danger btn-small" id="revert-btn" type="button">Revert commit</button>
218
+ </div>
219
+ </div>
220
+
221
+ <div class="commit-detail-subheader">
222
+ <button class="btn-ghost btn-small maximize-btn" id="maximize-diff-btn" type="button" title="Maximize diff panel (m)">
223
+ <svg class="maximize-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
224
+ <polyline points="15 3 21 3 21 9"></polyline>
225
+ <polyline points="9 21 3 21 3 15"></polyline>
226
+ <line x1="21" y1="3" x2="14" y2="10"></line>
227
+ <line x1="3" y1="21" x2="10" y2="14"></line>
228
+ </svg>
229
+ <svg class="restore-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" hidden>
230
+ <polyline points="4 14 10 14 10 20"></polyline>
231
+ <polyline points="20 10 14 10 14 4"></polyline>
232
+ <line x1="14" y1="10" x2="21" y2="3"></line>
233
+ <line x1="3" y1="21" x2="10" y2="14"></line>
234
+ </svg>
235
+ <span class="maximize-text">Maximize</span>
236
+ </button>
237
+ <div id="merge-controls" class="merge-controls" hidden>
238
+ <label for="mainline-select">Mainline parent</label>
239
+ <select id="mainline-select" aria-label="Select mainline parent"></select>
240
+ </div>
241
+ <div id="diff-stats" class="diff-stats"></div>
242
+ <div class="diff-actions">
243
+ <button class="btn-ghost btn-small" id="expand-all-btn" type="button">Expand all</button>
244
+ <button class="btn-ghost btn-small" id="collapse-all-btn" type="button">Collapse all</button>
245
+ <div class="file-nav-container">
246
+ <button class="file-nav-toggle" id="file-nav-toggle" type="button">
247
+ <span id="file-nav-count">0 files</span>
248
+ </button>
249
+ <div class="file-nav-sidebar" id="file-nav-sidebar">
250
+ <div class="file-nav-header">
251
+ <h4>Changed Files</h4>
252
+ <button class="file-nav-close" id="file-nav-close" type="button" aria-label="Close">
253
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
254
+ <line x1="18" y1="6" x2="6" y2="18"></line>
255
+ <line x1="6" y1="6" x2="18" y2="18"></line>
256
+ </svg>
257
+ </button>
258
+ </div>
259
+ <ul class="file-nav-list" id="file-nav-list"></ul>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <div id="commit-diff" class="commit-diff"></div>
266
+ </div>
267
+ </section>
268
+ </section>
269
+ </div>
270
+ </main>
271
+ </body>
272
+ </html>
@@ -0,0 +1 @@
1
+ const _0x5299df=_0x1b4a;(function(_0x451eac,_0x440786){const _0x36fa57=_0x1b4a,_0x1da289=_0x451eac();while(!![]){try{const _0x3f27c3=parseInt(_0x36fa57(0x166))/0x1*(-parseInt(_0x36fa57(0x188))/0x2)+parseInt(_0x36fa57(0x251))/0x3*(parseInt(_0x36fa57(0x2b5))/0x4)+-parseInt(_0x36fa57(0x19e))/0x5*(-parseInt(_0x36fa57(0x22b))/0x6)+-parseInt(_0x36fa57(0x20d))/0x7+-parseInt(_0x36fa57(0x1d9))/0x8*(-parseInt(_0x36fa57(0x1fa))/0x9)+parseInt(_0x36fa57(0x170))/0xa+parseInt(_0x36fa57(0x17f))/0xb;if(_0x3f27c3===_0x440786)break;else _0x1da289['push'](_0x1da289['shift']());}catch(_0x4a32d7){_0x1da289['push'](_0x1da289['shift']());}}}(_0x3be2,0xe463b));import{API,Utils,CustomSelect,ConfirmDialog,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'environments':[],'repos':[],'branches':[],'selectedEnvironment':'','selectedRepo':'','selectedBranch':'','commits':[],'selectedCommit':null,'commitDetail':null,'diffView':localStorage['getItem']('git-history-diff-view')||'unified','pagination':{'limit':0x19,'offset':0x0,'hasMore':![],'search':''},'loadingHistory':![],'loadingCommit':![],'loadingBranches':![],'dataSource':_0x5299df(0x143)},elements={},SEARCH_DEBOUNCE_MS=0x12c;let searchTimer=null;const branchCache=new Map(),BRANCH_CACHE_TTL_MS=0x5*0x3c*0x3e8;document[_0x5299df(0x199)](_0x5299df(0x1bf),initialize);function _0x1b4a(_0x19efe9,_0x455bb4){_0x19efe9=_0x19efe9-0x129;const _0x3be25a=_0x3be2();let _0x1b4acc=_0x3be25a[_0x19efe9];if(_0x1b4a['nzrUoR']===undefined){var _0x46dbf0=function(_0x3369ca){const _0x49f327='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b5b97='',_0x2e3976='';for(let _0xba1b4c=0x0,_0x2766cc,_0x25d57c,_0x268a4c=0x0;_0x25d57c=_0x3369ca['charAt'](_0x268a4c++);~_0x25d57c&&(_0x2766cc=_0xba1b4c%0x4?_0x2766cc*0x40+_0x25d57c:_0x25d57c,_0xba1b4c++%0x4)?_0x3b5b97+=String['fromCharCode'](0xff&_0x2766cc>>(-0x2*_0xba1b4c&0x6)):0x0){_0x25d57c=_0x49f327['indexOf'](_0x25d57c);}for(let _0x3c524b=0x0,_0x2215cb=_0x3b5b97['length'];_0x3c524b<_0x2215cb;_0x3c524b++){_0x2e3976+='%'+('00'+_0x3b5b97['charCodeAt'](_0x3c524b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e3976);};_0x1b4a['OLQrWY']=_0x46dbf0,_0x1b4a['PckweZ']={},_0x1b4a['nzrUoR']=!![];}const _0x28887b=_0x3be25a[0x0],_0x22ac30=_0x19efe9+_0x28887b,_0x5ccfbb=_0x1b4a['PckweZ'][_0x22ac30];return!_0x5ccfbb?(_0x1b4acc=_0x1b4a['OLQrWY'](_0x1b4acc),_0x1b4a['PckweZ'][_0x22ac30]=_0x1b4acc):_0x1b4acc=_0x5ccfbb,_0x1b4acc;}async function initialize(){const _0x1b8320=_0x5299df;try{initTheme(),mountThemeToggle(),ConfirmDialog[_0x1b8320(0x205)](),Object['assign'](elements,{'loading':document[_0x1b8320(0x1ff)](_0x1b8320(0x181)),'error':document['getElementById'](_0x1b8320(0x235)),'errorMessage':document[_0x1b8320(0x1ff)]('git-history-error-message'),'retryBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x160)),'content':document[_0x1b8320(0x1ff)](_0x1b8320(0x158)),'envSelect':document[_0x1b8320(0x1ff)](_0x1b8320(0x2cc)),'repoSelect':document['getElementById'](_0x1b8320(0x1c6)),'branchSelect':document['getElementById'](_0x1b8320(0x130)),'commitList':document['getElementById'](_0x1b8320(0x177)),'commitCount':document[_0x1b8320(0x1ff)](_0x1b8320(0x250)),'prevBtn':document['getElementById'](_0x1b8320(0x12c)),'nextBtn':document['getElementById']('next-page-btn'),'searchInput':document[_0x1b8320(0x1ff)](_0x1b8320(0x168)),'clearSearchBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x157)),'branchPill':document[_0x1b8320(0x1ff)]('repo-branch-pill'),'branchName':document[_0x1b8320(0x1ff)](_0x1b8320(0x196)),'placeholder':document['getElementById'](_0x1b8320(0x26b)),'detailPanel':document[_0x1b8320(0x1ff)]('commit-detail'),'commitMessage':document[_0x1b8320(0x1ff)](_0x1b8320(0x131)),'commitAuthor':document[_0x1b8320(0x1ff)]('commit-author'),'commitDate':document[_0x1b8320(0x1ff)](_0x1b8320(0x245)),'commitHash':document[_0x1b8320(0x1ff)]('commit-hash'),'copyHashBtn':document['getElementById'](_0x1b8320(0x22f)),'viewOnProviderBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x1e9)),'revertBtn':document['getElementById'](_0x1b8320(0x261)),'diffStats':document[_0x1b8320(0x1ff)](_0x1b8320(0x28b)),'diffContainer':document[_0x1b8320(0x1ff)](_0x1b8320(0x2c7)),'expandAllBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x182)),'collapseAllBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x2b2)),'mergeControls':document['getElementById'](_0x1b8320(0x23b)),'mainlineSelect':document[_0x1b8320(0x1ff)](_0x1b8320(0x278)),'fileNavToggle':document[_0x1b8320(0x1ff)](_0x1b8320(0x28a)),'fileNavSidebar':document[_0x1b8320(0x1ff)]('file-nav-sidebar'),'fileNavList':document[_0x1b8320(0x1ff)](_0x1b8320(0x23e)),'fileNavClose':document['getElementById']('file-nav-close'),'fileNavCount':document[_0x1b8320(0x1ff)](_0x1b8320(0x18e)),'maximizeBtn':document[_0x1b8320(0x1ff)](_0x1b8320(0x227)),'gitHistoryBody':document[_0x1b8320(0x1c3)](_0x1b8320(0x232))});const _0x3b5b97=await checkAccess();await initializeAdminMenu(_0x3b5b97),setupEventListeners(),initializeDiffViewToggle(),await loadEnvironments(),elements[_0x1b8320(0x139)][_0x1b8320(0x22c)]=!![],elements[_0x1b8320(0x134)]['hidden']=![];}catch(_0x2e3976){console['error'](_0x1b8320(0x19f),_0x2e3976),elements[_0x1b8320(0x139)][_0x1b8320(0x22c)]=!![],elements[_0x1b8320(0x16f)]['hidden']=![],elements[_0x1b8320(0x197)][_0x1b8320(0x213)]=_0x2e3976[_0x1b8320(0x265)]||'Unknown\x20error';}}async function checkAccess(){const _0x3fe297=_0x5299df;try{const _0xba1b4c=await API[_0x3fe297(0x17b)](),_0x2766cc=_0xba1b4c['effectivePermissions']||[],_0x25d57c=_0x2766cc[_0x3fe297(0x175)]('*')||_0x2766cc[_0x3fe297(0x175)](_0x3fe297(0x2b7));if(!_0x25d57c){Utils[_0x3fe297(0x2cd)]('Access\x20denied:\x20Git\x20permissions\x20required',_0x3fe297(0x16f)),setTimeout(()=>{const _0x163b17=_0x3fe297;window['location'][_0x163b17(0x141)]=_0x163b17(0x152);},0x708);throw new Error(_0x3fe297(0x252));}return _0xba1b4c;}catch(_0x268a4c){_0x268a4c[_0x3fe297(0x265)]!=='Access\x20denied'&&(window[_0x3fe297(0x207)][_0x3fe297(0x141)]='login.html');throw _0x268a4c;}}function setupEventListeners(){const _0x2985d5=_0x5299df;elements['retryBtn']?.[_0x2985d5(0x199)](_0x2985d5(0x299),()=>window[_0x2985d5(0x207)]['reload']()),elements[_0x2985d5(0x1a5)]?.[_0x2985d5(0x199)](_0x2985d5(0x230),handleEnvironmentChange),elements[_0x2985d5(0x210)]?.[_0x2985d5(0x199)](_0x2985d5(0x230),handleRepoChange),elements[_0x2985d5(0x1d5)]?.[_0x2985d5(0x199)](_0x2985d5(0x230),handleBranchChange),elements[_0x2985d5(0x298)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),()=>changePage(-0x1)),elements['nextBtn']?.['addEventListener'](_0x2985d5(0x299),()=>changePage(0x1)),elements[_0x2985d5(0x29d)]?.[_0x2985d5(0x199)](_0x2985d5(0x173),handleSearchInput),elements[_0x2985d5(0x222)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),clearSearch),elements[_0x2985d5(0x296)]?.['addEventListener']('click',_0x3c524b=>{const _0x1db256=_0x2985d5,_0x2215cb=_0x3c524b[_0x1db256(0x176)]['closest'](_0x1db256(0x288));if(!_0x2215cb)return;selectCommit(_0x2215cb['dataset']['hash']);}),elements[_0x2985d5(0x270)]?.['addEventListener'](_0x2985d5(0x299),handleCopyHash),elements[_0x2985d5(0x217)]?.['addEventListener'](_0x2985d5(0x299),handleRevertCommit),elements[_0x2985d5(0x266)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),()=>setAllDiffCollapsed(![])),elements[_0x2985d5(0x1b4)]?.[_0x2985d5(0x199)]('click',()=>setAllDiffCollapsed(!![])),elements['fileNavToggle']?.[_0x2985d5(0x199)]('click',toggleFileNav),elements[_0x2985d5(0x2c4)]?.['addEventListener'](_0x2985d5(0x299),closeFileNav),document['addEventListener']('click',_0x1fea2c=>{const _0x333677=_0x2985d5;!_0x1fea2c[_0x333677(0x176)][_0x333677(0x1fc)](_0x333677(0x2a9))&&closeFileNav();}),elements[_0x2985d5(0x194)]?.[_0x2985d5(0x199)](_0x2985d5(0x299),toggleMaximize),document[_0x2985d5(0x199)](_0x2985d5(0x13a),handleKeyboardNavigation);}function handleKeyboardNavigation(_0x41050b){const _0x2972fc=_0x5299df;if(_0x41050b['target'][_0x2972fc(0x15c)](_0x2972fc(0x23c)))return;const _0x2142ed=Array['from'](elements['commitList']?.['querySelectorAll'](_0x2972fc(0x288))||[]);if(_0x2142ed[_0x2972fc(0x148)]===0x0)return;const _0x4c7945=_0x2142ed['findIndex'](_0xc6ccaf=>_0xc6ccaf[_0x2972fc(0x28e)]['contains']('selected'));switch(_0x41050b[_0x2972fc(0x2aa)]){case'j':case _0x2972fc(0x179):{_0x41050b['preventDefault']();const _0x5b46ed=_0x4c7945<_0x2142ed['length']-0x1?_0x4c7945+0x1:_0x4c7945,_0x355ff8=_0x2142ed[_0x5b46ed]?.['dataset'][_0x2972fc(0x274)];_0x355ff8&&(selectCommit(_0x355ff8),_0x2142ed[_0x5b46ed][_0x2972fc(0x202)]({'block':'nearest','behavior':_0x2972fc(0x13d)}));break;}case'k':case _0x2972fc(0x20c):{_0x41050b['preventDefault']();const _0x35a7db=_0x4c7945>0x0?_0x4c7945-0x1:0x0,_0x519690=_0x2142ed[_0x35a7db]?.[_0x2972fc(0x215)][_0x2972fc(0x274)];_0x519690&&(selectCommit(_0x519690),_0x2142ed[_0x35a7db][_0x2972fc(0x202)]({'block':'nearest','behavior':_0x2972fc(0x13d)}));break;}case _0x2972fc(0x2bc):{state['selectedCommit']&&elements[_0x2972fc(0x167)]?.[_0x2972fc(0x1f8)]();break;}case'c':{state[_0x2972fc(0x18b)]?.[_0x2972fc(0x20f)]?.[_0x2972fc(0x274)]&&handleCopyHash();break;}case'e':{setAllDiffCollapsed(![]);break;}case'w':{setAllDiffCollapsed(!![]);break;}case'/':{_0x41050b[_0x2972fc(0x1c7)](),elements['searchInput']?.[_0x2972fc(0x1f8)]();break;}case _0x2972fc(0x204):{if(elements[_0x2972fc(0x13c)]?.[_0x2972fc(0x28e)]['contains']('maximized'))toggleMaximize();else document[_0x2972fc(0x211)]===elements['searchInput']&&elements[_0x2972fc(0x29d)][_0x2972fc(0x136)]();break;}case'm':{state[_0x2972fc(0x18b)]&&toggleMaximize();break;}}}function initializeDiffViewToggle(){const _0x48b42b=_0x5299df,_0x2b532a=Array[_0x48b42b(0x254)](document[_0x48b42b(0x246)]('.segmented-btn'));_0x2b532a[_0x48b42b(0x1ca)](_0x3f181d=>{const _0x5232ff=_0x48b42b;_0x3f181d[_0x5232ff(0x28e)][_0x5232ff(0x20b)](_0x5232ff(0x291),_0x3f181d['dataset'][_0x5232ff(0x1fb)]===state['diffView']),_0x3f181d[_0x5232ff(0x199)](_0x5232ff(0x299),()=>{const _0x400185=_0x5232ff;if(_0x3f181d[_0x400185(0x215)][_0x400185(0x1fb)]===state[_0x400185(0x22a)])return;state['diffView']=_0x3f181d['dataset'][_0x400185(0x1fb)],localStorage['setItem'](_0x400185(0x163),state[_0x400185(0x22a)]),_0x2b532a['forEach'](_0x190e97=>_0x190e97['classList'][_0x400185(0x20b)](_0x400185(0x291),_0x190e97===_0x3f181d)),renderCommitDiff();});});}async function loadEnvironments(){const _0x25c90a=_0x5299df,_0x2d23ae=await API['getEnvironments']();state[_0x25c90a(0x1a3)]=_0x2d23ae[_0x25c90a(0x1a3)]||[],elements[_0x25c90a(0x1a5)][_0x25c90a(0x151)]=_0x25c90a(0x1f5),state['environments'][_0x25c90a(0x1ca)](_0x364e7e=>{const _0x3b5949=_0x25c90a,_0x3a169a=document[_0x3b5949(0x14e)](_0x3b5949(0x1b1));_0x3a169a['value']=_0x364e7e[_0x3b5949(0x189)],_0x3a169a[_0x3b5949(0x213)]=_0x364e7e[_0x3b5949(0x189)],elements[_0x3b5949(0x1a5)][_0x3b5949(0x186)](_0x3a169a);}),new CustomSelect(elements[_0x25c90a(0x1a5)],{'searchable':!![]}),new CustomSelect(elements[_0x25c90a(0x210)],{'searchable':!![]}),new CustomSelect(elements['branchSelect'],{'searchable':!![]});const _0x172fb7=_0x2d23ae['default_environment']||state[_0x25c90a(0x1a3)][0x0]?.[_0x25c90a(0x189)]||'';_0x172fb7&&(elements['envSelect'][_0x25c90a(0x161)]=_0x172fb7,elements[_0x25c90a(0x1a5)]['dispatchEvent'](new Event(_0x25c90a(0x230))));}async function handleEnvironmentChange(){const _0x22d6db=_0x5299df;state[_0x22d6db(0x209)]=elements[_0x22d6db(0x1a5)]['value'],state[_0x22d6db(0x1c2)]='',state['selectedBranch']='',state[_0x22d6db(0x12d)]=[],state['branches']=[],elements[_0x22d6db(0x210)][_0x22d6db(0x151)]='<option\x20value=\x22\x22>Select\x20repository</option>',elements[_0x22d6db(0x210)][_0x22d6db(0x203)]=!![],elements[_0x22d6db(0x1d5)][_0x22d6db(0x151)]=_0x22d6db(0x294),elements['branchSelect'][_0x22d6db(0x203)]=!![],elements[_0x22d6db(0x25e)]['hidden']=!![],elements['commitList']['innerHTML']='',elements['commitCount']['textContent']=_0x22d6db(0x19d),resetCommitDetail();if(!state[_0x22d6db(0x209)])return;try{const _0x44ff7b=await API[_0x22d6db(0x2a6)](state[_0x22d6db(0x209)]);state[_0x22d6db(0x12d)]=_0x44ff7b[_0x22d6db(0x12d)]||[],elements[_0x22d6db(0x210)][_0x22d6db(0x151)]=_0x22d6db(0x2b9),state[_0x22d6db(0x12d)]['forEach'](_0xf1ddbd=>{const _0x6d326d=_0x22d6db,_0x938de0=document[_0x6d326d(0x14e)](_0x6d326d(0x1b1));_0x938de0[_0x6d326d(0x161)]=_0xf1ddbd['name'],_0x938de0['textContent']=_0xf1ddbd[_0x6d326d(0x189)],elements[_0x6d326d(0x210)][_0x6d326d(0x186)](_0x938de0);}),elements[_0x22d6db(0x210)][_0x22d6db(0x203)]=state[_0x22d6db(0x12d)][_0x22d6db(0x148)]===0x0;const _0x3dd21d=state[_0x22d6db(0x12d)][0x0]?.[_0x22d6db(0x189)];_0x3dd21d&&(elements[_0x22d6db(0x210)][_0x22d6db(0x161)]=_0x3dd21d,elements[_0x22d6db(0x210)][_0x22d6db(0x1e7)](new Event('change')));}catch(_0x22da66){Utils[_0x22d6db(0x19b)](_0x22da66['message']||_0x22d6db(0x290));}}async function handleRepoChange(){const _0x1ce2e7=_0x5299df;state[_0x1ce2e7(0x1c2)]=elements['repoSelect'][_0x1ce2e7(0x161)],state[_0x1ce2e7(0x280)]='',state['branches']=[],state[_0x1ce2e7(0x29f)][_0x1ce2e7(0x2b6)]=0x0,state[_0x1ce2e7(0x29f)][_0x1ce2e7(0x1b5)]='',elements[_0x1ce2e7(0x29d)][_0x1ce2e7(0x161)]='',elements[_0x1ce2e7(0x222)][_0x1ce2e7(0x22c)]=!![],elements[_0x1ce2e7(0x1d5)][_0x1ce2e7(0x151)]=_0x1ce2e7(0x1c0),elements['branchSelect'][_0x1ce2e7(0x203)]=!![],resetCommitDetail();if(!state[_0x1ce2e7(0x1c2)]){elements[_0x1ce2e7(0x296)][_0x1ce2e7(0x151)]='',elements[_0x1ce2e7(0x206)][_0x1ce2e7(0x213)]=_0x1ce2e7(0x19d),elements[_0x1ce2e7(0x25e)][_0x1ce2e7(0x22c)]=!![],elements['branchSelect']['innerHTML']=_0x1ce2e7(0x294);return;}await loadBranches(),loadHistory();}async function loadBranches(){const _0x4edbd3=_0x5299df;if(!state[_0x4edbd3(0x209)]||!state[_0x4edbd3(0x1c2)])return;if(state[_0x4edbd3(0x191)])return;state[_0x4edbd3(0x191)]=!![];try{const _0x424c8c=state[_0x4edbd3(0x209)]+':'+state['selectedRepo'],_0x16170e=branchCache[_0x4edbd3(0x242)](_0x424c8c),_0x49b368=Date[_0x4edbd3(0x1f4)]();let _0xff4733;_0x16170e&&_0x49b368-_0x16170e[_0x4edbd3(0x24e)]<BRANCH_CACHE_TTL_MS?_0xff4733=_0x16170e:(_0xff4733=await API[_0x4edbd3(0x1c4)](state[_0x4edbd3(0x209)],state[_0x4edbd3(0x1c2)]),branchCache[_0x4edbd3(0x1ef)](_0x424c8c,{..._0xff4733,'timestamp':_0x49b368}));state['branches']=_0xff4733[_0x4edbd3(0x145)]||[],elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x151)]='';const _0x2cf290=document['createElement'](_0x4edbd3(0x1b1));_0x2cf290[_0x4edbd3(0x161)]='',_0x2cf290['textContent']=_0xff4733[_0x4edbd3(0x25a)]?_0xff4733['currentBranch']+_0x4edbd3(0x2a4):_0xff4733[_0x4edbd3(0x1e0)]?_0xff4733[_0x4edbd3(0x1e0)]+'\x20(default)':_0x4edbd3(0x236),elements['branchSelect'][_0x4edbd3(0x186)](_0x2cf290);const _0x3ee019=_0xff4733[_0x4edbd3(0x25a)]||_0xff4733[_0x4edbd3(0x1e0)];state[_0x4edbd3(0x145)]['forEach'](_0x47836a=>{const _0x266b20=_0x4edbd3;if(_0x47836a[_0x266b20(0x189)]===_0x3ee019)return;const _0x2fd4c4=document[_0x266b20(0x14e)](_0x266b20(0x1b1));_0x2fd4c4[_0x266b20(0x161)]=_0x47836a['name'];let _0x3695d1=_0x47836a[_0x266b20(0x189)];if(_0x47836a[_0x266b20(0x1bb)])_0x3695d1+=_0x266b20(0x25c);if(_0x47836a[_0x266b20(0x1da)])_0x3695d1+=_0x266b20(0x2a4);_0x2fd4c4[_0x266b20(0x213)]=_0x3695d1,elements[_0x266b20(0x1d5)][_0x266b20(0x186)](_0x2fd4c4);}),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x203)]=state[_0x4edbd3(0x145)][_0x4edbd3(0x148)]===0x0,_0xff4733['currentBranch']&&(state['selectedBranch']=''),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x161)]=state[_0x4edbd3(0x280)],queueMicrotask(()=>{const _0x3d0012=_0x4edbd3;elements['branchSelect'][_0x3d0012(0x1e7)](new Event(_0x3d0012(0x230)));});}catch(_0x4a8e2f){console[_0x4edbd3(0x16f)](_0x4edbd3(0x2b1),_0x4a8e2f),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x151)]=_0x4edbd3(0x13f),elements[_0x4edbd3(0x1d5)][_0x4edbd3(0x203)]=!![];}finally{state[_0x4edbd3(0x191)]=![];}}function handleBranchChange(){const _0xcf91a5=_0x5299df;state[_0xcf91a5(0x280)]=elements[_0xcf91a5(0x1d5)][_0xcf91a5(0x161)],state[_0xcf91a5(0x29f)][_0xcf91a5(0x2b6)]=0x0,resetCommitDetail(),loadHistory();}async function loadHistory(_0xefe461={}){const _0x15d435=_0x5299df;if(!state['selectedEnvironment']||!state[_0x15d435(0x1c2)])return;if(state[_0x15d435(0x253)])return;state[_0x15d435(0x253)]=!![],elements[_0x15d435(0x296)][_0x15d435(0x151)]=renderLoadingSkeletons(0x5),elements['commitCount'][_0x15d435(0x213)]=_0x15d435(0x293);try{const _0x66f81c={'limit':state[_0x15d435(0x29f)][_0x15d435(0x140)],'offset':state[_0x15d435(0x29f)][_0x15d435(0x2b6)],'search':state[_0x15d435(0x29f)][_0x15d435(0x1b5)]};state[_0x15d435(0x280)]&&(_0x66f81c[_0x15d435(0x169)]=state[_0x15d435(0x280)]);const _0x2c37b0=await API[_0x15d435(0x21e)](state[_0x15d435(0x209)],state['selectedRepo'],_0x66f81c);state[_0x15d435(0x21b)]=_0x2c37b0[_0x15d435(0x21b)]||[],state[_0x15d435(0x29f)][_0x15d435(0x14b)]=_0x2c37b0[_0x15d435(0x29f)]?.[_0x15d435(0x14b)]||![],state[_0x15d435(0x27d)]=_0x2c37b0[_0x15d435(0x285)]||_0x15d435(0x143);_0x2c37b0[_0x15d435(0x172)]?.[_0x15d435(0x169)]?(elements[_0x15d435(0x276)][_0x15d435(0x213)]=_0x2c37b0[_0x15d435(0x172)]['branch'],elements[_0x15d435(0x25e)][_0x15d435(0x22c)]=![]):elements[_0x15d435(0x25e)][_0x15d435(0x22c)]=!![];updateSourceIndicator(),renderCommitList();const _0x3b937d=_0xefe461[_0x15d435(0x156)]&&state['selectedCommit'],_0x48ef73=state['commits'][_0x15d435(0x1cf)](_0x90c10b=>_0x90c10b[_0x15d435(0x274)]===state[_0x15d435(0x259)]?.[_0x15d435(0x274)]);if(_0x3b937d&&_0x48ef73)highlightSelectedCommit();else state[_0x15d435(0x21b)][_0x15d435(0x148)]>0x0?selectCommit(state[_0x15d435(0x21b)][0x0][_0x15d435(0x274)],{'silent':!![]}):resetCommitDetail();}catch(_0x5f21c1){Utils[_0x15d435(0x19b)](_0x5f21c1[_0x15d435(0x265)]||_0x15d435(0x1ab)),elements[_0x15d435(0x296)][_0x15d435(0x151)]='',elements['commitCount']['textContent']=_0x15d435(0x26d);}finally{state[_0x15d435(0x253)]=![];}}function updateSourceIndicator(){const _0xf807bb=_0x5299df;let _0x1ee3a6=document[_0xf807bb(0x1ff)](_0xf807bb(0x27c));!_0x1ee3a6&&(_0x1ee3a6=document[_0xf807bb(0x14e)](_0xf807bb(0x192)),_0x1ee3a6['id']='data-source-indicator',_0x1ee3a6[_0xf807bb(0x1a8)]='source-indicator',elements['branchPill']?.[_0xf807bb(0x159)]?.[_0xf807bb(0x153)](_0x1ee3a6,elements['branchPill'][_0xf807bb(0x155)])),state[_0xf807bb(0x27d)]===_0xf807bb(0x264)?(_0x1ee3a6[_0xf807bb(0x151)]=_0xf807bb(0x2b8),_0x1ee3a6[_0xf807bb(0x1a6)]='Data\x20fetched\x20from\x20remote\x20Git\x20provider\x20(repository\x20not\x20cloned\x20locally)',_0x1ee3a6[_0xf807bb(0x22c)]=![]):_0x1ee3a6[_0xf807bb(0x22c)]=!![];}async function selectCommit(_0x23a97f,_0x4b684f={}){const _0x4229c3=_0x5299df;if(!_0x23a97f)return;if(state[_0x4229c3(0x29a)])return;const _0x36c98a=state[_0x4229c3(0x21b)][_0x4229c3(0x1c9)](_0xf4970d=>_0xf4970d[_0x4229c3(0x274)]===_0x23a97f);if(!_0x36c98a)return;state[_0x4229c3(0x259)]=_0x36c98a,highlightSelectedCommit();if(_0x4b684f['silent']){await loadCommitDetail(_0x23a97f);return;}await loadCommitDetail(_0x23a97f);}function highlightSelectedCommit(){const _0x7ceaac=_0x5299df,_0x2e12a6=elements[_0x7ceaac(0x296)][_0x7ceaac(0x246)]('.commit-item');_0x2e12a6[_0x7ceaac(0x1ca)](_0x1148f2=>{const _0x248430=_0x7ceaac;_0x1148f2['classList'][_0x248430(0x20b)](_0x248430(0x1b0),_0x1148f2[_0x248430(0x215)][_0x248430(0x274)]===state['selectedCommit']?.[_0x248430(0x274)]);});}async function loadCommitDetail(_0x3c6eec){const _0x252c7e=_0x5299df;state[_0x252c7e(0x29a)]=!![],elements[_0x252c7e(0x208)][_0x252c7e(0x22c)]=!![],elements['detailPanel'][_0x252c7e(0x22c)]=![],elements['diffContainer'][_0x252c7e(0x151)]=_0x252c7e(0x29b);try{const _0x163076=await API[_0x252c7e(0x1cc)](state['selectedEnvironment'],state[_0x252c7e(0x1c2)],_0x3c6eec);state[_0x252c7e(0x18b)]=_0x163076,renderCommitDetail();}catch(_0x5ce60c){Utils['showError'](_0x5ce60c[_0x252c7e(0x265)]||_0x252c7e(0x1e2)),elements[_0x252c7e(0x167)][_0x252c7e(0x151)]=_0x252c7e(0x17d);}finally{state[_0x252c7e(0x29a)]=![];}}function renderCommitList(){const _0x49039a=_0x5299df;elements[_0x49039a(0x296)]['innerHTML']='';if(state[_0x49039a(0x21b)][_0x49039a(0x148)]===0x0){const _0x3008ce=state[_0x49039a(0x29f)]['search']?_0x49039a(0x1fd)+state[_0x49039a(0x29f)][_0x49039a(0x1b5)]+'\x22.':'No\x20commits\x20found.';elements['commitCount']['textContent']=_0x3008ce,elements[_0x49039a(0x296)][_0x49039a(0x151)]=_0x49039a(0x14d)+Utils[_0x49039a(0x24a)](_0x3008ce)+_0x49039a(0x15e),elements[_0x49039a(0x298)][_0x49039a(0x203)]=!![],elements['nextBtn'][_0x49039a(0x203)]=!![];return;}const _0x13e5ef=state[_0x49039a(0x29f)][_0x49039a(0x2b6)]+0x1,_0x4d4c0c=state['pagination'][_0x49039a(0x2b6)]+state['commits'][_0x49039a(0x148)],_0x1db6c4=state['pagination'][_0x49039a(0x1b5)]?_0x13e5ef+'-'+_0x4d4c0c+_0x49039a(0x214)+state[_0x49039a(0x29f)]['search']+'\x22':_0x13e5ef+'-'+_0x4d4c0c;elements['commitCount'][_0x49039a(0x213)]=_0x1db6c4,state[_0x49039a(0x21b)]['forEach']((_0x4919b5,_0x307697)=>{const _0x1e3a9f=_0x49039a,_0x60e391=document[_0x1e3a9f(0x14e)]('li');_0x60e391[_0x1e3a9f(0x1a8)]='commit-item',_0x60e391[_0x1e3a9f(0x215)]['hash']=_0x4919b5[_0x1e3a9f(0x274)],_0x60e391[_0x1e3a9f(0x1d0)]=0x0,_0x60e391['setAttribute'](_0x1e3a9f(0x132),_0x1e3a9f(0x1ba)),_0x60e391[_0x1e3a9f(0x133)](_0x1e3a9f(0x237),_0x1e3a9f(0x1d1)+(_0x4919b5[_0x1e3a9f(0x265)]||_0x1e3a9f(0x283))+_0x1e3a9f(0x16e)+(_0x4919b5[_0x1e3a9f(0x174)]||'Unknown')),_0x60e391[_0x1e3a9f(0x229)][_0x1e3a9f(0x15d)]=_0x307697*0x19+'ms';const _0x2c5946=getAuthorInitials(_0x4919b5[_0x1e3a9f(0x174)]),_0x505d13=getAvatarColor(_0x4919b5[_0x1e3a9f(0x174)]||_0x1e3a9f(0x193)),_0x2b64c6=detectCommitType(_0x4919b5[_0x1e3a9f(0x265)]),_0x42b1e6=_0x2b64c6?_0x1e3a9f(0x243)+_0x2b64c6+'\x22>'+_0x2b64c6+_0x1e3a9f(0x171):'';_0x60e391[_0x1e3a9f(0x151)]=_0x1e3a9f(0x275)+Utils[_0x1e3a9f(0x24a)](truncateMessage(_0x4919b5['message']||_0x1e3a9f(0x283),0x50))+'</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22commit-meta-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22commit-author-chip\x22\x20style=\x22--avatar-color:\x20'+_0x505d13+_0x1e3a9f(0x240)+_0x2c5946+_0x1e3a9f(0x23f)+Utils[_0x1e3a9f(0x24a)](_0x4919b5[_0x1e3a9f(0x174)]||_0x1e3a9f(0x193))+_0x1e3a9f(0x12e)+Utils[_0x1e3a9f(0x2af)](_0x4919b5['date'])+_0x1e3a9f(0x1d4)+_0x4919b5[_0x1e3a9f(0x16a)]+_0x1e3a9f(0x17e)+(_0x4919b5[_0x1e3a9f(0x27a)]?_0x1e3a9f(0x2c6):'')+_0x1e3a9f(0x267)+_0x42b1e6+_0x1e3a9f(0x21a),_0x60e391['addEventListener'](_0x1e3a9f(0x13a),_0x22684b=>{const _0x4b8cee=_0x1e3a9f;(_0x22684b[_0x4b8cee(0x2aa)]==='Enter'||_0x22684b[_0x4b8cee(0x2aa)]==='\x20')&&(_0x22684b['preventDefault'](),selectCommit(_0x4919b5[_0x4b8cee(0x274)]));}),elements[_0x1e3a9f(0x296)][_0x1e3a9f(0x186)](_0x60e391);}),elements['prevBtn'][_0x49039a(0x203)]=state[_0x49039a(0x29f)]['offset']===0x0,elements[_0x49039a(0x29e)]['disabled']=!state[_0x49039a(0x29f)][_0x49039a(0x14b)],highlightSelectedCommit();}function getAuthorInitials(_0x48d083){const _0x54d70c=_0x5299df;if(!_0x48d083)return'?';const _0x235e2d=_0x48d083[_0x54d70c(0x26c)]()[_0x54d70c(0x1dd)](/\s+/);if(_0x235e2d[_0x54d70c(0x148)]===0x1)return _0x235e2d[0x0][_0x54d70c(0x13e)](0x0)[_0x54d70c(0x1e3)]();return(_0x235e2d[0x0][_0x54d70c(0x13e)](0x0)+_0x235e2d[_0x235e2d[_0x54d70c(0x148)]-0x1][_0x54d70c(0x13e)](0x0))[_0x54d70c(0x1e3)]();}function getAvatarColor(_0x18b067){const _0x2c7a12=_0x5299df;let _0x32efaf=0x0;for(let _0x3f3ce7=0x0;_0x3f3ce7<_0x18b067[_0x2c7a12(0x148)];_0x3f3ce7++){_0x32efaf=_0x18b067[_0x2c7a12(0x15b)](_0x3f3ce7)+((_0x32efaf<<0x5)-_0x32efaf);}const _0x5e5a57=Math[_0x2c7a12(0x221)](_0x32efaf%0x168);return _0x2c7a12(0x1ec)+_0x5e5a57+_0x2c7a12(0x2bf);}function truncateMessage(_0x195b32,_0x555aeb){const _0x591726=_0x5299df;if(!_0x195b32)return'';const _0x1f8123=_0x195b32['split']('\x0a')[0x0];if(_0x1f8123[_0x591726(0x148)]<=_0x555aeb)return _0x1f8123;return _0x1f8123[_0x591726(0x1e5)](0x0,_0x555aeb-0x3)+_0x591726(0x22e);}function renderCommitDetail(){const _0x4bd91e=_0x5299df;if(!state[_0x4bd91e(0x18b)]||!state[_0x4bd91e(0x18b)][_0x4bd91e(0x20f)]){resetCommitDetail();return;}const _0x52daf4=state[_0x4bd91e(0x18b)][_0x4bd91e(0x20f)];elements[_0x4bd91e(0x147)]['textContent']=_0x52daf4[_0x4bd91e(0x265)]||'No\x20message',elements[_0x4bd91e(0x14c)]['textContent']=''+(_0x52daf4['author']||_0x4bd91e(0x193))+(_0x52daf4[_0x4bd91e(0x1b9)]?'\x20('+_0x52daf4[_0x4bd91e(0x1b9)]+')':''),elements['commitDate']['textContent']=formatDate(_0x52daf4[_0x4bd91e(0x2c0)]),elements[_0x4bd91e(0x29c)][_0x4bd91e(0x213)]=_0x52daf4[_0x4bd91e(0x274)];const _0x70d375=state[_0x4bd91e(0x27d)]==='remote';elements[_0x4bd91e(0x217)]&&(elements[_0x4bd91e(0x217)][_0x4bd91e(0x22c)]=_0x70d375);if(elements[_0x4bd91e(0x27b)]){const _0x53819e=getProviderCommitUrl(_0x52daf4[_0x4bd91e(0x274)]);_0x53819e&&_0x70d375?(elements[_0x4bd91e(0x27b)][_0x4bd91e(0x22c)]=![],elements[_0x4bd91e(0x27b)]['href']=_0x53819e,elements[_0x4bd91e(0x27b)][_0x4bd91e(0x213)]=_0x4bd91e(0x219)+getProviderDisplayName()):elements[_0x4bd91e(0x27b)]['hidden']=!![];}const _0x416d7c=_0x52daf4[_0x4bd91e(0x1a7)]||[];_0x416d7c[_0x4bd91e(0x148)]>0x1?(elements[_0x4bd91e(0x21f)][_0x4bd91e(0x22c)]=![],elements[_0x4bd91e(0x1a0)]['innerHTML']='',_0x416d7c[_0x4bd91e(0x1ca)]((_0x340248,_0x36f2ce)=>{const _0x1d7564=_0x4bd91e,_0x5cd804=document[_0x1d7564(0x14e)]('option');_0x5cd804[_0x1d7564(0x161)]=String(_0x36f2ce+0x1),_0x5cd804['textContent']=_0x1d7564(0x2bd)+(_0x36f2ce+0x1)+_0x1d7564(0x2cb)+_0x340248[_0x1d7564(0x27f)](0x0,0x7),elements['mainlineSelect'][_0x1d7564(0x186)](_0x5cd804);})):elements[_0x4bd91e(0x21f)][_0x4bd91e(0x22c)]=!![];const _0x4a7235=parsePatchContent(state[_0x4bd91e(0x18b)][_0x4bd91e(0x1d6)]||'');state['commitDetail']['files']=_0x4a7235;const _0x9c986a=calculateDiffStats(_0x4a7235);elements[_0x4bd91e(0x2a5)]['innerHTML']='\x0a\x20\x20\x20\x20<span\x20class=\x22diff-stat-files\x22>'+_0x9c986a['files']+_0x4bd91e(0x18a)+(_0x9c986a[_0x4bd91e(0x1de)]===0x1?'':'s')+_0x4bd91e(0x178)+_0x9c986a[_0x4bd91e(0x12a)]+'</span>\x0a\x20\x20\x20\x20<span\x20class=\x22diff-stat-del\x22>-'+_0x9c986a[_0x4bd91e(0x1bd)]+_0x4bd91e(0x184),elements[_0x4bd91e(0x26f)]&&(elements[_0x4bd91e(0x26f)][_0x4bd91e(0x213)]=_0x9c986a[_0x4bd91e(0x1de)]+_0x4bd91e(0x18a)+(_0x9c986a[_0x4bd91e(0x1de)]===0x1?'':'s')),renderCommitDiff();}function renderCommitDiff(){const _0x1ad887=_0x5299df;if(!state[_0x1ad887(0x18b)]||!elements[_0x1ad887(0x167)])return;const _0x86476c=state['commitDetail'][_0x1ad887(0x1de)]||parsePatchContent(state[_0x1ad887(0x18b)][_0x1ad887(0x1d6)]||'');if(_0x86476c['length']===0x0){elements[_0x1ad887(0x167)][_0x1ad887(0x151)]=_0x1ad887(0x135);return;}const _0x48df94=_0x1ad887(0x1f9)+state[_0x1ad887(0x18b)]['commit']['hash'],_0x37255d=state[_0x1ad887(0x22a)]===_0x1ad887(0x1dd)?renderSplitDiff(_0x86476c,_0x48df94):renderUnifiedDiff(_0x86476c,_0x48df94);elements['diffContainer'][_0x1ad887(0x151)]=_0x37255d,bindDiffToggleHandlers(_0x48df94);}function resetCommitDetail(){const _0x119b17=_0x5299df;state['selectedCommit']=null,state['commitDetail']=null,elements['placeholder'][_0x119b17(0x22c)]=![],elements['detailPanel'][_0x119b17(0x22c)]=!![];}function getSelectedRepoObject(){const _0x5e29ec=_0x5299df;return state[_0x5e29ec(0x12d)]['find'](_0xa782=>_0xa782['name']===state[_0x5e29ec(0x1c2)])||null;}function getProviderDisplayName(){const _0x232d60=_0x5299df,_0x14182d=getSelectedRepoObject(),_0x4077d1=_0x14182d?.[_0x232d60(0x292)]?.[_0x232d60(0x17a)]()||'';if(_0x4077d1['includes'](_0x232d60(0x2a3))||_0x4077d1[_0x232d60(0x175)](_0x232d60(0x1f1)))return _0x232d60(0x1f3);else{if(_0x4077d1[_0x232d60(0x175)]('gitlab.com')||_0x4077d1[_0x232d60(0x175)](_0x232d60(0x1ea)))return'GitLab';else{if(_0x4077d1[_0x232d60(0x175)](_0x232d60(0x150))||_0x4077d1['includes'](_0x232d60(0x1b3)))return _0x232d60(0x165);else{if(_0x4077d1[_0x232d60(0x175)](_0x232d60(0x2a1))||_0x4077d1[_0x232d60(0x175)](_0x232d60(0x185)))return'Azure\x20DevOps';}}}return'Provider';}function getProviderCommitUrl(_0x39e67c){const _0x3ad5d9=_0x5299df,_0xea9a49=getSelectedRepoObject();if(!_0xea9a49?.[_0x3ad5d9(0x292)])return null;const _0x36f5b6=_0xea9a49['url'][_0x3ad5d9(0x138)](/\.git$/,''),_0x53607b=_0x36f5b6[_0x3ad5d9(0x17a)]();if(_0x53607b[_0x3ad5d9(0x175)](_0x3ad5d9(0x2cf))||_0x53607b['includes'](_0x3ad5d9(0x1ea)))return _0x36f5b6+'/-/commit/'+_0x39e67c;else{if(_0x53607b[_0x3ad5d9(0x175)](_0x3ad5d9(0x150))||_0x53607b[_0x3ad5d9(0x175)](_0x3ad5d9(0x1b3)))return _0x36f5b6+_0x3ad5d9(0x19c)+_0x39e67c;}return _0x36f5b6+_0x3ad5d9(0x289)+_0x39e67c;}function handleSearchInput(_0x33be07){const _0x4f9ee6=_0x5299df,_0x317004=_0x33be07[_0x4f9ee6(0x176)]['value'][_0x4f9ee6(0x26c)]();elements[_0x4f9ee6(0x222)][_0x4f9ee6(0x22c)]=!_0x317004,searchTimer&&clearTimeout(searchTimer),searchTimer=setTimeout(()=>{const _0x59a846=_0x4f9ee6;state[_0x59a846(0x29f)]['search']=_0x317004,state['pagination']['offset']=0x0,loadHistory();},SEARCH_DEBOUNCE_MS);}function clearSearch(){const _0x55381c=_0x5299df;elements[_0x55381c(0x29d)][_0x55381c(0x161)]='',elements['clearSearchBtn']['hidden']=!![],state['pagination'][_0x55381c(0x1b5)]='',state[_0x55381c(0x29f)][_0x55381c(0x2b6)]=0x0,loadHistory();}function changePage(_0x1ec4fc){const _0x376d81=_0x5299df,_0xb823ba=state[_0x376d81(0x29f)][_0x376d81(0x2b6)]+_0x1ec4fc*state[_0x376d81(0x29f)][_0x376d81(0x140)];if(_0xb823ba<0x0)return;state[_0x376d81(0x29f)][_0x376d81(0x2b6)]=_0xb823ba,loadHistory({'keepSelection':![]});}async function handleCopyHash(){const _0x401fed=_0x5299df;if(!state[_0x401fed(0x18b)]?.['commit']?.[_0x401fed(0x274)])return;const _0xb239e3=await Utils[_0x401fed(0x2bb)](state[_0x401fed(0x18b)][_0x401fed(0x20f)][_0x401fed(0x274)]);if(_0xb239e3)Utils[_0x401fed(0x2a7)](_0x401fed(0x2c3));}async function handleRevertCommit(){const _0x5558d5=_0x5299df;if(!state[_0x5558d5(0x18b)]?.[_0x5558d5(0x20f)]?.[_0x5558d5(0x274)])return;const _0x4754d2=state[_0x5558d5(0x18b)]['commit'],_0x44dcdd=_0x5558d5(0x1cd)+_0x4754d2[_0x5558d5(0x16a)]+_0x5558d5(0x1f0),_0x251e02=await ConfirmDialog[_0x5558d5(0x1c5)]({'title':_0x5558d5(0x256),'message':_0x44dcdd,'confirmText':_0x5558d5(0x277),'cancelText':_0x5558d5(0x287),'danger':!![]});if(!_0x251e02)return;try{const _0x22cb23={};_0x4754d2[_0x5558d5(0x1a7)]&&_0x4754d2[_0x5558d5(0x1a7)]['length']>0x1&&(_0x22cb23[_0x5558d5(0x26a)]=elements['mainlineSelect']['value']||'1'),await API[_0x5558d5(0x20a)](state[_0x5558d5(0x209)],state['selectedRepo'],_0x4754d2[_0x5558d5(0x274)],_0x22cb23),Utils[_0x5558d5(0x2a7)](_0x5558d5(0x2c2)),state['pagination'][_0x5558d5(0x2b6)]=0x0,await loadHistory({'keepSelection':![]});}catch(_0x2cac3f){Utils[_0x5558d5(0x19b)](_0x2cac3f['message']||'Failed\x20to\x20revert\x20commit');}}function parsePatchContent(_0x44b35a){const _0x5c101e=_0x5299df,_0xc3e537=[],_0x177443=_0x44b35a[_0x5c101e(0x1dd)]('\x0a');let _0x40c41b=null,_0x1c2d2c=null;for(const _0x5283ac of _0x177443){if(_0x5283ac[_0x5c101e(0x1ac)](_0x5c101e(0x2ce))){_0x40c41b&&_0x1c2d2c&&_0x40c41b[_0x5c101e(0x226)][_0x5c101e(0x247)](_0x1c2d2c);_0x40c41b&&_0xc3e537[_0x5c101e(0x247)](_0x40c41b);const _0x1a042a=_0x5283ac['match'](/diff --git a\/(.+?) b\/(.+)/);_0x40c41b={'oldPath':_0x1a042a?_0x1a042a[0x1]:'','newPath':_0x1a042a?_0x1a042a[0x2]:'','hunks':[],'isDeleted':![]},_0x1c2d2c=null;}else{if(_0x5283ac[_0x5c101e(0x1ac)](_0x5c101e(0x1cb))&&_0x40c41b)_0x40c41b[_0x5c101e(0x249)]=!![];else{if(_0x5283ac[_0x5c101e(0x1ac)]('@@'))_0x1c2d2c&&_0x40c41b&&_0x40c41b['hunks'][_0x5c101e(0x247)](_0x1c2d2c),_0x1c2d2c={'header':_0x5283ac,'lines':[]};else _0x1c2d2c&&_0x1c2d2c[_0x5c101e(0x2ae)][_0x5c101e(0x247)](_0x5283ac);}}}return _0x40c41b&&_0x1c2d2c&&_0x40c41b[_0x5c101e(0x226)][_0x5c101e(0x247)](_0x1c2d2c),_0x40c41b&&_0xc3e537[_0x5c101e(0x247)](_0x40c41b),_0xc3e537;}function parseHunkHeader(_0x145b99){const _0x452051=_0x5299df,_0x153056=_0x145b99[_0x452051(0x25b)](/@@ -(\d+),?\d* \+(\d+),?\d* @@/);if(_0x153056)return{'oldStart':parseInt(_0x153056[0x1],0xa),'newStart':parseInt(_0x153056[0x2],0xa)};return{'oldStart':0x1,'newStart':0x1};}function highlightDiffLine(_0x25b67a,_0x2018f2){const _0x1306a2=_0x5299df,_0x43285e=window['hljs']||(typeof hljs!==_0x1306a2(0x21d)?hljs:null);if(_0x43285e&&_0x2018f2)try{const _0x12414e=_0x43285e[_0x1306a2(0x16d)](_0x2018f2)?_0x2018f2:null;if(_0x12414e)return _0x43285e[_0x1306a2(0x282)](_0x25b67a,{'language':_0x12414e})[_0x1306a2(0x161)];}catch(_0x44c2f7){console[_0x1306a2(0x16f)](_0x1306a2(0x233),_0x44c2f7);}return Utils[_0x1306a2(0x24a)](_0x25b67a);}function computeWordDiff(_0x57e264,_0x3df979){const _0x8e7627=_0x5299df,_0x277ced=_0x1044a9=>{const _0x782ed8=_0x1b4a,_0x25c8a3=[];let _0x51b2ef='',_0x589210=![];for(let _0x1298a6=0x0;_0x1298a6<_0x1044a9[_0x782ed8(0x148)];_0x1298a6++){const _0x210850=_0x1044a9[_0x1298a6],_0x1c8fc4=/\s/[_0x782ed8(0x26e)](_0x210850);if(_0x51b2ef==='')_0x51b2ef=_0x210850,_0x589210=_0x1c8fc4;else _0x1c8fc4===_0x589210?_0x51b2ef+=_0x210850:(_0x25c8a3[_0x782ed8(0x247)](_0x51b2ef),_0x51b2ef=_0x210850,_0x589210=_0x1c8fc4);}return _0x51b2ef&&_0x25c8a3[_0x782ed8(0x247)](_0x51b2ef),_0x25c8a3;},_0x1dd2f3=_0x277ced(_0x57e264),_0x33b265=_0x277ced(_0x3df979),_0x58b4e1=_0x1dd2f3['length'],_0xed8b89=_0x33b265['length'],_0x21a601=Array(_0x58b4e1+0x1)[_0x8e7627(0x1af)](null)[_0x8e7627(0x187)](()=>Array(_0xed8b89+0x1)[_0x8e7627(0x1af)](0x0));for(let _0x3c3522=0x1;_0x3c3522<=_0x58b4e1;_0x3c3522++){for(let _0x52c457=0x1;_0x52c457<=_0xed8b89;_0x52c457++){_0x1dd2f3[_0x3c3522-0x1]===_0x33b265[_0x52c457-0x1]?_0x21a601[_0x3c3522][_0x52c457]=_0x21a601[_0x3c3522-0x1][_0x52c457-0x1]+0x1:_0x21a601[_0x3c3522][_0x52c457]=Math[_0x8e7627(0x18d)](_0x21a601[_0x3c3522-0x1][_0x52c457],_0x21a601[_0x3c3522][_0x52c457-0x1]);}}const _0x5a3bb8={'old':[],'new':[]};let _0x568c4d=_0x58b4e1,_0x4229a3=_0xed8b89;const _0x327adc=[],_0x44c3e2=[];while(_0x568c4d>0x0||_0x4229a3>0x0){if(_0x568c4d>0x0&&_0x4229a3>0x0&&_0x1dd2f3[_0x568c4d-0x1]===_0x33b265[_0x4229a3-0x1])_0x327adc[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x262),'text':_0x1dd2f3[_0x568c4d-0x1]}),_0x44c3e2[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x262),'text':_0x33b265[_0x4229a3-0x1]}),_0x568c4d--,_0x4229a3--;else{if(_0x4229a3>0x0&&(_0x568c4d===0x0||_0x21a601[_0x568c4d][_0x4229a3-0x1]>=_0x21a601[_0x568c4d-0x1][_0x4229a3]))_0x44c3e2[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x1b2),'text':_0x33b265[_0x4229a3-0x1]}),_0x4229a3--;else _0x568c4d>0x0&&(_0x327adc[_0x8e7627(0x1d7)]({'type':_0x8e7627(0x190),'text':_0x1dd2f3[_0x568c4d-0x1]}),_0x568c4d--);}}return _0x5a3bb8[_0x8e7627(0x234)]=_0x327adc,_0x5a3bb8['new']=_0x44c3e2,_0x5a3bb8;}function renderDiffLineWithWordHighlight(_0x35920a,_0x32ca5e,_0x4df554,_0x45e14a){const _0x19bbab=_0x5299df;if(!_0x32ca5e||_0x32ca5e[_0x19bbab(0x148)]===0x0)return highlightDiffLine(_0x35920a,_0x45e14a);let _0x321504='';const _0x4078eb=_0x4df554===_0x19bbab(0x1ee)?'diff-word-add':_0x19bbab(0x1d3),_0x1917d2=_0x4df554===_0x19bbab(0x1ee)?_0x19bbab(0x1b2):_0x19bbab(0x190);for(const _0x797d82 of _0x32ca5e){const _0x36c255=Utils[_0x19bbab(0x24a)](_0x797d82[_0x19bbab(0x25d)]);_0x797d82[_0x19bbab(0x15f)]===_0x1917d2?_0x321504+=_0x19bbab(0x16c)+_0x4078eb+'\x22>'+_0x36c255+_0x19bbab(0x171):_0x321504+=_0x36c255;}return _0x321504;}function getFileLanguage(_0x1675a6){const _0x2da1a5=_0x5299df,_0x536ef7=_0x1675a6[_0x2da1a5(0x1dd)]('.')[_0x2da1a5(0x279)]()[_0x2da1a5(0x17a)](),_0x4211fd={'js':_0x2da1a5(0x2c9),'jsx':_0x2da1a5(0x2c9),'ts':_0x2da1a5(0x28d),'tsx':_0x2da1a5(0x28d),'py':_0x2da1a5(0x23d),'java':_0x2da1a5(0x19a),'c':'c','cpp':_0x2da1a5(0x216),'cs':_0x2da1a5(0x1ce),'go':'go','rs':_0x2da1a5(0x1dc),'php':_0x2da1a5(0x2ab),'rb':_0x2da1a5(0x248),'html':'xml','css':_0x2da1a5(0x2c1),'json':_0x2da1a5(0x1a9),'yml':'yaml','yaml':'yaml','md':_0x2da1a5(0x195),'sh':_0x2da1a5(0x281),'bash':'bash'};return _0x4211fd[_0x536ef7]||null;}function calculateDiffStats(_0x2905d2){const _0x3c5a36=_0x5299df;let _0x9854a2=0x0,_0x4a61c8=0x0,_0x455d75=0x0;return _0x2905d2[_0x3c5a36(0x1ca)](_0x396160=>{const _0x3e5108=_0x3c5a36;let _0x5c89bc=0x0,_0x1b74e5=0x0;_0x396160['hunks'][_0x3e5108(0x1ca)](_0x22c836=>{const _0x50435e=_0x3e5108;_0x22c836['lines'][_0x50435e(0x1ca)](_0x497221=>{const _0x4d013c=_0x50435e;if(_0x497221[_0x4d013c(0x1ac)]('+'))_0x5c89bc+=0x1;else{if(_0x497221[_0x4d013c(0x1ac)]('-'))_0x1b74e5+=0x1;}});}),(_0x5c89bc+_0x1b74e5>0x0||_0x396160[_0x3e5108(0x249)])&&(_0x455d75+=0x1),_0x9854a2+=_0x5c89bc,_0x4a61c8+=_0x1b74e5;}),{'additions':_0x9854a2,'deletions':_0x4a61c8,'files':_0x455d75};}function renderUnifiedDiff(_0x43a743,_0x2e370b){const _0x1f2da7=_0x5299df;return _0x43a743[_0x1f2da7(0x187)]((_0x1f144f,_0x27087e)=>{const _0x2caefd=_0x1f2da7,_0x43318f=_0x1f144f[_0x2caefd(0x21c)]||_0x1f144f[_0x2caefd(0x257)]||'unknown',_0x5c5869=_0x2caefd(0x255)+_0x2e370b+'-'+_0x27087e,_0x2d4cf2=getFileLanguage(_0x43318f),{additions:_0x463ff9,deletions:_0x219a93}=calculateDiffStats([_0x1f144f]),_0x58b128=getCollapsedState(_0x2e370b,_0x43318f),_0x2c55af=getFileStatus(_0x1f144f,_0x463ff9,_0x219a93),_0xc9c6f9=_0x2c55af===_0x2caefd(0x268)?'A':_0x2c55af===_0x2caefd(0x162)?'D':'M',_0xd67f1e=_0x1f144f[_0x2caefd(0x226)][_0x2caefd(0x187)](_0x359e26=>{const _0x5641b5=_0x2caefd,{oldStart:_0x5e64cd,newStart:_0x416e32}=parseHunkHeader(_0x359e26[_0x5641b5(0x2c5)]);let _0x559b7f=_0x5e64cd,_0x235baf=_0x416e32;const _0x59783c=_0x359e26[_0x5641b5(0x2ae)]['map'](_0x40b421=>({'line':_0x40b421,'type':_0x40b421[_0x5641b5(0x1ac)]('+')?'add':_0x40b421[_0x5641b5(0x1ac)]('-')?'remove':_0x40b421[_0x5641b5(0x1ac)]('\x5c')?_0x5641b5(0x16b):_0x5641b5(0x218)}));let _0x1a7c2a=0x0;while(_0x1a7c2a<_0x59783c[_0x5641b5(0x148)]){if(_0x59783c[_0x1a7c2a][_0x5641b5(0x15f)]===_0x5641b5(0x231)){let _0x5668b4=_0x1a7c2a,_0x478e99=_0x1a7c2a;while(_0x478e99<_0x59783c[_0x5641b5(0x148)]&&_0x59783c[_0x478e99][_0x5641b5(0x15f)]===_0x5641b5(0x231))_0x478e99++;let _0x205bcb=_0x478e99,_0x3e14fb=_0x205bcb;while(_0x3e14fb<_0x59783c['length']&&_0x59783c[_0x3e14fb][_0x5641b5(0x15f)]===_0x5641b5(0x1ee))_0x3e14fb++;const _0x3334a4=_0x478e99-_0x5668b4,_0x50a790=_0x3e14fb-_0x205bcb,_0x18396e=Math[_0x5641b5(0x2b4)](_0x3334a4,_0x50a790);for(let _0x579678=0x0;_0x579678<_0x18396e;_0x579678++){const _0x469751=_0x59783c[_0x5668b4+_0x579678][_0x5641b5(0x1fe)][_0x5641b5(0x1e5)](0x1),_0x48e0f4=_0x59783c[_0x205bcb+_0x579678]['line'][_0x5641b5(0x1e5)](0x1),_0x23f251=computeWordDiff(_0x469751,_0x48e0f4);_0x59783c[_0x5668b4+_0x579678][_0x5641b5(0x24d)]=_0x23f251[_0x5641b5(0x234)],_0x59783c[_0x205bcb+_0x579678]['wordDiff']=_0x23f251[_0x5641b5(0x263)];}_0x1a7c2a=_0x3e14fb;}else _0x1a7c2a++;}const _0x1621ae=_0x59783c[_0x5641b5(0x187)](_0x2e18af=>{const _0x18424e=_0x5641b5,_0x4068f5=_0x2e18af[_0x18424e(0x1fe)];if(_0x4068f5[_0x18424e(0x1ac)]('+')){const _0x22972d=_0x4068f5[_0x18424e(0x1e5)](0x1),_0x730c63=_0x2e18af[_0x18424e(0x24d)]?renderDiffLineWithWordHighlight(_0x22972d,_0x2e18af[_0x18424e(0x24d)],'add',_0x2d4cf2):highlightDiffLine(_0x22972d,_0x2d4cf2),_0xb1ace0=_0x18424e(0x2c8)+_0x235baf+'</span><span\x20class=\x22diff-line-content\x22><span\x20class=\x22diff-prefix\x22>+</span>'+_0x730c63+_0x18424e(0x1d2);return _0x235baf+=0x1,_0xb1ace0;}if(_0x4068f5[_0x18424e(0x1ac)]('-')){const _0x418c02=_0x4068f5[_0x18424e(0x1e5)](0x1),_0x567e21=_0x2e18af[_0x18424e(0x24d)]?renderDiffLineWithWordHighlight(_0x418c02,_0x2e18af[_0x18424e(0x24d)],_0x18424e(0x231),_0x2d4cf2):highlightDiffLine(_0x418c02,_0x2d4cf2),_0x4ca71d=_0x18424e(0x24f)+_0x559b7f+_0x18424e(0x144)+_0x567e21+'</span></div>';return _0x559b7f+=0x1,_0x4ca71d;}if(_0x4068f5[_0x18424e(0x1ac)]('\x5c'))return _0x18424e(0x180)+Utils['escapeHtml'](_0x4068f5)+_0x18424e(0x1d2);const _0x440ef9=_0x4068f5[_0x18424e(0x1ac)]('\x20')?_0x4068f5[_0x18424e(0x1e5)](0x1):_0x4068f5,_0x182c99=highlightDiffLine(_0x440ef9,_0x2d4cf2),_0x1a9d22='<div\x20class=\x22diff-line\x20diff-context\x22><span\x20class=\x22diff-line-num\x20diff-line-num-old\x22>'+_0x559b7f+'</span><span\x20class=\x22diff-line-num\x20diff-line-num-new\x22>'+_0x235baf+_0x18424e(0x2a2)+_0x182c99+_0x18424e(0x1d2);return _0x559b7f+=0x1,_0x235baf+=0x1,_0x1a9d22;})[_0x5641b5(0x142)]('');return _0x5641b5(0x1e1)+Utils['escapeHtml'](_0x359e26[_0x5641b5(0x2c5)])+_0x5641b5(0x244)+_0x1621ae+_0x5641b5(0x244);})[_0x2caefd(0x142)](''),_0x582261=_0xd67f1e||'<div\x20class=\x22diff-hunk\x22><div\x20class=\x22diff-hunk-header\x22>No\x20textual\x20diff\x20available</div></div>';return _0x2caefd(0x18c)+_0x5c5869+_0x2caefd(0x2a8)+_0x5c5869+'\x22\x20data-file-name=\x22'+Utils[_0x2caefd(0x24a)](_0x43318f)+_0x2caefd(0x22d)+_0x2c55af+'\x22>'+_0xc9c6f9+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22file-diff-name\x22>'+Utils[_0x2caefd(0x24a)](_0x43318f)+_0x2caefd(0x272)+_0x463ff9+_0x2caefd(0x225)+_0x219a93+_0x2caefd(0x183)+_0x5c5869+'\x22\x20data-collapsed=\x22'+_0x58b128+_0x2caefd(0x220)+(_0x58b128?_0x2caefd(0x25f):'Collapse')+_0x2caefd(0x239)+(_0x58b128?_0x2caefd(0x260):'')+'\x22\x20id=\x22'+_0x5c5869+'\x22>'+_0x582261+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderSplitDiff(_0x4c8b4c,_0x414cdc){const _0x1e5721=_0x5299df;return _0x4c8b4c[_0x1e5721(0x187)]((_0xb51e63,_0x5b77cb)=>{const _0x2ef2c8=_0x1e5721,_0x8e7d45=_0xb51e63['newPath']||_0xb51e63[_0x2ef2c8(0x257)]||_0x2ef2c8(0x241),_0x1192af=_0x2ef2c8(0x255)+_0x414cdc+'-'+_0x5b77cb,_0x314a3c=getFileLanguage(_0x8e7d45),{additions:_0x15e987,deletions:_0x322746}=calculateDiffStats([_0xb51e63]),_0x311367=getCollapsedState(_0x414cdc,_0x8e7d45),_0x19a967=getFileStatus(_0xb51e63,_0x15e987,_0x322746),_0x3b7429=_0x19a967===_0x2ef2c8(0x268)?'A':_0x19a967===_0x2ef2c8(0x162)?'D':'M',_0x9a6edf=_0xb51e63[_0x2ef2c8(0x226)]['map'](_0x17afe3=>{const _0x29d04=_0x2ef2c8,{oldStart:_0x164e55,newStart:_0x54b7e2}=parseHunkHeader(_0x17afe3[_0x29d04(0x2c5)]);let _0x49ba45=_0x164e55,_0x560e69=_0x54b7e2;const _0x406b74=[],_0x1deb54=_0x17afe3[_0x29d04(0x2ae)];let _0x410bda=0x0;while(_0x410bda<_0x1deb54[_0x29d04(0x148)]){const _0x46508b=_0x1deb54[_0x410bda];if(_0x46508b[_0x29d04(0x1ac)]('\x20')){const _0x244a08=_0x46508b[_0x29d04(0x1e5)](0x1);_0x406b74[_0x29d04(0x247)](renderSplitRow({'type':_0x29d04(0x218),'lineNum':_0x49ba45,'content':_0x244a08},{'type':_0x29d04(0x218),'lineNum':_0x560e69,'content':_0x244a08},_0x314a3c)),_0x49ba45+=0x1,_0x560e69+=0x1,_0x410bda+=0x1;continue;}if(_0x46508b[_0x29d04(0x1ac)]('-')){const _0x6b074f=[];while(_0x410bda<_0x1deb54[_0x29d04(0x148)]&&_0x1deb54[_0x410bda][_0x29d04(0x1ac)]('-')){_0x6b074f[_0x29d04(0x247)](_0x1deb54[_0x410bda][_0x29d04(0x1e5)](0x1)),_0x410bda+=0x1;}const _0xd784d9=[];let _0x30545f=_0x410bda;while(_0x30545f<_0x1deb54[_0x29d04(0x148)]&&_0x1deb54[_0x30545f]['startsWith']('+')){_0xd784d9[_0x29d04(0x247)](_0x1deb54[_0x30545f][_0x29d04(0x1e5)](0x1)),_0x30545f+=0x1;}const _0x13969d=Math[_0x29d04(0x18d)](_0x6b074f[_0x29d04(0x148)],_0xd784d9[_0x29d04(0x148)]);for(let _0x42646b=0x0;_0x42646b<_0x13969d;_0x42646b++){const _0x3e494a=_0x6b074f[_0x42646b]?{'type':'remove','lineNum':_0x49ba45++,'content':_0x6b074f[_0x42646b]}:{'type':'empty','lineNum':'','content':''},_0x4c2cc4=_0xd784d9[_0x42646b]?{'type':_0x29d04(0x1ee),'lineNum':_0x560e69++,'content':_0xd784d9[_0x42646b]}:{'type':_0x29d04(0x1db),'lineNum':'','content':''};_0x406b74[_0x29d04(0x247)](renderSplitRow(_0x3e494a,_0x4c2cc4,_0x314a3c));}_0x410bda=_0x30545f;continue;}if(_0x46508b[_0x29d04(0x1ac)]('+')){const _0x2d54e8=[];while(_0x410bda<_0x1deb54[_0x29d04(0x148)]&&_0x1deb54[_0x410bda]['startsWith']('+')){_0x2d54e8[_0x29d04(0x247)](_0x1deb54[_0x410bda][_0x29d04(0x1e5)](0x1)),_0x410bda+=0x1;}_0x2d54e8[_0x29d04(0x1ca)](_0x1267c0=>{const _0x579471=_0x29d04;_0x406b74[_0x579471(0x247)](renderSplitRow({'type':_0x579471(0x1db),'lineNum':'','content':''},{'type':_0x579471(0x1ee),'lineNum':_0x560e69++,'content':_0x1267c0},_0x314a3c));});continue;}if(_0x46508b[_0x29d04(0x1ac)]('\x5c')){_0x406b74[_0x29d04(0x247)](renderSplitRow({'type':_0x29d04(0x16b),'lineNum':'','content':_0x46508b},{'type':_0x29d04(0x16b),'lineNum':'','content':_0x46508b},_0x314a3c)),_0x410bda+=0x1;continue;}_0x410bda+=0x1;}const _0x32e8f5=_0x406b74['join']('')||_0x29d04(0x129);return _0x29d04(0x1ed)+Utils[_0x29d04(0x24a)](_0x17afe3[_0x29d04(0x2c5)])+_0x29d04(0x224)+_0x32e8f5+_0x29d04(0x164);})[_0x2ef2c8(0x142)](''),_0x28d8f1=_0x9a6edf||'<div\x20class=\x22diff-hunk\x22><div\x20class=\x22diff-hunk-header\x22>No\x20textual\x20diff\x20available</div></div>';return _0x2ef2c8(0x18c)+_0x1192af+_0x2ef2c8(0x2a8)+_0x1192af+'\x22\x20data-file-name=\x22'+Utils[_0x2ef2c8(0x24a)](_0x8e7d45)+_0x2ef2c8(0x22d)+_0x19a967+'\x22>'+_0x3b7429+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22file-diff-name\x22>'+Utils['escapeHtml'](_0x8e7d45)+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22file-diff-stat\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22diff-add\x22>+'+_0x15e987+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22diff-del\x22>-'+_0x322746+_0x2ef2c8(0x183)+_0x1192af+_0x2ef2c8(0x1f2)+_0x311367+_0x2ef2c8(0x220)+(_0x311367?_0x2ef2c8(0x25f):'Collapse')+_0x2ef2c8(0x239)+(_0x311367?_0x2ef2c8(0x260):'')+_0x2ef2c8(0x15a)+_0x1192af+'\x22>'+_0x28d8f1+_0x2ef2c8(0x1aa);})['join']('');}function renderSplitRow(_0x2c48d0,_0x421089,_0x45867a){const _0x2f4c39=_0x5299df;return _0x2f4c39(0x1be)+renderSplitCell(_0x2c48d0,_0x45867a)+_0x2f4c39(0x28f)+renderSplitCell(_0x421089,_0x45867a)+_0x2f4c39(0x1a2);}function renderSplitCell(_0xab954c,_0x204af9){const _0x47a315=_0x5299df,_0x3addaf=_0x47a315(0x1b8)+_0xab954c[_0x47a315(0x15f)],_0x4b5c1d=_0xab954c[_0x47a315(0x1c1)]===0x0?'':_0xab954c[_0x47a315(0x1c1)];let _0x387fde=_0x47a315(0x17c);if(_0xab954c[_0x47a315(0x15f)]===_0x47a315(0x16b))_0x387fde=Utils['escapeHtml'](_0xab954c[_0x47a315(0x134)]);else _0xab954c[_0x47a315(0x15f)]!=='empty'&&(_0x387fde=highlightDiffLine(_0xab954c[_0x47a315(0x134)],_0x204af9));return _0x47a315(0x198)+_0x3addaf+_0x47a315(0x201)+_0x4b5c1d+_0x47a315(0x1f7)+_0x387fde+_0x47a315(0x27e);}function bindDiffToggleHandlers(_0x13dc15){const _0x3633f8=_0x5299df,_0x2c2143=elements['diffContainer']['querySelectorAll'](_0x3633f8(0x1e6));_0x2c2143[_0x3633f8(0x1ca)](_0x277e03=>{const _0x66700b=_0x3633f8;_0x277e03['addEventListener'](_0x66700b(0x299),_0x3555a6=>{const _0x3cbe12=_0x66700b;if(_0x3555a6[_0x3cbe12(0x176)][_0x3cbe12(0x1fc)](_0x3cbe12(0x2ba)))return;const _0xab3834=_0x277e03[_0x3cbe12(0x215)]['diffId'];toggleDiff(_0xab3834,_0x277e03[_0x3cbe12(0x215)][_0x3cbe12(0x1d8)],_0x13dc15);});});const _0x2525d3=elements[_0x3633f8(0x167)][_0x3633f8(0x246)]('.file-diff-toggle-btn');_0x2525d3['forEach'](_0x1672a3=>{_0x1672a3['addEventListener']('click',_0x26108e=>{const _0x52eb8b=_0x1b4a;_0x26108e[_0x52eb8b(0x2b0)]();const _0x3faaff=elements[_0x52eb8b(0x167)][_0x52eb8b(0x1c3)](_0x52eb8b(0x13b)+_0x1672a3[_0x52eb8b(0x215)]['diffId']+'\x22]'),_0x7ef087=_0x3faaff?.[_0x52eb8b(0x215)][_0x52eb8b(0x1d8)]||'';toggleDiff(_0x1672a3[_0x52eb8b(0x215)][_0x52eb8b(0x2be)],_0x7ef087,_0x13dc15);});});}function toggleDiff(_0xc6835,_0x5de072,_0x46e35b){const _0x2f34c3=_0x5299df,_0xb96c1a=document[_0x2f34c3(0x1ff)](_0xc6835),_0x20972e=elements[_0x2f34c3(0x167)]['querySelector'](_0x2f34c3(0x13b)+_0xc6835+'\x22]'),_0x19ed39=_0x20972e?.[_0x2f34c3(0x1c3)](_0x2f34c3(0x2ba));if(!_0xb96c1a)return;const _0x5204d6=_0xb96c1a['classList'][_0x2f34c3(0x20b)]('collapsed');_0x19ed39&&(_0x19ed39[_0x2f34c3(0x215)][_0x2f34c3(0x260)]=String(_0x5204d6),_0x19ed39[_0x2f34c3(0x133)](_0x2f34c3(0x237),_0x5204d6?'Expand':_0x2f34c3(0x1ad)));const _0x1a5af1=getStorageKey(_0x46e35b,_0x5de072);localStorage[_0x2f34c3(0x238)](_0x1a5af1,String(_0x5204d6));}function setAllDiffCollapsed(_0x2f1c2c){const _0x3ec1be=_0x5299df;if(!state[_0x3ec1be(0x18b)]?.[_0x3ec1be(0x20f)]?.[_0x3ec1be(0x274)])return;const _0x1f56fb='git-history-'+state[_0x3ec1be(0x18b)][_0x3ec1be(0x20f)]['hash'],_0x407fe3=elements[_0x3ec1be(0x167)][_0x3ec1be(0x246)](_0x3ec1be(0x2ca));_0x407fe3[_0x3ec1be(0x1ca)](_0x4d7489=>{const _0x1a85a3=_0x3ec1be;_0x4d7489[_0x1a85a3(0x28e)][_0x1a85a3(0x20b)](_0x1a85a3(0x260),_0x2f1c2c);const _0x3f28ec=elements[_0x1a85a3(0x167)][_0x1a85a3(0x1c3)]('.file-diff-header[data-diff-id=\x22'+_0x4d7489['id']+'\x22]'),_0x35e1c4=_0x3f28ec?.[_0x1a85a3(0x1c3)](_0x1a85a3(0x2ba)),_0x5b1d4e=_0x3f28ec?.[_0x1a85a3(0x215)][_0x1a85a3(0x1d8)]||'';_0x35e1c4&&(_0x35e1c4['dataset'][_0x1a85a3(0x260)]=String(_0x2f1c2c),_0x35e1c4[_0x1a85a3(0x133)](_0x1a85a3(0x237),_0x2f1c2c?'Expand':_0x1a85a3(0x1ad))),_0x5b1d4e&&localStorage['setItem'](getStorageKey(_0x1f56fb,_0x5b1d4e),String(_0x2f1c2c));});}function getStorageKey(_0x42a4bc,_0x2d1e15){return _0x42a4bc+'-'+safeBase64(_0x2d1e15);}function _0x3be2(){const _0x1a99c2=['zxnJyxbLshrTBa','zMLSzu5HDKXPC3q','Cgf0y2G','D29YzerPzMy','DgLTzxn0yw1W','pgrPDIbJBgfZCZ0IzgLMzI1SAw5LigrPzMyTCMvTB3zLiJ48C3bHBIbJBgfZCZ0IzgLMzI1SAw5Llw51BsbKAwzMlwXPBMuTBNvTlw9Szci+','y29TBwL0lwnVDw50','mZa5mJCWm2TiAwjPDW','qwnJzxnZigrLBMLLza','Bg9HzgLUz0HPC3rVCNK','zNjVBq','zgLMzI0','uMv2zxj0ienVBw1PDa','B2XKugf0Aa','phnWyw4Gy2XHC3m9iMrLBci+lq','C2vSzwn0zwrdB21TAxq','y3vYCMvUDejYyw5JAa','Bwf0y2G','icHKzwzHDwX0kq','Dgv4Da','yNjHBMnOugLSBa','rxHWyw5K','y29SBgfWC2vK','CMv2zxj0lwj0BG','zxf1ywW','BMv3','CMvTB3rL','BwvZC2fNzq','zxHWyw5KqwXSqNrU','cIaGicaGicaG','ywrKzwq','cIaGica8BgKGy2XHC3m9iMnVBw1PDc1PDgvTignVBw1PDc1PDgvTlxnRzwXLDg9UiJ4kicaGicaGpgrPDIbJBgfZCZ0IC2TLBgv0B24GC2TLBgv0B24TBwvZC2fNzsi+pc9KAxy+cIaGicaGidXKAxyGy2XHC3m9iNnRzwXLDg9Ulw1LDgeIpGOGicaGicaGidXKAxyGy2XHC3m9iNnRzwXLDg9UihnRzwXLDg9Ulwf2yxrHCIi+pc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IC2TLBgv0B24GC2TLBgv0B24TDgv4Dci+pc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IC2TLBgv0B24GC2TLBgv0B24TDgv4Dc1ZAg9YDci+pc9KAxy+cIaGicaGidWVzgL2pGOGicaGpc9SAt4kica','BwfPBMXPBMu','y29TBwL0lxbSywnLAg9SzgvY','DhjPBq','vw5HyMXLihrVigXVywqGAgLZDg9YEs4','DgvZDa','zMLSzu5HDKnVDw50','y29WEuHHC2HcDg4','pc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjMAwXLlw5HDI1Uyw1LiIb0AxrSzt0I','pc9ZCgfUpGOGicaGicaGicaGica8C3bHBIbJBgfZCZ0IzMLSzs1KAwzMlxn0yxqIpGOGicaGicaGicaGicaGidXZCgfUignSyxnZpsjKAwzMlwfKzci+kW','zMLSzuLKEa','AgfZAa','cIaGicaGidXKAxyGy2XHC3m9iMnVBw1PDc1TzxnZywDLiJ4','yNjHBMnOtMfTzq','uMv2zxj0','BwfPBMXPBMuTC2vSzwn0','Cg9W','AxnnzxjNzq','DMLLD09UuhjVDMLKzxjcDg4','zgf0ys1ZB3vYy2uTAw5KAwnHDg9Y','zgf0yvnVDxjJzq','pc9ZCgfUpGOGicaGpc9KAxy+cIaG','C2XPy2u','C2vSzwn0zwrcCMfUy2G','yMfZAa','AgLNAgXPz2H0','tM8GBwvZC2fNzq','Bw9KAwzPzwq','C291CMnL','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIpJXSAw5LihGXpsiXmIiGEte9iJuIihGYpsiXmIiGEti9iJe5iI8+pgXPBMuGEde9iJuIihKXpsiXmIiGEdi9iJe5iIb5mJ0ImtiIlZ48l3n2zZ4','q2fUy2vS','lMnVBw1PDc1PDgvT','l2nVBw1PDc8','zMLSzs1UyxyTDg9Nz2XL','zgLMzI1ZDgf0CW','Aw1WBgvTzw50','DhLWzxnJCMLWDa','y2XHC3nmAxn0','cIaGicaGia','rMfPBgvKihrVigXVywqGCMvWB3nPDg9YAwvZ','ywn0AxzL','DxjS','tg9HzgLUzYbOAxn0B3j5lI4U','pg9WDgLVBIb2ywX1zt0IiJ5tzwXLy3qGyNjHBMnOpc9VChrPB24+','uMvZDg9YzsbKAwzMihbHBMvSicHfC2mGB3iGBsK','y29TBwL0tgLZDa','BNvTzxjPyW','ChjLDKj0BG','y2XPy2S','Bg9HzgLUz0nVBw1PDa','pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguTy2fYzci+tg9HzgLUzYbKAwzMlI4Upc9KAxy+','y29TBwL0sgfZAa','C2vHCMnOsw5WDxq','BMv4Dej0BG','CgfNAw5HDgLVBG','mI1KAwDPDa','zgv2lMf6DxjLlMnVBq','pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTy29UDgvUDci+ia','z2L0AhvIlMnVBq','icHJDxjYzw50kq','zgLMzLn0yxrZ','z2v0rw52AxjVBM1LBNq','C2HVD1n1y2nLC3m','iJ4kicaGicaGica8zgL2ignSyxnZpsjMAwXLlwrPzMyTAgvHzgvYiIbKyxrHlwrPzMyTAwq9iG','lMzPBguTBMf2lwnVBNrHAw5LCG','A2v5','CgHW','pc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjMAwXLlw5HDI1ZDgf0CYi+cIaGicaGicaGica','CMvMywn0B3i','BgLUzxm','zM9YBwf0uMvSyxrPDMvuAw1L','C3rVCfbYB3bHz2f0Aw9U','rMfPBgvKihrVigXVywqGyNjHBMnOzxm6','y29SBgfWC2uTywXSlwj0BG','yNvN','BwLU','neT5C0POBW','B2zMC2v0','zw52AxjVBM1LBNrZoMDPDa','cIaGicaGidXZDMCGy2XHC3m9iNnVDxjJzs1Py29UiIb3Awr0Ad0ImtqIigHLAwDODd0ImtqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIiGC3rYB2TLlwXPBMvJyxa9iNjVDw5KiIbZDhjVA2uTBgLUzwPVAw49iNjVDw5KiJ4kicaGicaGica8y2LYy2XLign4psiXmIiGy3K9iJeYiIbYpsiXmci+pc9JAxjJBgu+cIaGicaGicaGpgXPBMuGEde9iJiIihKXpsiXmIiGEdi9iJiYiIb5mJ0ImtiIpJWVBgLUzt4kicaGicaGica8Cgf0AcbKpsjnmtiGmMeXns4Zide1lJmGmcaWideGncaXmcaXns4Zide1lJmGmcaWideTncaXmcaXns4Zide1lJmGmcaWideTnc0XmcaXns4Zide1lJmGmcaWideGnc0XmhOIpJWVCgf0Ad4kicaGicaGpc9ZDMC+cIaGicaGifjLBw90zqOGicaG','pg9WDgLVBIb2ywX1zt0IiJ5tzwXLy3qGCMvWB3nPDg9YEtWVB3b0Aw9UpG','lMzPBguTzgLMzI10B2DNBguTyNrU','y29WEvrVq2XPCgjVyxjK','rw50zxi','ugfYzw50ia','zgLMzKLK','lca2nsuSidu1jsK','zgf0zq','y3nZ','q29TBwL0ihjLDMvYDgvK','q29TBwL0igHHC2GGy29WAwvK','zMLSzu5HDKnSB3nL','AgvHzgvY','phnWyw4Gy2XHC3m9iMnVBw1PDc10ywCIpK1LCMDLpc9ZCgfUpG','y29TBwL0lwrPzMy','pgrPDIbJBgfZCZ0IzgLMzI1SAw5LigrPzMyTywrKiJ48C3bHBIbJBgfZCZ0IzgLMzI1SAw5Llw51BsbKAwzMlwXPBMuTBNvTlw9Szci+pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTBNvTigrPzMyTBgLUzs1UDw0TBMv3iJ4','AMf2yxnJCMLWDa','lMzPBguTzgLMzI1JB250zw50','ic0G','zw52lxnLBgvJDa','C2HVD1rVyxn0','zgLMzIaTlwDPDa','z2L0BgfIlMnVBq','pgrPDIbJBgfZCZ0IzgLMzI1ODw5RiJ5oBYb0zxH0DwfSigrPzMyGyxzHAwXHyMXLpc9KAxy+','ywrKAxrPB25Z','phn2zYb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIpJXSAw5LihGXpsi1iIb5mt0ImtiIihGYpsiXosiGEti9iJeYiI8+pc9ZDMC+','ChjLDI1WywDLlwj0BG','CMvWB3m','cIaGicaGicaGpc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjJB21TAxqTDgLTzsi+','B3bLBG','yNjHBMnOlxnLBgvJDa','y29TBwL0lw1LC3nHz2u','CM9Szq','C2v0qxr0CMLIDxrL','y29UDgvUDa','pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguTy2fYzci+tM8Gy2HHBMDLCYbPBIb0AgLZignVBw1PDc48l2rPDJ4','yMX1CG','y2HVCMu','CMvWBgfJzq','Bg9HzgLUzW','A2v5zg93BG','lMzPBguTzgLMzI1OzwfKzxjBzgf0ys1KAwzMlwLKpsi','z2L0sgLZDg9YEujVzhK','C21VB3rO','y2HHCKf0','pg9WDgLVBIb2ywX1zt0IiJ5cCMfUy2GGBg9HzgLUzYbMywLSzwq8l29WDgLVBJ4','BgLTAxq','AhjLzG','AM9PBG','Bg9JywW','pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTBNvTigrPzMyTBgLUzs1UDw0TBMv3iJ48l3nWyw4+phnWyw4Gy2XHC3m9iMrPzMyTBgLUzs1JB250zw50iJ48C3bHBIbJBgfZCZ0IzgLMzI1WCMvMAxGIpI08l3nWyw4+','yNjHBMnOzxm','iIbKyxrHlwzPBguTBMfTzt0I','y29TBwL0twvZC2fNzq','BgvUz3rO','lNjLC3rVCMuTAwnVBG','CMvHzg1L','AgfZtw9Yzq','y29TBwL0qxv0Ag9Y','cIaGicaGidXSAsbJBgfZCZ0Iy29TBwL0lwXPC3qTzw1WDhKIpGOGicaGicaGidXKAxyGy2XHC3m9iMvTChr5lxn0yxrLlwLJB24IpGOGicaGicaGicaGphn2zYb3Awr0Ad0ImJqIigHLAwDODd0ImJqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIiGC3rYB2TLlwXPBMvJyxa9iNjVDw5KiIbZDhjVA2uTBgLUzwPVAw49iNjVDw5KiJ4kicaGicaGicaGicaGpgnPCMnSzsbJEd0ImtiIign5psiXmIiGCJ0ImtaIpJWVy2LYy2XLpGOGicaGicaGicaGica8BgLUzsb4mt0ImtiIihKXpsi4iIb4mJ0ImtiIihKYpsiXmIi+pc9SAw5LpGOGicaGicaGicaGica8BgLUzsb4mt0ImtiIihKXpsiXnIiGEdi9iJeYlJaXiIb5mJ0ImtyIpJWVBgLUzt4kicaGicaGicaGidWVC3zNpGOGicaGicaGidWVzgL2pGOGicaGicaGidXWpG','y3jLyxrLrwXLBwvUDa','C3rHCNq','yML0yNvJA2v0lM9YzW','Aw5Uzxjive1m','Aw5KzxGUAhrTBa','Aw5Zzxj0qMvMB3jL','lMzPBguTBMf2lwL0zw0','BMv4DfnPyMXPBMC','A2vLCfnLBgvJDgLVBG','y2XLyxiTC2vHCMnOlwj0BG','z2L0lwHPC3rVCNKTy29UDgvUDa','CgfYzw50tM9Kzq','iIbPzd0I','y2HHCKnVzgvbDa','Bwf0y2HLCW','yw5PBwf0Aw9UrgvSyxK','pc9WpGOGicaGica8l2XPpGOGicaG','DhLWzq','CMv0CNKTz2L0lwHPC3rVCNKTyNrU','DMfSDwu','zgvSzxrLza','z2L0lwHPC3rVCNKTzgLMzI12Awv3','pc9KAxy+cIaGicaGicaGpc9KAxy+cIaGicaGia','qML0yNvJA2v0','mZC1mZG1BLnYELfe','zgLMzKnVBNrHAw5LCG','y29TBwL0lxnLyxjJAa','yNjHBMnO','C2HVCNriyxnO','Bwv0yq','phnWyw4Gy2XHC3m9iG','z2v0tgfUz3vHz2u','igj5ia','zxjYB3i','nJq5oduWmhjXC0TouG','pc9ZCgfUpG','CMvWBW','Aw5WDxq','yxv0Ag9Y','Aw5JBhvKzxm','DgfYz2v0','y29TBwL0lwXPC3q','pc9ZCgfUpGOGicaGphnWyw4Gy2XHC3m9iMrPzMyTC3rHDc1ZzxbHCMf0B3iIpNW8l3nWyw4+cIaGica8C3bHBIbJBgfZCZ0IzgLMzI1ZDgf0lwfKzci+kW','qxjYB3DeB3DU','Dg9mB3DLCKnHC2u','z2v0q3vYCMvUDfvZzxi','jM5IC3a7','pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguTy2fYzci+vw5HyMXLihrVigXVywqGzgLMzI48l2rPDJ4','pc9ZCgfUpGOGicaGicaGia','mZy1mJCWngTLDgLbzW','pgrPDIbJBgfZCZ0IzgLMzI1SAw5LigrPzMyTBwv0ysi+phnWyw4Gy2XHC3m9iMrPzMyTBgLUzs1UDw0GzgLMzI1SAw5Llw51Bs1VBgqIpJWVC3bHBJ48C3bHBIbJBgfZCZ0IzgLMzI1SAw5Llw51BsbKAwzMlwXPBMuTBNvTlw5LDYi+pc9ZCgfUpJXZCgfUignSyxnZpsjKAwzMlwXPBMuTy29UDgvUDci+','z2L0lwHPC3rVCNKTBg9HzgLUzW','zxHWyw5KlwfSBc1IDg4','pc9ZCgfUpGOGicaGicaGicaGica8l3nWyw4+cIaGicaGicaGica8l2rPDJ4kicaGicaGicaGidXIDxr0B24Gy2XHC3m9iMzPBguTzgLMzI10B2DNBguTyNrUiIbKyxrHlwrPzMyTAwq9iG','pc9ZCgfUpGOGia','DMLZDwfSC3r1zgLVlMnVBq','yxbWzw5Kq2HPBgq','BwfW','nM1YsLrhBa','BMfTzq','igzPBgu','y29TBwL0rgv0ywLS','cIaGicaGidXKAxyGy2XHC3m9iMzPBguTzgLMzIiGAwq9iMzPBguT','Bwf4','zMLSzs1UyxyTy291BNq','lM1HEgLTAxPLlwLJB24','zgvSzxrL','Bg9HzgLUz0jYyw5JAgvZ','C3bHBG','vw5RBM93BG','Bwf4Aw1PEMvcDg4','BwfYA2rVD24','CMvWBY1ICMfUy2GTBMfTzq','zxjYB3jnzxnZywDL','cIaGica8zgL2ignSyxnZpsjZCgXPDc1KAwzMlwnLBgWG','ywrKrxzLBNrmAxn0zw5LCG','AMf2yq','C2HVD0vYCM9Y','l2nVBw1PDhmV','u2vSzwn0igeGCMvWB3nPDg9YEsb0BYbSB2fKigHPC3rVCNKU','odvev3vYvfK','r2L0igHPC3rVCNKGAw5PDgLHBgL6yxrPB24GzxjYB3i6','BwfPBMXPBMvtzwXLy3q','y29UDgfPBNm','cIaGica8l2rPDJ4kica','zw52AxjVBM1LBNrZ','cIaGicaGicaGpc9ZCgfUpGOGicaGica8l2XPpGOGicaG','zw52u2vSzwn0','DgL0Bgu','CgfYzw50CW','y2XHC3noyw1L','ANnVBG','pc9KAxy+cIaGicaGidWVzgL2pGOGicaG','rMfPBgvKihrVigXVywqGy29TBwL0igHPC3rVCNK','C3rHCNrZv2L0Aa','q29SBgfWC2u','Dhj1zq','zMLSBa','C2vSzwn0zwq','B3b0Aw9U','Aw5Zzxj0','yML0yNvJA2v0lG','y29SBgfWC2vbBgXcDg4','C2vHCMnO','zML4','zg9JDw1LBNrHDgLVBG','C3bSAxqT','zw1HAwW','yNv0Dg9U','AxnezwzHDwX0','lMzPBguTzgLMzG','zgvSzxrPB25Z','cIaGica8zgL2ignSyxnZpsjZCgXPDc1KAwzMlxjVDYi+cIaGicaGia','re9nq29UDgvUDeXVywrLza','pg9WDgLVBIb2ywX1zt0IiJ5mB2fKAw5NigjYyw5JAgvZlI4Upc9VChrPB24+','BgLUzu51Bq','C2vSzwn0zwrszxbV','CxvLCNLtzwXLy3rVCG','z2v0rw52AxjVBM1LBNrszxbVqNjHBMnOzxm','C2HVDW','CMvWBY1ZzwXLy3q','ChjLDMvUDerLzMf1Bhq','zw4Tvvm','zMLUza','zM9YrwfJAa','zgvSzxrLzcbMAwXLig1Vzgu','z2v0rw52AxjVBM1LBNrszxbVq29TBwL0','uMv2zxj0ignVBw1PDca','y3nOyxjW','C29Tzq','DgfIsw5KzxG','q29TBwL0oIa','pc9ZCgfUpJWVzgL2pG','zgLMzI13B3jKlxjLBw92zq','pc9ZCgfUpGOGicaGicaGidXZCgfUignSyxnZpsjJB21TAxqTC2HVCNqTAgfZAci+','yNjHBMnOu2vSzwn0','zgLMzG','Dw5ZAgLMDa','zMLSzu5HBwu','mtqWnJrgtNjbu1O','AxndDxjYzw50','zw1WDhK','CNvZDa','C3bSAxq','zMLSzxm','Axnoyu4','zgvMyxvSDejYyw5JAa','pgrPDIbJBgfZCZ0IzgLMzI1ODw5RiJ48zgL2ignSyxnZpsjKAwzMlwH1BMSTAgvHzgvYiJ4','rMfPBgvKihrVigXVywqGy29TBwL0igrLDgfPBhm','Dg9vChbLCKnHC2u','z2v0sxrLBq','C3vIC3rYAw5N','lMzPBguTzgLMzI1OzwfKzxi','zgLZCgf0y2HfDMvUDa','zMLSzu5HDLnPzgvIyxi','DMLLDY1VBI1WCM92AwrLCI1IDg4','z2L0BgfIlG','phnWyw4Gy2XHC3m9iMfKzci+kW','AhnSka','cIaGicaGicaGpgrPDIbJBgfZCZ0IzgLMzI1ODw5RiJ4kicaGicaGicaGidXKAxyGy2XHC3m9iMrPzMyTAhvUAY1OzwfKzxiIpG','ywrK','C2v0','pYbuAgLZihDPBgWGy3jLyxrLigeGBMv3ignVBw1PDcb0Agf0ihvUzg9LCYb0AgvZzsbJAgfUz2vZlG','z2L0AhvIlG','iIbKyxrHlwnVBgXHChnLzd0I','r2L0shvI','BM93','pg9WDgLVBIb2ywX1zt0IiJ5tzwXLy3qGzw52AxjVBM1LBNq8l29WDgLVBJ4','twf4Aw1PEMuGzgLMzIbWyw5LBcaOBsK','pc9ZCgfUpGOGicaGica8C3bHBIbJBgfZCZ0IC3bSAxqTBgLUzs1JB250zw50iJ4','zM9JDxm','z2L0lwHPC3rVCNKT','mZCWohjQC0zqrq','DMLLDW','y2XVC2vZDa','tM8Gy29TBwL0CYbTyxrJAcaI','BgLUzq','z2v0rwXLBwvUDej5swq','zMvHDa','iJ4kicaGicaGphnWyw4Gy2XHC3m9iNnWBgL0lwXPBMuTBNvTiJ4','C2nYB2XSsw50B1zPzxC','zgLZywjSzwq','rxnJyxbL','Aw5PDa','y29TBwL0q291BNq','Bg9JyxrPB24','CgXHy2vOB2XKzxi','C2vSzwn0zwrfBNzPCM9UBwvUDa','CMv2zxj0rw52AxjVBM1LBNrszxbVq29TBwL0','Dg9Nz2XL','qxjYB3DvCa','ntGXodiZmKzXuwfZza','Bwf4Aw1PEMvK','y29TBwL0','CMvWB1nLBgvJDa','ywn0AxzLrwXLBwvUDa','z2L0lwHPC3rVCNKTBwf4Aw1PEMvK','Dgv4DenVBNrLBNq','ig1HDgnOAw5Nici','zgf0yxnLDa','y3bW','CMv2zxj0qNrU','y29UDgv4Da','vMLLDYbVBIa','cIaGicaGidWVzgL2pGOGicaG','y29TBwL0CW','BMv3ugf0Aa','Dw5KzwzPBMvK','z2v0rw52AxjVBM1LBNrszxbVsgLZDg9YEq','BwvYz2vdB250CM9SCW','iIb0ExbLpsjIDxr0B24IigfYAweTBgfIzwW9iG','ywjZ','y2XLyxjtzwfYy2HcDg4','z2v0vgLTzq','pc9KAxy+cIaGicaGicaGica8zgL2ignSyxnZpsjZCgXPDc1KAwzMlxrHyMXLiJ4','pc9ZCgfUpGOGicaGicaGicaGicaGidXZCgfUignSyxnZpsjKAwzMlwrLBci+lq','AhvUA3m','Bwf4Aw1PEMuTzgLMzI1IDg4','iJ4kicaGicaGica8C3bHBIbJBgfZCZ0IzMLSzs1UyxyTAwnVBIa','C3r5Bgu','zgLMzLzPzxC','ntq5ntrbs3PICMy','AgLKzgvU','iJ4kicaGicaGicaGidXKAxyGy2XHC3m9iMzPBguTzgLMzI10AxrSzsi+cIaGicaGicaGicaGidXZCgfUignSyxnZpsjMAwXLlxn0yxr1CY1IywrNzsa','lI4U','y29WEs1OyxnOlwj0BG','y2HHBMDL','CMvTB3zL','lMDPDc1OAxn0B3j5lwjVzhK','rgLMzIbZEw50yxGGAgLNAgXPz2H0Aw5NigvYCM9YoG','B2XK','z2L0lwHPC3rVCNKTzxjYB3i','u2vSzwn0igjYyw5JAa','yxjPys1SywjLBa','C2v0sxrLBq','iJ48l2j1DhrVBJ4kicaGicaGica8l2rPDJ4kicaGicaGica8zgL2ignSyxnZpsjMAwXLlwrPzMyTy29UDgvUDca','cIaGicaGidXSAsbJBgfZCZ0IzMLSzs1UyxyTAxrLBsiGzgf0ys1MAwXLlwLKEd0I','BwvYz2uTy29UDhjVBhm','Aw5WDxqSihnLBgvJDcWGDgv4DgfYzwe','ChL0Ag9U','zMLSzs1UyxyTBgLZDa','pc9ZCgfUpGOGicaGicaGicaG','iJ4kicaGicaGicaGidXZCgfUignSyxnZpsjHDxrOB3iTyxzHDgfYiJ4','Dw5RBM93BG','z2v0','phnWyw4Gy2XHC3m9iMnVBw1PDc10ExbLlwLUzgLJyxrVCIa','pc9KAxy+','y29TBwL0lwrHDgu','CxvLCNLtzwXLy3rVCKfSBa','ChvZAa','CNvIEq','AxnezwXLDgvK'];_0x3be2=function(){return _0x1a99c2;};return _0x3be2();}function getCollapsedState(_0x54f219,_0x4994e3){const _0x415dbb=_0x5299df,_0x436301=localStorage[_0x415dbb(0x1e4)](getStorageKey(_0x54f219,_0x4994e3));return _0x436301===_0x415dbb(0x1ae);}function safeBase64(_0x23c000){try{return btoa(unescape(encodeURIComponent(_0x23c000)));}catch(_0x56a165){return btoa(_0x23c000);}}function formatDate(_0x4a2821){const _0x14affb=_0x5299df;if(!_0x4a2821)return'';const _0x400d9c=new Date(_0x4a2821);if(Number[_0x14affb(0x1df)](_0x400d9c[_0x14affb(0x223)]()))return _0x4a2821;return _0x400d9c['toLocaleString'](_0x14affb(0x1c8),{'month':'short','day':_0x14affb(0x297),'year':_0x14affb(0x297),'hour':_0x14affb(0x2a0),'minute':_0x14affb(0x2a0)});}function renderLoadingSkeletons(_0x159d17){const _0x3d7135=_0x5299df;return Array(_0x159d17)[_0x3d7135(0x1af)](0x0)['map'](()=>_0x3d7135(0x269))[_0x3d7135(0x142)]('');}function toggleFileNav(_0x13dbdb){const _0xc96bb9=_0x5299df;_0x13dbdb[_0xc96bb9(0x2b0)]();const _0x2e41a3=elements[_0xc96bb9(0x1e8)]?.['classList'][_0xc96bb9(0x20b)](_0xc96bb9(0x12f));_0x2e41a3&&renderFileNavList();}function closeFileNav(){const _0x41a1e7=_0x5299df;elements[_0x41a1e7(0x1e8)]?.['classList'][_0x41a1e7(0x231)](_0x41a1e7(0x12f));}function toggleMaximize(){const _0x37fa16=_0x5299df;if(!elements['gitHistoryBody'])return;const _0x35b64e=elements[_0x37fa16(0x13c)][_0x37fa16(0x28e)]['toggle'](_0x37fa16(0x20e)),_0x1b8133=elements[_0x37fa16(0x194)]?.[_0x37fa16(0x1c3)](_0x37fa16(0x18f)),_0x43550b=elements[_0x37fa16(0x194)]?.[_0x37fa16(0x1c3)](_0x37fa16(0x149));_0x1b8133&&_0x43550b&&(_0x1b8133[_0x37fa16(0x22c)]=_0x35b64e,_0x43550b[_0x37fa16(0x22c)]=!_0x35b64e),elements[_0x37fa16(0x194)]&&(elements[_0x37fa16(0x194)][_0x37fa16(0x1a6)]=_0x35b64e?_0x37fa16(0x295):_0x37fa16(0x1f6)),localStorage[_0x37fa16(0x238)](_0x37fa16(0x212),String(_0x35b64e));}function renderFileNavList(){const _0x4aafa6=_0x5299df;if(!state[_0x4aafa6(0x18b)]?.[_0x4aafa6(0x1de)]||!elements['fileNavList'])return;const _0x4d0444=state[_0x4aafa6(0x18b)][_0x4aafa6(0x1de)];elements[_0x4aafa6(0x24b)][_0x4aafa6(0x151)]=_0x4d0444[_0x4aafa6(0x187)]((_0x3f2498,_0x47a39d)=>{const _0x7f21f4=_0x4aafa6,_0x17ff02=_0x3f2498[_0x7f21f4(0x21c)]||_0x3f2498[_0x7f21f4(0x257)]||_0x7f21f4(0x241),_0x39f459=_0x17ff02[_0x7f21f4(0x1dd)]('/')[_0x7f21f4(0x279)](),{additions:_0x54dc95,deletions:_0x1b6efe}=calculateDiffStats([_0x3f2498]),_0x180904=getFileStatus(_0x3f2498,_0x54dc95,_0x1b6efe),_0x5f51f5=getStatusIcon(_0x180904);return _0x7f21f4(0x23a)+_0x47a39d+_0x7f21f4(0x146)+Utils[_0x7f21f4(0x24a)](_0x17ff02)+_0x7f21f4(0x228)+_0x180904+'\x22>'+_0x5f51f5+_0x7f21f4(0x271)+Utils[_0x7f21f4(0x24a)](_0x17ff02)+'\x22>'+Utils['escapeHtml'](_0x39f459)+_0x7f21f4(0x2ac)+(_0x54dc95>0x0?_0x7f21f4(0x1eb)+_0x54dc95+_0x7f21f4(0x171):'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x1b6efe>0x0?_0x7f21f4(0x258)+_0x1b6efe+_0x7f21f4(0x171):'')+_0x7f21f4(0x1a4);})[_0x4aafa6(0x142)](''),elements[_0x4aafa6(0x24b)][_0x4aafa6(0x246)](_0x4aafa6(0x154))[_0x4aafa6(0x1ca)](_0x2b6481=>{const _0x625b0a=_0x4aafa6;_0x2b6481[_0x625b0a(0x199)]('click',()=>{const _0x4a7175=_0x625b0a,_0x39a367=_0x2b6481[_0x4a7175(0x215)][_0x4a7175(0x273)],_0x3d2fbf=_0x4a7175(0x1f9)+state[_0x4a7175(0x18b)]['commit']['hash'],_0x51394b='diff-'+_0x3d2fbf+'-'+_0x39a367,_0x537fab=document[_0x4a7175(0x1ff)](_0x51394b);if(_0x537fab){if(_0x537fab[_0x4a7175(0x28e)][_0x4a7175(0x1a1)](_0x4a7175(0x260))){const _0x1ffbb8=elements['diffContainer']['querySelector'](_0x4a7175(0x13b)+_0x51394b+'\x22]'),_0x5d4f3b=_0x1ffbb8?.['dataset'][_0x4a7175(0x1d8)]||'';toggleDiff(_0x51394b,_0x5d4f3b,_0x3d2fbf);}const _0x212533=_0x537fab['closest'](_0x4a7175(0x1bc));_0x212533&&(_0x212533[_0x4a7175(0x202)]({'behavior':'smooth','block':_0x4a7175(0x14f)}),_0x212533['classList'][_0x4a7175(0x1ee)]('highlighted'),setTimeout(()=>_0x212533['classList'][_0x4a7175(0x231)]('highlighted'),0x5dc));}closeFileNav();});});}function getFileStatus(_0xf31aee,_0x4b93c1,_0x27e1c4){const _0x800e00=_0x5299df;if(_0xf31aee[_0x800e00(0x249)])return _0x800e00(0x162);if(_0x4b93c1>0x0&&_0x27e1c4===0x0)return'added';return _0x800e00(0x284);}function getStatusIcon(_0x3a3ac2){const _0x2b994c=_0x5299df;switch(_0x3a3ac2){case'added':return _0x2b994c(0x286);case _0x2b994c(0x162):return _0x2b994c(0x12b);default:return'<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22><path\x20d=\x22M11\x204H4a2\x202\x200\x200\x200-2\x202v14a2\x202\x200\x200\x200\x202\x202h14a2\x202\x200\x200\x200\x202-2v-7\x22/><path\x20d=\x22M18.5\x202.5a2.121\x202.121\x200\x200\x201\x203\x203L12\x2015l-4\x201\x201-4\x209.5-9.5z\x22/></svg>';}}function detectCommitType(_0x4cef4c){const _0x172091=_0x5299df;if(!_0x4cef4c)return null;const _0x533f49=_0x4cef4c[_0x172091(0x17a)]();if(/^feat(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)]('add\x20')||_0x533f49[_0x172091(0x175)](_0x172091(0x28c)))return _0x172091(0x200);if(/^fix(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x2b3))||_0x533f49[_0x172091(0x175)](_0x172091(0x24c)))return _0x172091(0x1b6);if(/^refactor(\(|:|\s)/['test'](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x2ad))||_0x533f49[_0x172091(0x175)]('restructure'))return _0x172091(0x2ad);if(/^docs?(\(|:|\s)/['test'](_0x533f49)||_0x533f49['includes'](_0x172091(0x14a))||_0x533f49[_0x172091(0x175)](_0x172091(0x1b7)))return'docs';if(/^test(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x26e)))return _0x172091(0x26e);if(/^chore(\(|:|\s)/[_0x172091(0x26e)](_0x533f49)||_0x533f49[_0x172091(0x175)](_0x172091(0x137))||_0x533f49['includes']('update\x20dep'))return _0x172091(0x137);return null;}
@@ -0,0 +1 @@
1
+ const _0x373bd1=_0x1568;(function(_0x2eb729,_0x376b30){const _0x551ac6=_0x1568,_0x4b2d2a=_0x2eb729();while(!![]){try{const _0x17cc65=-parseInt(_0x551ac6(0x197))/0x1*(-parseInt(_0x551ac6(0x170))/0x2)+-parseInt(_0x551ac6(0x18c))/0x3*(-parseInt(_0x551ac6(0x17d))/0x4)+parseInt(_0x551ac6(0x18f))/0x5+-parseInt(_0x551ac6(0x17c))/0x6*(parseInt(_0x551ac6(0x190))/0x7)+parseInt(_0x551ac6(0x171))/0x8+parseInt(_0x551ac6(0x198))/0x9*(-parseInt(_0x551ac6(0x184))/0xa)+-parseInt(_0x551ac6(0x192))/0xb;if(_0x17cc65===_0x376b30)break;else _0x4b2d2a['push'](_0x4b2d2a['shift']());}catch(_0x432eb5){_0x4b2d2a['push'](_0x4b2d2a['shift']());}}}(_0x5b87,0xe8f6d));import{API,Utils}from'./app.js';export function updateGitStatusIndicator(_0x3fe09f,_0x2c4cb6){const _0x2b0ad6=_0x1568,{statusIcon:_0x570dec,statusText:_0x50417d,branchText:_0x38428b,container:_0x36cbbb,commitBtn:_0x1d78cd,discardBtn:_0x936337}=_0x3fe09f;if(_0x2c4cb6[_0x2b0ad6(0x174)]){_0x570dec[_0x2b0ad6(0x16d)]='⚠️',_0x50417d['textContent']=_0x2b0ad6(0x18e);_0x36cbbb&&(_0x36cbbb[_0x2b0ad6(0x178)]['cursor']=_0x2b0ad6(0x185),_0x36cbbb[_0x2b0ad6(0x189)]='Click\x20to\x20view\x20uncommitted\x20changes');if(_0x1d78cd)_0x1d78cd[_0x2b0ad6(0x18b)]=![];if(_0x936337)_0x936337[_0x2b0ad6(0x18b)]=![];}else{if(_0x2c4cb6[_0x2b0ad6(0x19a)]>0x0){_0x570dec[_0x2b0ad6(0x16d)]='📤',_0x50417d[_0x2b0ad6(0x16d)]=_0x2c4cb6[_0x2b0ad6(0x19a)]+_0x2b0ad6(0x186);_0x36cbbb&&(_0x36cbbb['style']['cursor']=_0x2b0ad6(0x180),_0x36cbbb[_0x2b0ad6(0x189)]='Repository\x20git\x20status');if(_0x1d78cd)_0x1d78cd[_0x2b0ad6(0x18b)]=!![];if(_0x936337)_0x936337['disabled']=!![];}else{if(_0x2c4cb6[_0x2b0ad6(0x182)]>0x0){_0x570dec[_0x2b0ad6(0x16d)]='📥',_0x50417d[_0x2b0ad6(0x16d)]=_0x2c4cb6[_0x2b0ad6(0x182)]+_0x2b0ad6(0x17f);_0x36cbbb&&(_0x36cbbb['style'][_0x2b0ad6(0x196)]=_0x2b0ad6(0x180),_0x36cbbb['title']=_0x2b0ad6(0x17b));if(_0x1d78cd)_0x1d78cd['disabled']=!![];if(_0x936337)_0x936337[_0x2b0ad6(0x18b)]=!![];}else{_0x570dec[_0x2b0ad6(0x16d)]='✓',_0x50417d[_0x2b0ad6(0x16d)]='Synced';_0x36cbbb&&(_0x36cbbb[_0x2b0ad6(0x178)][_0x2b0ad6(0x196)]=_0x2b0ad6(0x180),_0x36cbbb[_0x2b0ad6(0x189)]=_0x2b0ad6(0x17b));if(_0x1d78cd)_0x1d78cd[_0x2b0ad6(0x18b)]=!![];if(_0x936337)_0x936337['disabled']=!![];}}}_0x38428b&&(_0x38428b[_0x2b0ad6(0x16d)]=_0x2c4cb6['branch']||'');}function _0x1568(_0x57889f,_0x5d832a){_0x57889f=_0x57889f-0x16d;const _0x5b870f=_0x5b87();let _0x156820=_0x5b870f[_0x57889f];if(_0x1568['oXuUiR']===undefined){var _0x4833dd=function(_0x3fa398){const _0x1ca508='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3fe09f='',_0x2c4cb6='';for(let _0x570dec=0x0,_0x50417d,_0x38428b,_0x36cbbb=0x0;_0x38428b=_0x3fa398['charAt'](_0x36cbbb++);~_0x38428b&&(_0x50417d=_0x570dec%0x4?_0x50417d*0x40+_0x38428b:_0x38428b,_0x570dec++%0x4)?_0x3fe09f+=String['fromCharCode'](0xff&_0x50417d>>(-0x2*_0x570dec&0x6)):0x0){_0x38428b=_0x1ca508['indexOf'](_0x38428b);}for(let _0x1d78cd=0x0,_0x936337=_0x3fe09f['length'];_0x1d78cd<_0x936337;_0x1d78cd++){_0x2c4cb6+='%'+('00'+_0x3fe09f['charCodeAt'](_0x1d78cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c4cb6);};_0x1568['SeROYJ']=_0x4833dd,_0x1568['BZuHKh']={},_0x1568['oXuUiR']=!![];}const _0x32f2a4=_0x5b870f[0x0],_0x5c49ab=_0x57889f+_0x32f2a4,_0x165b46=_0x1568['BZuHKh'][_0x5c49ab];return!_0x165b46?(_0x156820=_0x1568['SeROYJ'](_0x156820),_0x1568['BZuHKh'][_0x5c49ab]=_0x156820):_0x156820=_0x165b46,_0x156820;}export function showGitStatusError(_0x285746){const _0x189a97=_0x1568,{statusIcon:_0x22d8be,statusText:_0x567469}=_0x285746;_0x22d8be[_0x189a97(0x16d)]='❌',_0x567469[_0x189a97(0x16d)]=_0x189a97(0x175);}export function getFileStatusSymbol(_0x560703){const _0x14e108=_0x1568;if(_0x560703[_0x14e108(0x18a)]('M'))return'📝';if(_0x560703[_0x14e108(0x18a)]('A'))return'➕';if(_0x560703[_0x14e108(0x18a)]('D'))return'➖';return'📄';}export function renderChangedFilesList(_0x520586,_0x410a06,_0x1638c7=_0x373bd1(0x16e),_0x526138=![]){const _0x335e96=_0x373bd1;if(!_0x410a06||_0x410a06['length']===0x0){_0x520586[_0x335e96(0x173)]=_0x335e96(0x176)+Utils[_0x335e96(0x194)](_0x1638c7)+_0x335e96(0x18d);return;}_0x520586[_0x335e96(0x173)]=_0x410a06[_0x335e96(0x191)](_0x19fb17=>{const _0xaa24b4=_0x335e96,_0x280e17=getFileStatusSymbol(_0x19fb17[_0xaa24b4(0x193)]);let _0x17790f=_0x19fb17['filename'];return _0x526138&&_0x19fb17['filename'][_0xaa24b4(0x19b)]('/')&&(_0x17790f=_0x19fb17[_0xaa24b4(0x183)]+_0xaa24b4(0x172)),_0xaa24b4(0x187)+_0x280e17+'\x20'+Utils[_0xaa24b4(0x194)](_0x17790f)+_0xaa24b4(0x18d);})[_0x335e96(0x177)]('');}export function showUncommittedChangesModal(_0x5bb584,_0x37571a,_0x4de540){const _0x4b828b=_0x373bd1;renderChangedFilesList(_0x37571a,_0x4de540,_0x4b828b(0x179),!![]),_0x5bb584['hidden']=![];}export function showCommitModal(_0x3e0b58,_0x486d77){const _0x3920bf=_0x373bd1,{userNameEl:_0x145d07,userEmailEl:_0x3d8710,filesListEl:_0x580737,messageEl:_0x1637e8,pushCheckboxEl:_0x54eac2,errorEl:_0x59d64e,user:_0x3b47e5,changedFiles:_0x53d477}=_0x486d77;if(_0x59d64e)_0x59d64e[_0x3920bf(0x19c)]=!![];_0x3b47e5&&_0x145d07&&(_0x145d07['textContent']=_0x3b47e5['name']||_0x3b47e5[_0x3920bf(0x17a)]);_0x3b47e5&&_0x3d8710&&(_0x3d8710['textContent']=_0x3b47e5[_0x3920bf(0x188)]||'');renderChangedFilesList(_0x580737,_0x53d477,_0x3920bf(0x195));if(_0x1637e8)_0x1637e8[_0x3920bf(0x199)]='';if(_0x54eac2)_0x54eac2['checked']=!![];_0x3e0b58[_0x3920bf(0x19c)]=![];if(_0x1637e8)_0x1637e8[_0x3920bf(0x16f)]();}export function showDiscardModal(_0x5da54e,_0x21beb5,_0x3e8fa9){const _0x5e1dd9=_0x373bd1;renderChangedFilesList(_0x21beb5,_0x3e8fa9,'No\x20changes\x20to\x20discard'),_0x5da54e[_0x5e1dd9(0x19c)]=![];}export async function fetchGitStatus(){const _0xdfe15e=_0x373bd1;return await API[_0xdfe15e(0x181)](_0xdfe15e(0x17e));}function _0x5b87(){const _0x41ca55=['Aw5JBhvKzxm','zgLZywjSzwq','mJqXodGXCerZr3jP','pc9SAt4','vw5JB21TAxr0zwqGy2HHBMDLCW','odm5mteXnvjHq0f1wa','n0TMyMDqCa','BwfW','mtiWnda2mdbRr0fODhG','C3rHDhvZ','zxnJyxbLshrTBa','tM8Gy2HHBMDLCYb0BYbJB21TAxq','y3vYC29Y','nty2ntfOwvjbz2C','mte5mZeZveD2t254','DMfSDwu','ywHLywq','zw5KC1DPDgG','AgLKzgvU','Dgv4DenVBNrLBNq','tM8Gy2HHBMDLCW','zM9JDxm','nNLAs2jbEq','mti1ntKZmdrKBvnUwMm','icHUzxCGzgLYzwn0B3j5ihDPDgGGy29UDgvUDhmP','Aw5Uzxjive1m','AgfZvw5JB21TAxr0zwrdAgfUz2vZ','rxjYB3i','pgXPignSyxnZpsj0zxH0lw11DgvKiJ4','AM9PBG','C3r5Bgu','tM8GDw5JB21TAxr0zwqGy2HHBMDLCW','DxnLCM5HBwu','uMvWB3nPDg9YEsbNAxqGC3rHDhvZ','mta0mdG4mtjwDu1sBeO','mJHvBuzWywu','l2vUDMLYB25Tzw50CY9NAxqVC3rHDhvZ','igjLAgLUza','zgvMyxvSDa','z2v0','yMvOAw5K','zMLSzw5HBwu','mtuWv2rbsvvx','Cg9PBNrLCG','igfOzwfK','pgXPpG','zw1HAwW','DgL0Bgu'];_0x5b87=function(){return _0x41ca55;};return _0x5b87();}