id: 1 unit: export function extractJunieWorkflowContext() file: src/github/context.ts start line: 139 end line: 311 size: 141 LOC McCabe index: 16 number of parameters: 1 id: 2 unit: async function prepareWorkingBranchForJunie() file: src/github/operations/branch.ts start line: 124 end line: 231 size: 96 LOC McCabe index: 22 number of parameters: 2 id: 3 unit: export async function handleResults() file: src/entrypoints/handle-results.ts start line: 18 end line: 85 size: 65 LOC McCabe index: 21 number of parameters: 0 id: 4 unit: export async function configureGitCredentials() file: src/github/operations/auth.ts start line: 130 end line: 212 size: 64 LOC McCabe index: 11 number of parameters: 2 id: 5 unit: async function addThumbsUpToTriggerComment() file: src/github/operations/comments/feedback.ts start line: 33 end line: 97 size: 64 LOC McCabe index: 7 number of parameters: 2 id: 6 unit: export async function fetchGitHubTokenOwnerDetails() file: src/github/operations/auth.ts start line: 34 end line: 114 size: 60 LOC McCabe index: 12 number of parameters: 2 id: 7 unit: async function findExistingJunieComment() file: src/github/operations/comments/feedback.ts start line: 109 end line: 177 size: 60 LOC McCabe index: 14 number of parameters: 2 id: 8 unit: export async function postJunieWorkingStatusComment() file: src/github/operations/comments/feedback.ts start line: 233 end line: 301 size: 60 LOC McCabe index: 17 number of parameters: 2 id: 9 unit: export function detectJunieTriggerPhrase() file: src/github/validation/trigger.ts start line: 18 end line: 88 size: 59 LOC McCabe index: 23 number of parameters: 1 id: 10 unit: async function createInlineComment() file: src/mcp/github-inline-comment-server.ts start line: 110 end line: 174 size: 57 LOC McCabe index: 11 number of parameters: 2 id: 11 unit: export async function prepareMcpConfig() file: src/mcp/prepare-mcp-config.ts start line: 21 end line: 102 size: 53 LOC McCabe index: 4 number of parameters: 1 id: 12 unit: export async function verifyRepositoryAccess() file: src/github/validation/permissions.ts start line: 16 end line: 74 size: 49 LOC McCabe index: 10 number of parameters: 2 id: 13 unit: async function extractFailedChecksInfo() file: src/mcp/github-checks-server.ts start line: 102 end line: 158 size: 49 LOC McCabe index: 6 number of parameters: 5 id: 14 unit: export async function postJunieCompletionComment() file: src/github/operations/comments/feedback.ts start line: 363 end line: 427 size: 48 LOC McCabe index: 9 number of parameters: 2 id: 15 unit: export async function downloadAttachmentsAndRewriteText() file: src/github/junie/attachment-downloader.ts start line: 58 end line: 110 size: 44 LOC McCabe index: 9 number of parameters: 1 id: 16 unit: async function extractCheckRunLog() file: src/mcp/github-checks-server.ts start line: 160 end line: 204 size: 41 LOC McCabe index: 9 number of parameters: 4 id: 17 unit: private async executeGraphQLWithRetry() file: src/github/api/graphql-data-fetcher.ts start line: 21 end line: 68 size: 39 LOC McCabe index: 12 number of parameters: 2 id: 18 unit: async function getActionToDo() file: src/entrypoints/handle-results.ts start line: 87 end line: 128 size: 39 LOC McCabe index: 10 number of parameters: 1 id: 19 unit: timelineItems() file: src/github/api/queries.ts start line: 51 end line: 88 size: 38 LOC McCabe index: 1 number of parameters: 4 id: 20 unit: timelineItems() file: src/github/api/queries.ts start line: 149 end line: 186 size: 38 LOC McCabe index: 1 number of parameters: 4 id: 21 unit: async function shouldResolveConflicts() file: src/github/junie/prepare-junie.ts start line: 115 end line: 157 size: 37 LOC McCabe index: 7 number of parameters: 2 id: 22 unit: function shouldUseExistingPRBranch() file: src/github/operations/branch.ts start line: 40 end line: 81 size: 36 LOC McCabe index: 7 number of parameters: 6 id: 23 unit: async function createNewComment() file: src/github/operations/comments/feedback.ts start line: 308 end line: 345 size: 36 LOC McCabe index: 4 number of parameters: 5 id: 24 unit: async function generateJobSummary() file: src/entrypoints/give-feedback.ts start line: 42 end line: 87 size: 36 LOC McCabe index: 7 number of parameters: 1 id: 25 unit: export async function prepareJunieTask() file: src/github/junie/junie-tasks.ts start line: 44 end line: 89 size: 35 LOC McCabe index: 11 number of parameters: 4 id: 26 unit: function extractJiraEventData() file: src/github/context.ts start line: 313 end line: 355 size: 34 LOC McCabe index: 8 number of parameters: 2 id: 27 unit: private formatTimelineItems() file: src/github/junie/new-prompt-formatter.ts start line: 186 end line: 222 size: 33 LOC McCabe index: 10 number of parameters: 1 id: 28 unit: async fetchIssueData() file: src/github/api/graphql-data-fetcher.ts start line: 137 end line: 176 size: 32 LOC McCabe index: 3 number of parameters: 4 id: 29 unit: async fetchPullRequestData() file: src/github/api/graphql-data-fetcher.ts start line: 73 end line: 132 size: 31 LOC McCabe index: 1 number of parameters: 4 id: 30 unit: export async function parseJunieResults() file: src/github/junie/parse-junie-results.ts start line: 10 end line: 42 size: 29 LOC McCabe index: 5 number of parameters: 0 id: 31 unit: private formatReview() file: src/github/junie/new-prompt-formatter.ts start line: 252 end line: 288 size: 28 LOC McCabe index: 5 number of parameters: 1 id: 32 unit: function validateCommentParams() file: src/mcp/github-inline-comment-server.ts start line: 74 end line: 105 size: 28 LOC McCabe index: 6 number of parameters: 1 id: 33 unit: export async function ensureBranchHistory() file: src/github/operations/branch.ts start line: 242 end line: 272 size: 27 LOC McCabe index: 5 number of parameters: 2 id: 34 unit: async function postJiraFeedback() file: src/github/operations/comments/feedback.ts start line: 432 end line: 463 size: 27 LOC McCabe index: 6 number of parameters: 1 id: 35 unit: async generatePrompt() file: src/github/junie/new-prompt-formatter.ts start line: 28 end line: 64 size: 27 LOC McCabe index: 12 number of parameters: 4 id: 36 unit: export async function createPullRequest() file: src/entrypoints/create-pr.ts start line: 9 end line: 39 size: 27 LOC McCabe index: 2 number of parameters: 0 id: 37 unit: async function updateExistingComment() file: src/github/operations/comments/feedback.ts start line: 189 end line: 216 size: 26 LOC McCabe index: 2 number of parameters: 6 id: 38 unit: export async function downloadJiraAttachmentsAndRewriteText() file: src/github/junie/attachment-downloader.ts start line: 144 end line: 179 size: 26 LOC McCabe index: 5 number of parameters: 2 id: 39 unit: async function createNewBranch() file: src/github/operations/branch.ts start line: 94 end line: 122 size: 25 LOC McCabe index: 3 number of parameters: 3 id: 40 unit: private async generateJiraPrompt() file: src/github/junie/new-prompt-formatter.ts start line: 66 end line: 97 size: 24 LOC McCabe index: 2 number of parameters: 1 id: 41 unit: export function isReviewOrCommentHasTrigger() file: src/github/validation/trigger.ts start line: 94 end line: 120 size: 24 LOC McCabe index: 9 number of parameters: 2 id: 42 unit: export async function initializeJunieExecution() file: src/github/junie/prepare-junie.ts start line: 27 end line: 85 size: 23 LOC McCabe index: 2 number of parameters: 4 id: 43 unit: async function downloadFile() file: src/github/junie/attachment-downloader.ts start line: 18 end line: 48 size: 23 LOC McCabe index: 6 number of parameters: 1 id: 44 unit: function loadConfiguration() file: src/mcp/github-inline-comment-server.ts start line: 44 end line: 69 size: 23 LOC McCabe index: 9 number of parameters: 0 id: 45 unit: async function shouldHandle() file: src/github/junie/prepare-junie.ts start line: 87 end line: 112 size: 22 LOC McCabe index: 8 number of parameters: 2 id: 46 unit: async function writeFeedbackComment() file: src/entrypoints/give-feedback.ts start line: 14 end line: 37 size: 22 LOC McCabe index: 2 number of parameters: 2 id: 47 unit: async function handlePr() file: src/github/junie/prepare-junie.ts start line: 159 end line: 183 size: 21 LOC McCabe index: 5 number of parameters: 3 id: 48 unit: actorEmail: getActorEmail() file: src/github/context.ts start line: 146 end line: 164 size: 19 LOC McCabe index: 2 number of parameters: 0 id: 49 unit: private getUserInstruction() file: src/github/junie/new-prompt-formatter.ts start line: 99 end line: 118 size: 19 LOC McCabe index: 8 number of parameters: 2 id: 50 unit: comments() file: src/github/api/queries.ts start line: 105 end line: 123 size: 19 LOC McCabe index: 1 number of parameters: 1 id: 51 unit: async function checkForUnpushedCommits() file: src/entrypoints/handle-results.ts start line: 146 end line: 168 size: 18 LOC McCabe index: 3 number of parameters: 2 id: 52 unit: async function runResolveConflictsWorkflow() file: src/github/junie/prepare-junie.ts start line: 185 end line: 201 size: 17 LOC McCabe index: 2 number of parameters: 5 id: 53 unit: nodes: filterCommentsToTriggerTime() file: src/github/api/graphql-data-fetcher.ts start line: 101 end line: 121 size: 17 LOC McCabe index: 3 number of parameters: 2 id: 54 unit: function normalizeHtmlEntities() file: src/utils/sanitizer.ts start line: 100 end line: 124 size: 17 LOC McCabe index: 5 number of parameters: 1 id: 55 unit: async transitionIssue() file: src/github/jira/client.ts start line: 52 end line: 69 size: 16 LOC McCabe index: 2 number of parameters: 2 id: 56 unit: private createClient() file: src/github/jira/client.ts start line: 27 end line: 43 size: 15 LOC McCabe index: 4 number of parameters: 0 id: 57 unit: reviews() file: src/github/api/queries.ts start line: 91 end line: 125 size: 15 LOC McCabe index: 1 number of parameters: 1 id: 58 unit: issue() file: src/github/api/queries.ts start line: 134 end line: 187 size: 15 LOC McCabe index: 1 number of parameters: 1 id: 59 unit: function exportResultsOutputs() file: src/entrypoints/handle-results.ts start line: 170 end line: 186 size: 15 LOC McCabe index: 4 number of parameters: 5 id: 60 unit: PR_NUMBER: String() file: src/mcp/prepare-mcp-config.ts start line: 59 end line: 74 size: 15 LOC McCabe index: 3 number of parameters: 1 id: 61 unit: async addComment() file: src/github/jira/client.ts start line: 78 end line: 93 size: 14 LOC McCabe index: 2 number of parameters: 2 id: 62 unit: async downloadAttachment() file: src/github/jira/client.ts start line: 115 end line: 132 size: 14 LOC McCabe index: 2 number of parameters: 1 id: 63 unit: function getTriggerTime() file: src/github/junie/junie-tasks.ts start line: 29 end line: 42 size: 14 LOC McCabe index: 7 number of parameters: 1 id: 64 unit: export function buildGitHubApiClient() file: src/github/api/client.ts start line: 15 end line: 28 size: 14 LOC McCabe index: 1 number of parameters: 1 id: 65 unit: export async function giveFeedback() file: src/entrypoints/give-feedback.ts start line: 89 end line: 106 size: 14 LOC McCabe index: 3 number of parameters: 0 id: 66 unit: export function sanitizeContent() file: src/utils/sanitizer.ts start line: 152 end line: 169 size: 14 LOC McCabe index: 2 number of parameters: 1 id: 67 unit: export function sanitizeJunieOutput() file: src/utils/sanitizer.ts start line: 177 end line: 195 size: 14 LOC McCabe index: 3 number of parameters: 2 id: 68 unit: private formatReviews() file: src/github/junie/new-prompt-formatter.ts start line: 235 end line: 250 size: 13 LOC McCabe index: 4 number of parameters: 1 id: 69 unit: function extractJobIdFromUrl() file: src/mcp/github-checks-server.ts start line: 206 end line: 220 size: 13 LOC McCabe index: 6 number of parameters: 2 id: 70 unit: function stripHiddenAttributes() file: src/utils/sanitizer.ts start line: 71 end line: 93 size: 13 LOC McCabe index: 1 number of parameters: 1 id: 71 unit: private getPrInfo() file: src/github/junie/new-prompt-formatter.ts start line: 131 end line: 143 size: 12 LOC McCabe index: 2 number of parameters: 1 id: 72 unit: export function validateInputSize() file: src/github/validation/input-size.ts start line: 20 end line: 34 size: 12 LOC McCabe index: 2 number of parameters: 2 id: 73 unit: await prepareJunieCLIToken() file: src/github/junie/prepare-junie.ts start line: 42 end line: 57 size: 11 LOC McCabe index: 3 number of parameters: 1 id: 74 unit: commits() file: src/github/api/queries.ts start line: 28 end line: 38 size: 11 LOC McCabe index: 1 number of parameters: 1 id: 75 unit: async function checkForChangedFiles() file: src/entrypoints/handle-results.ts start line: 130 end line: 144 size: 11 LOC McCabe index: 2 number of parameters: 0 id: 76 unit: async function runServer() file: src/mcp/github-checks-server.ts start line: 78 end line: 90 size: 11 LOC McCabe index: 2 number of parameters: 0 id: 77 unit: await updateExistingComment() file: src/github/operations/comments/feedback.ts start line: 406 end line: 415 size: 10 LOC McCabe index: 2 number of parameters: 6 id: 78 unit: private getPrOrIssueInfo() file: src/github/junie/new-prompt-formatter.ts start line: 120 end line: 129 size: 10 LOC McCabe index: 6 number of parameters: 2 id: 79 unit: await configureGitCredentials() file: src/github/junie/prepare-junie.ts start line: 44 end line: 57 size: 10 LOC McCabe index: 3 number of parameters: 2 id: 80 unit: async function downloadJiraAttachment() file: src/github/junie/attachment-downloader.ts start line: 120 end line: 133 size: 9 LOC McCabe index: 1 number of parameters: 2 id: 81 unit: export function generateMcpToolsPrompt() file: src/mcp/mcp-prompts.ts start line: 18 end line: 28 size: 9 LOC McCabe index: 2 number of parameters: 1 id: 82 unit: isPR: Boolean() file: src/github/context.ts start line: 187 end line: 194 size: 8 LOC McCabe index: 3 number of parameters: 1 id: 83 unit: export function createJobRunLink() file: src/github/operations/comments/common.ts start line: 4 end line: 11 size: 8 LOC McCabe index: 1 number of parameters: 3 id: 84 unit: export function createBranchLink() file: src/github/operations/comments/common.ts start line: 13 end line: 20 size: 8 LOC McCabe index: 1 number of parameters: 3 id: 85 unit: private getIssueInfo() file: src/github/junie/new-prompt-formatter.ts start line: 145 end line: 153 size: 8 LOC McCabe index: 2 number of parameters: 1 id: 86 unit: private getCommitsInfo() file: src/github/junie/new-prompt-formatter.ts start line: 155 end line: 164 size: 8 LOC McCabe index: 4 number of parameters: 1 id: 87 unit: private formatCommits() file: src/github/junie/new-prompt-formatter.ts start line: 166 end line: 173 size: 8 LOC McCabe index: 4 number of parameters: 1 id: 88 unit: private getTimelineInfo() file: src/github/junie/new-prompt-formatter.ts start line: 175 end line: 184 size: 8 LOC McCabe index: 5 number of parameters: 1 id: 89 unit: private getReviewsInfo() file: src/github/junie/new-prompt-formatter.ts start line: 224 end line: 233 size: 8 LOC McCabe index: 4 number of parameters: 1 id: 90 unit: private getChangedFilesInfo() file: src/github/junie/new-prompt-formatter.ts start line: 290 end line: 299 size: 8 LOC McCabe index: 4 number of parameters: 1 id: 91 unit: export async function prepareJunieCLIToken() file: src/github/junie/junie-token.ts start line: 5 end line: 12 size: 8 LOC McCabe index: 3 number of parameters: 1 id: 92 unit: files() file: src/github/api/queries.ts start line: 41 end line: 48 size: 8 LOC McCabe index: 1 number of parameters: 1 id: 93 unit: function redactGitHubTokens() file: src/utils/sanitizer.ts start line: 135 end line: 146 size: 8 LOC McCabe index: 1 number of parameters: 1 id: 94 unit: export async function initializeJunieWorkspace() file: src/github/operations/branch.ts start line: 289 end line: 298 size: 7 LOC McCabe index: 1 number of parameters: 2 id: 95 unit: export function createCommentBody() file: src/github/operations/comments/common.ts start line: 22 end line: 29 size: 7 LOC McCabe index: 1 number of parameters: 2 id: 96 unit: export function addJunieMarker() file: src/github/operations/comments/common.ts start line: 38 end line: 45 size: 7 LOC McCabe index: 2 number of parameters: 2 id: 97 unit: private getRepositoryInfo() file: src/github/junie/new-prompt-formatter.ts start line: 308 end line: 314 size: 7 LOC McCabe index: 1 number of parameters: 1 id: 98 unit: function stripInvisibleCharacters() file: src/utils/sanitizer.ts start line: 31 end line: 45 size: 7 LOC McCabe index: 1 number of parameters: 1 id: 99 unit: export function getJiraClient() file: src/github/jira/client.ts start line: 142 end line: 147 size: 6 LOC McCabe index: 2 number of parameters: 0 id: 100 unit: private formatChangedFiles() file: src/github/junie/new-prompt-formatter.ts start line: 301 end line: 306 size: 6 LOC McCabe index: 1 number of parameters: 1 id: 101 unit: private getActorInfo() file: src/github/junie/new-prompt-formatter.ts start line: 316 end line: 321 size: 6 LOC McCabe index: 2 number of parameters: 1 id: 102 unit: pullRequest() file: src/github/api/queries.ts start line: 6 end line: 126 size: 6 LOC McCabe index: 1 number of parameters: 1 id: 103 unit: function clearTimestampFromGhLogs() file: src/mcp/github-checks-server.ts start line: 222 end line: 227 size: 6 LOC McCabe index: 1 number of parameters: 1 id: 104 unit: export function isCheckSuiteEvent() file: src/github/context.ts start line: 365 end line: 369 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 105 unit: export function isPushEvent() file: src/github/context.ts start line: 371 end line: 375 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 106 unit: export function isIssuesEvent() file: src/github/context.ts start line: 377 end line: 381 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 107 unit: export function isIssueCommentEvent() file: src/github/context.ts start line: 383 end line: 387 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 108 unit: export function isPullRequestEvent() file: src/github/context.ts start line: 389 end line: 393 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 109 unit: export function isPullRequestReviewEvent() file: src/github/context.ts start line: 395 end line: 399 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 110 unit: export function isPullRequestReviewCommentEvent() file: src/github/context.ts start line: 401 end line: 405 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 111 unit: export function isIssuesAssignedEvent() file: src/github/context.ts start line: 407 end line: 411 size: 5 LOC McCabe index: 2 number of parameters: 1 id: 112 unit: export function isTriggeredByUserInteraction() file: src/github/context.ts start line: 416 end line: 420 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 113 unit: function getActorEmail() file: src/github/context.ts start line: 422 end line: 426 size: 5 LOC McCabe index: 1 number of parameters: 0 id: 114 unit: function getFailedBody() file: src/github/operations/comments/feedback.ts start line: 465 end line: 469 size: 5 LOC McCabe index: 2 number of parameters: 4 id: 115 unit: async function getValidatedTextTask() file: src/github/junie/junie-tasks.ts start line: 22 end line: 27 size: 5 LOC McCabe index: 1 number of parameters: 2 id: 116 unit: await initializeJunieExecution() file: src/entrypoints/prepare.ts start line: 17 end line: 21 size: 5 LOC McCabe index: 1 number of parameters: 3 id: 117 unit: function stripMarkdownLinkTitles() file: src/utils/sanitizer.ts start line: 59 end line: 65 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 118 unit: export function hasJunieMarker() file: src/github/operations/comments/common.ts start line: 53 end line: 56 size: 4 LOC McCabe index: 1 number of parameters: 2 id: 119 unit: export function createJunieCommentMarker() file: src/constants/github.ts start line: 42 end line: 46 size: 4 LOC McCabe index: 1 number of parameters: 1 id: 120 unit: constructor() file: src/github/jira/client.ts start line: 23 end line: 25 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 121 unit: async startIssue() file: src/github/jira/client.ts start line: 98 end line: 100 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 122 unit: async moveIssueToReview() file: src/github/jira/client.ts start line: 105 end line: 107 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 123 unit: export function convertMarkdownToADF() file: src/github/jira/markdown-to-jira.ts start line: 9 end line: 11 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 124 unit: export function isJiraWorkflowDispatchEvent() file: src/github/context.ts start line: 357 end line: 359 size: 3 LOC McCabe index: 3 number of parameters: 1 id: 125 unit: export function isResolveConflictsWorkflowDispatchEvent() file: src/github/context.ts start line: 361 end line: 363 size: 3 LOC McCabe index: 3 number of parameters: 1 id: 126 unit: function getFailedBodyWithMarker() file: src/github/operations/comments/feedback.ts start line: 471 end line: 473 size: 3 LOC McCabe index: 1 number of parameters: 5 id: 127 unit: await prepareJunieTask() file: src/github/junie/prepare-junie.ts start line: 84 end line: 87 size: 3 LOC McCabe index: 1 number of parameters: 4 id: 128 unit: await runResolveConflictsWorkflow() file: src/github/junie/prepare-junie.ts start line: 171 end line: 173 size: 3 LOC McCabe index: 1 number of parameters: 5 id: 129 unit: export function isReviewOrCommentHasResolveConflictsTrigger() file: src/github/validation/trigger.ts start line: 90 end line: 92 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 130 unit: export function isIssueCommentNode() file: src/github/api/queries.ts start line: 349 end line: 351 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 131 unit: export function isReferencedEventNode() file: src/github/api/queries.ts start line: 353 end line: 355 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 132 unit: export function isCrossReferencedEventNode() file: src/github/api/queries.ts start line: 357 end line: 359 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 133 unit: await postJunieCompletionComment() file: src/entrypoints/give-feedback.ts start line: 36 end line: 42 size: 3 LOC McCabe index: 1 number of parameters: 2 id: 134 unit: function stripHtmlComments() file: src/utils/sanitizer.ts start line: 19 end line: 21 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 135 unit: function stripMarkdownImageAltText() file: src/utils/sanitizer.ts start line: 51 end line: 53 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 136 unit: export function isBodySafeToUse() file: src/github/api/time-filter.ts start line: 71 end line: 72 size: 2 LOC McCabe index: 1 number of parameters: 0 id: 137 unit: query() file: src/github/api/queries.ts start line: 4 end line: 128 size: 2 LOC McCabe index: 1 number of parameters: 3 id: 138 unit: repository() file: src/github/api/queries.ts start line: 5 end line: 127 size: 2 LOC McCabe index: 1 number of parameters: 2 id: 139 unit: query() file: src/github/api/queries.ts start line: 132 end line: 189 size: 2 LOC McCabe index: 1 number of parameters: 3 id: 140 unit: repository() file: src/github/api/queries.ts start line: 133 end line: 188 size: 2 LOC McCabe index: 1 number of parameters: 2