{
	"name": "CheckUser",
	"version": "2.5",
	"author": [
		"Tim Starling",
		"Aaron Schulz",
		"Dreamy Jazz"
	],
	"url": "https://www.mediawiki.org/wiki/Extension:CheckUser",
	"descriptionmsg": "checkuser-desc",
	"license-name": "GPL-2.0-or-later",
	"type": "specialpage",
	"requires": {
		"MediaWiki": ">= 1.42.0",
		"platform": {
			"ext-openssl": "*"
		}
	},
	"ExtensionMessagesFiles": {
		"CheckUserAliases": "CheckUser.alias.php"
	},
	"config": {
		"CheckUserCIDRLimit": {
			"value": {
				"IPv4": 16,
				"IPv6": 19
			},
			"description": "Shortest CIDR limits that can be checked in any individual range check"
		},
		"CheckUserMaxBlocks": {
			"value": 200,
			"description": "Maximum number of users that can be mass blocked simultaneously"
		},
		"CUPublicKey": {
			"value": "",
			"description": "Public key to encrypt private data that may need to be read later. Generate a public key with something like: `openssl genrsa -out cu.key 2048; openssl rsa -in cu.key -pubout > cu.pub` and paste the contents of cu.pub here."
		},
		"CUDMaxAge": {
			"value": 7776000,
			"description": "How long to keep CheckUser data (in seconds)"
		},
		"CheckUserForceSummary": {
			"value": false,
			"description": "Whether to force checkusers into giving a reason for each check they do through Special:CheckUser."
		},
		"CheckUserCAMultiLock": {
			"value": false,
			"description": "Whether to add a link to Special:MultiLock by CentralAuth to the Special:CheckUser's mass block form. This requires CentralAuth extension to be installed on the wiki. To enable this, set this to an array with a central wiki's database name and an array with the name(s) of the global group(s) to add the link for. Example: [ 'centralDB' => 'metawiki', 'groups' => [ 'steward' ] ]"
		},
		"CheckUserCAtoollink": {
			"value": false,
			"description": "Whether to add links to CentralAuth in Special:CheckUser results"
		},
		"CheckUserGBtoollink": {
			"value": false,
			"description": "Whether to add links for globally blocking accounts shown in Special:CheckUser results"
		},
		"CheckUserCollapseCheckUserHelperByDefault": {
			"value": 2500,
			"description": "Whether to have the CheckUserHelper shown on Special:CheckUser collapsed by default. Specify true to collapse by default, false to do the opposite and a number to collapse only when the number of rows returned exceeds this value."
		},
		"CheckUserLogLogins": {
			"value": false,
			"description": "Whether login attempts should be logged in CheckUser logs"
		},
		"CheckUserLogSuccessfulBotLogins": {
			"value": true,
			"description": "Whether successful login attempts of accounts in the 'bot' user group should be logged in CheckUser logs (assuming wgCheckUserLogLogins is also true)"
		},
		"CheckUserEnableSpecialInvestigate": {
			"value": true,
			"description": "Enables Special:Investigate"
		},
		"CheckUserLogAdditionalRights": {
			"value": [],
			"description": "Additional rights to be used when adding CheckUser log entries"
		},
		"CheckUserMaximumRowCount": {
			"value": 5000,
			"description": "Maximum number of rows in cu_changes to be used in any query"
		},
		"CheckUserInvestigateMaximumRowCount": {
			"value": 25000,
			"description": "Maximum number of rows in cu_changes to be grouped in the Compare table query"
		},
		"CheckUserTemporaryAccountMaxAge": {
			"value": 86400,
			"description": "Number of seconds for which the temporary account API response is fresh"
		},
		"CheckUserEventTablesMigrationStage": {
			"value": 769,
			"description": "A flag used as the migration stage to the new cu_private_event and cu_log_event tables. Currently set to SCHEMA_COMPAT_NEW | SCHEMA_COMPAT_WRITE_OLD which evaluates to the integer 769."
		},
		"CheckUserClientHintsEnabled": {
			"value": true,
			"description": "General on/off switch for User-Agent Client Hints functionality. When set to true, CheckUser will request Client Hints headers specified in the CheckUserClientHintsHeaders config variable."
		},
		"CheckUserPurgeOldClientHintsData": {
			"value": true,
			"description": "Used to control whether CheckUser will attempt to purge old client hint data. This is done so that wgCheckUserClientHintsEnabled can be set to false without preventing cleaning up of old client hint data."
		},
		"CheckUserClientHintsRestApiMaxTimeLag": {
			"value": 1800,
			"description": "The amount of time in seconds that a user has to submit a request to /checkuser/v0/useragent-clienthints/{type}/{id} to store client hints data."
		},
		"CheckUserClientHintsSpecialPages": {
			"value": [
				"CreateAccount",
				"Emailuser",
				"PasswordReset",
				"Userlogin",
				"Userlogout"
			],
			"description": "List of SpecialPages where CheckUser will set client hints headers in the response header. Note that the special pages are case sensitive, and do not always match their appearance in the URL, e.g. 'UserLogin' is known in the Special page system as 'Userlogin'."
		},
		"CheckUserClientHintsHeaders": {
			"value": {
				"Sec-CH-UA": "",
				"Sec-CH-UA-Arch": "architecture",
				"Sec-CH-UA-Bitness": "bitness",
				"": "brands",
				"Sec-CH-UA-Form-Factor": "",
				"Sec-CH-UA-Full-Version-List": "fullVersionList",
				"Sec-CH-UA-Mobile": "mobile",
				"Sec-CH-UA-Model": "model",
				"Sec-CH-UA-Platform": "platform",
				"Sec-CH-UA-Platform-Version": "platformVersion",
				"Sec-CH-UA-WoW64": ""
			},
			"description": "Map of User-Agent Client Hints headers that CheckUser may ask for, either via setting an Accept-CH header on the server-side, or via client-side usage of the NavigatorUAData.getHighEntropyValues() API. The keys in the map are the server-side headers, and the values are the JS API equivalents. Empty strings indicate lack of equivalent between JS API and server-side headers. See the list of valid values https://wicg.github.io/ua-client-hints."
		},
		"CheckUserClientHintsUnsetHeaderWhenPossible": {
			"value": true,
			"description": "If set to 'true', then CheckUser will transmit an empty `Accept-CH: ` header in BeforePageDisplay and SpecialPageBeforeExecute if SpecialPage isn't in the CheckUserClientHintsSpecialPages config list. If set to false, CheckUser will not send an empty `Accept-CH: ` header, which in practice means that all logged-in user requests will transmit User-Agent client hint data."
		},
		"CheckUserClientHintsForDisplay": {
			"value": [
				"model",
				"fullVersionList",
				"platformVersion",
				"platform",
				"brands",
				"formFactor",
				"architecture",
				"mobile",
				"bitness",
				"woW64"
			],
			"description": "An array of the Client Hints data that should be displayed in CheckUser interfaces in the order that they should be displayed. If 'platform' and 'platformVersion' are both included, then these will be combined as one when displaying as a string. If 'brands' and 'fullVersionList' are both selected, then only the fullVersionList value will be displayed if for a given brand name an entry exists in 'brand' and 'fullVersionList'. The 'userAgent' client hint name is currently not included in this list as it may be combined with the 'brands' item, but would be removed if HTTP headers are not going to be used to collect data."
		},
		"CheckUserClientHintsValuesToHide": {
			"value": {
				"architecture": [
					"x86"
				],
				"bitness": [
					"64"
				],
				"woW64": [
					false
				]
			},
			"description": "An array of the Client Hints data names as keys and an array of values that should be hidden from the interface as the value. This is used to hide commonly seen Client Hint data values in the cases where it isn't helpful."
		},
		"CheckUserDisplayClientHints": {
			"value": true,
			"description": "A configuration value used to control whether Client Hints data is shown in the interfaces that support it. The default is for it to be enabled."
		},
		"CheckUserDeveloperMode": {
			"value": false,
			"description": "If set to 'true', then CheckUser will be know it is in development mode. Do not enable this on any wikis other than local development wikis. This will allow use of code that is only intended for local development wikis, such as the populateCheckUserTablesWithSimulatedData.php maintenance script which inserts automated testing edits and actions to the wiki."
		}
	},
	"APIListModules": {
		"checkuser": {
			"class": "MediaWiki\\CheckUser\\Api\\ApiQueryCheckUser",
			"services": [
				"ApiQueryCheckUserResponseFactory"
			]
		},
		"checkuserlog": {
			"class": "MediaWiki\\CheckUser\\Api\\ApiQueryCheckUserLog",
			"services": [
				"CommentStore",
				"CheckUserLogService",
				"UserFactory"
			]
		}
	},
	"RestRoutes": [
		{
			"path": "/checkuser/v0/temporaryaccount/{name}",
			"method": "POST",
			"class": "MediaWiki\\CheckUser\\Api\\Rest\\Handler\\TemporaryAccountHandler",
			"services": [
				"MainConfig",
				"JobQueueGroup",
				"PermissionManager",
				"UserOptionsLookup",
				"UserNameUtils",
				"DBLoadBalancerFactory",
				"ActorStore",
				"BlockManager"
			]
		},
		{
			"path": "/checkuser/v0/temporaryaccount/{name}/revisions/{ids}",
			"method": "POST",
			"class": "MediaWiki\\CheckUser\\Api\\Rest\\Handler\\TemporaryAccountRevisionHandler",
			"services": [
				"MainConfig",
				"JobQueueGroup",
				"PermissionManager",
				"UserOptionsLookup",
				"UserNameUtils",
				"DBLoadBalancerFactory",
				"ActorStore",
				"BlockManager",
				"RevisionStore"
			]
		},
		{
			"path": "/checkuser/v0/temporaryaccount/{name}/logs/{ids}",
			"method": "POST",
			"class": "MediaWiki\\CheckUser\\Api\\Rest\\Handler\\TemporaryAccountLogHandler",
			"services": [
				"MainConfig",
				"JobQueueGroup",
				"PermissionManager",
				"UserOptionsLookup",
				"UserNameUtils",
				"DBLoadBalancerFactory",
				"ActorStore",
				"BlockManager"
			]
		},
		{
			"path": "/checkuser/v0/useragent-clienthints/{type}/{id}",
			"method": "POST",
			"class": "MediaWiki\\CheckUser\\Api\\Rest\\Handler\\UserAgentClientHintsHandler",
			"services": [
				"MainConfig",
				"RevisionStore",
				"UserAgentClientHintsManager"
			]
		}
	],
	"HookHandlers": {
		"clienthints": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\ClientHints",
			"services": [
				"MainConfig"
			]
		},
		"preferences": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\Preferences",
			"services": [
				"PermissionManager",
				"CheckUserTemporaryAccountLoggerFactory"
			]
		},
		"pageDisplay": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\PageDisplay",
			"services": [
				"MainConfig",
				"PermissionManager",
				"UserOptionsLookup"
			]
		},
		"SchemaChanges": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\SchemaChangesHandler"
		},
		"Contributions": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\ContributionsHandler",
			"services": [
				"MainConfig",
				"PermissionManager",
				"DBLoadBalancerFactory",
				"TempUserConfig",
				"UserOptionsLookup",
				"CheckUserLookupUtils"
			]
		},
		"ToolLinks": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\ToolLinksHandler",
			"services": [
				"PermissionManager",
				"SpecialPageFactory",
				"LinkRenderer",
				"UserIdentityLookup",
				"UserIdentityUtils"
			]
		},
		"RenameUserSQLHandler": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\RenameUserSQLHandler"
		},
		"SpecialPageInitList": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\SpecialPageInitListHandler",
			"services": [
				"MainConfig"
			]
		},
		"RLRegisterModules": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\RLRegisterModulesHandler"
		},
		"Hooks": {
			"class": "MediaWiki\\CheckUser\\Hooks"
		},
		"UserMerge": {
			"class": "MediaWiki\\CheckUser\\HookHandler\\UserMergeHandler"
		}
	},
	"Hooks": {
		"AuthManagerLoginAuthenticateAudit": "Hooks",
		"ContribsPager::getQueryInfo": "Contributions",
		"BeforePageDisplay": [
			"clienthints",
			"pageDisplay"
		],
		"ContributionsToolLinks": "ToolLinks",
		"EmailUser": "Hooks",
		"GetPreferences": "preferences",
		"LoadExtensionSchemaUpdates": "SchemaChanges",
		"LocalUserCreated": "Hooks",
		"PerformRetroactiveAutoblock": "Hooks",
		"RecentChange_save": "Hooks",
		"RenameUserSQL": "RenameUserSQLHandler",
		"ResourceLoaderRegisterModules": "RLRegisterModules",
		"SaveUserOptions": "preferences",
		"SpecialPageBeforeExecute": "clienthints",
		"SpecialPage_initList": "SpecialPageInitList",
		"User::mailPasswordInternal": "Hooks",
		"UserLogoutComplete": "Hooks",
		"UserMergeAccountFields": "UserMerge",
		"UserToolLinksEdit": "ToolLinks"
	},
	"DeprecatedHooks": {
		"CheckUserInsertForRecentChange": {
			"deprecatedVersion": "1.40"
		}
	},
	"MessagesDirs": {
		"CheckUser": [
			"i18n",
			"i18n/api"
		]
	},
	"ResourceModules": {
		"ext.checkUser.clientHints": {
			"localBasePath": "modules/ext.checkUser.clientHints",
			"remoteExtPath": "CheckUser/modules/ext.checkUser.clientHints",
			"packageFiles": [
				"index.js"
			],
			"dependencies": [
				"mediawiki.api",
				"mediawiki.base"
			]
		},
		"ext.checkUser": {
			"localBasePath": "modules/ext.checkUser",
			"remoteExtPath": "CheckUser/modules/ext.checkUser",
			"packageFiles": [
				"dispatcher.js",
				"cidr/cidr.js",
				"checkuser/caMultiLock.js",
				"checkuser/checkUserHelper/init.js",
				"checkuser/checkUserHelper/addCopyElement.js",
				"checkuser/checkUserHelper/createTable.js",
				"checkuser/checkUserHelper/createTableText.js",
				"checkuser/checkUserHelper/generateData.js",
				"checkuser/checkUserHelper/utils.js",
				"checkuserlog/highlightScroll.js",
				"investigateblock/investigateblock.js",
				"investigate/init.js",
				"investigate/InvestigateMenuSelectWidget.js",
				"investigate/resetGuidedTour.js",
				"investigate/tables.js",
				"investigate/copy.js",
				"investigate/blockform.js",
				"temporaryaccount/ipRevealUtils.js",
				"temporaryaccount/ipReveal.js",
				"temporaryaccount/initOnLoad.js",
				"temporaryaccount/initOnHook.js",
				"temporaryaccount/rest.js",
				"temporaryaccount/SpecialBlock.js",
				"temporaryaccount/SpecialContributions.js",
				{
					"name": "investigate/message.json",
					"callback": "MediaWiki\\CheckUser\\ToolLinksMessages::getParsedMessage",
					"callbackParam": "checkuser-investigate-compare-toollinks"
				}
			],
			"dependencies": [
				"jquery.tablesorter",
				"oojs-ui-core",
				"oojs-ui-widgets",
				"oojs-ui.styles.icons-editing-core",
				"oojs-ui.styles.icons-editing-advanced",
				"oojs-ui.styles.icons-interactions",
				"oojs-ui.styles.icons-location",
				"oojs-ui.styles.icons-moderation",
				"oojs-ui.styles.icons-user",
				"mediawiki.api",
				"mediawiki.pager.styles",
				"mediawiki.storage",
				"mediawiki.Title",
				"mediawiki.Uri",
				"mediawiki.user",
				"mediawiki.util",
				"mediawiki.widgets",
				"mediawiki.widgets.UserInputWidget",
				"web2017-polyfills"
			],
			"messages": [
				"checkuser-centralauth-multilock",
				"checkuser-centralauth-multilock-list",
				"checkuser-centralauth-multilock-list-item",
				"checkuser-cidr-too-small",
				"checkuser-cidr-affected-ips",
				"checkuser-helper-copy-success",
				"checkuser-helper-copy-failed",
				"checkuser-helper-user",
				"checkuser-helper-ips",
				"checkuser-helper-uas",
				"checkuser-helper-client-hints",
				"checkuser-helper-xff-trusted",
				"checkuser-helper-xff-untrusted",
				"checkuser-cidr-tool-links",
				"checkuser-cidr-tool-links-checkuser",
				"checkuser-cidr-tool-links-checkuserlog",
				"checkuser-cidr-tool-links-prefix",
				"checkuser-investigate-compare-copy-button-label",
				"checkuser-investigate-compare-copy-button-label-hide",
				"checkuser-investigate-compare-copy-message-label",
				"checkuser-investigate-compare-table-button-add-ip-targets-label",
				"checkuser-investigate-compare-table-button-add-user-targets-label",
				"checkuser-investigate-compare-table-button-add-user-targets-log-label",
				"checkuser-investigate-compare-table-button-checks-label",
				"checkuser-investigate-compare-table-button-contribs-label",
				"checkuser-investigate-compare-table-button-filter-label",
				"checkuser-investigate-subtitle-cancel-button-label",
				"checkuser-investigate-subtitle-continue-button-label",
				"checkuser-tempaccount-no-ip-results",
				"checkuser-tempaccount-reveal-ip-button-label",
				"checkuser-tempaccount-reveal-ip-missing",
				"checkuser-tempaccount-reveal-ip-error",
				"checkuser-tempaccount-specialblock-ips"
			]
		},
		"ext.checkUser.styles": {
			"class": "MediaWiki\\ResourceLoader\\LessVarFileModule",
			"localBasePath": "modules/ext.checkUser.styles",
			"remoteExtPath": "CheckUser/modules/ext.checkUser.styles",
			"styles": [
				"checkuser.less",
				"investigate.less",
				"investigateblock.less",
				"temporaryaccount.less",
				"cidr.less"
			],
			"skinStyles": {
				"minerva": "temporaryaccount.minerva.less"
			},
			"lessMessages": [
				"brackets-start",
				"brackets-end",
				"parentheses-start",
				"parentheses-end",
				"pipe-separator"
			]
		}
	},
	"QUnitTestModule": {
		"localBasePath": "",
		"remoteExtPath": "CheckUser",
		"packageFiles": [
			"tests/qunit/index.js",
			"tests/qunit/ext.checkUser/checkUserHelper/utils.test.js",
			"tests/qunit/ext.checkUser/checkUserHelper/createTable.test.js",
			"tests/qunit/ext.checkUser/checkUserHelper/createTableText.test.js",
			"tests/qunit/ext.checkUser/checkUserHelper/generateData.test.js",
			"modules/ext.checkUser/checkuser/checkUserHelper/init.js",
			"modules/ext.checkUser/checkuser/checkUserHelper/addCopyElement.js",
			"modules/ext.checkUser/checkuser/checkUserHelper/createTable.js",
			"modules/ext.checkUser/checkuser/checkUserHelper/createTableText.js",
			"modules/ext.checkUser/checkuser/checkUserHelper/generateData.js",
			"modules/ext.checkUser/checkuser/checkUserHelper/utils.js",
			"tests/qunit/ext.checkUser/checkUserHelper/cases/calculateIPNumber.json",
			"tests/qunit/ext.checkUser/checkUserHelper/cases/compareIPs.json",
			"tests/qunit/ext.checkUser/checkUserHelper/cases/createTable.json",
			"tests/qunit/ext.checkUser/checkUserHelper/cases/createTableText.json",
			"tests/qunit/ext.checkUser/checkUserHelper/cases/generateData.json",
			"tests/qunit/ext.checkUser.clientHints/index.test.js",
			"modules/ext.checkUser.clientHints/index.js"
		],
		"dependencies": [
			"mediawiki.qunit-testrunner",
			"mediawiki.base",
			"mediawiki.router",
			"mediawiki.widgets",
			"ext.checkUser",
			"ext.checkUser.clientHints",
			"sinonjs"
		]
	},
	"GroupPermissions": {
		"checkuser": {
			"checkuser": true,
			"checkuser-log": true,
			"checkuser-temporary-account-no-preference": true,
			"checkuser-temporary-account-log": true
		}
	},
	"GrantPermissions": {
		"checkuser": {
			"checkuser": true,
			"checkuser-log": true
		},
		"checkuser-temporary-account": {
			"checkuser-temporary-account": true,
			"checkuser-temporary-account-no-preference": true,
			"checkuser-temporary-account-log": true
		}
	},
	"GrantPermissionGroups": {
		"checkuser": "administration",
		"checkuser-temporary-account": "administration"
	},
	"GrantRiskGroups": {
		"checkuser": "security",
		"checkuser-temporary-account": "low"
	},
	"PrivilegedGroups": [
		"checkuser"
	],
	"AvailableRights": [
		"checkuser",
		"checkuser-log",
		"checkuser-temporary-account",
		"checkuser-temporary-account-no-preference",
		"checkuser-temporary-account-log"
	],
	"SpecialPages": {
		"CheckUser": {
			"class": "MediaWiki\\CheckUser\\CheckUser\\SpecialCheckUser",
			"services": [
				"LinkBatchFactory",
				"BlockPermissionCheckerFactory",
				"BlockUserFactory",
				"UserGroupManager",
				"CentralIdLookupFactory",
				"WikiPageFactory",
				"PermissionManager",
				"UserIdentityLookup",
				"CheckUserTokenQueryManager",
				"DBLoadBalancerFactory",
				"UserFactory",
				"RevisionStore",
				"ArchivedRevisionLookup",
				"CheckUserLogService",
				"CommentFormatter",
				"UserEditTracker",
				"UserNamePrefixSearch",
				"UserNameUtils",
				"CheckUserHookRunner",
				"CheckUserUtilityService",
				"CommentStore",
				"UserAgentClientHintsLookup",
				"UserAgentClientHintsFormatter",
				"CheckUserLookupUtils"
			]
		},
		"CheckUserLog": {
			"class": "MediaWiki\\CheckUser\\CheckUser\\SpecialCheckUserLog",
			"services": [
				"LinkBatchFactory",
				"PermissionManager",
				"CommentStore",
				"CommentFormatter",
				"CheckUserLogService",
				"UserFactory",
				"ActorStore",
				"DBLoadBalancerFactory"
			]
		}
	},
	"LogTypes": [
		"checkuser-temporary-account"
	],
	"LogNames": {
		"checkuser-temporary-account": "checkuser-temporary-account-log-name"
	},
	"LogHeaders": {
		"checkuser-temporary-account": "checkuser-temporary-account-log-header"
	},
	"LogActionsHandlers": {
		"checkuser-temporary-account/*": {
			"class": "MediaWiki\\CheckUser\\Logging\\TemporaryAccountLogFormatter",
			"services": [
				"UserFactory"
			]
		},
		"checkuser-private-event/*": {
			"class": "MediaWiki\\CheckUser\\Logging\\CheckUserPrivateEventLogFormatter",
			"services": [
				"UserFactory"
			]
		}
	},
	"LogRestrictions": {
		"checkuser-temporary-account": "checkuser-temporary-account-log",
		"checkuser-private-event": "checkuser"
	},
	"ActionFilteredLogs": {
		"checkuser-temporary-account": {
			"change-access": [
				"change-access"
			],
			"view-ips": [
				"view-ips"
			]
		}
	},
	"JobClasses": {
		"checkuserLogTemporaryAccountAccess": "\\MediaWiki\\CheckUser\\Jobs\\LogTemporaryAccountAccessJob",
		"checkuserPruneCheckUserDataJob": "\\MediaWiki\\CheckUser\\Jobs\\PruneCheckUserDataJob"
	},
	"AutoloadClasses": {
		"MediaWiki\\CheckUser\\Hook\\CheckUserInsertChangesRow": "src/Hook/CheckUserInsertChangesRowHook.php",
		"MediaWiki\\CheckUser\\Hook\\CheckUserInsertChangesRowHook": "src/Hook/CheckUserInsertChangesRowHook.php",
		"MediaWiki\\CheckUser\\Hook\\CheckUserInsertLogEventRow": "src/Hook/CheckUserInsertLogEventRowHook.php",
		"MediaWiki\\CheckUser\\Hook\\CheckUserInsertLogEventRowHook": "src/Hook/CheckUserInsertLogEventRowHook.php",
		"MediaWiki\\CheckUser\\Hook\\CheckUserInsertPrivateEventRow": "src/Hook/CheckUserInsertPrivateEventRowHook.php",
		"MediaWiki\\CheckUser\\Hook\\CheckUserInsertPrivateEventRowHook": "src/Hook/CheckUserInsertPrivateEventRowHook.php",
		"MediaWiki\\CheckUser\\Maintenance\\PopulateCheckUserTable": "maintenance/populateCheckUserTable.php",
		"MediaWiki\\CheckUser\\Maintenance\\PurgeOldData": "maintenance/purgeOldData.php",
		"MediaWiki\\CheckUser\\Maintenance\\PopulateCucActor": "maintenance/populateCucActor.php",
		"MediaWiki\\CheckUser\\Maintenance\\PopulateCucComment": "maintenance/populateCucComment.php",
		"MediaWiki\\CheckUser\\Maintenance\\PopulateCulActor": "maintenance/populateCulActor.php",
		"MediaWiki\\CheckUser\\Maintenance\\PopulateCulComment": "maintenance/populateCulComment.php",
		"MediaWiki\\CheckUser\\Maintenance\\MoveLogEntriesFromCuChanges": "maintenance/moveLogEntriesFromCuChanges.php",
		"MediaWiki\\CheckUser\\Maintenance\\PopulateCheckUserTablesWithSimulatedData": "maintenance/populateCheckUserTablesWithSimulatedData.php",
		"MediaWiki\\CheckUser\\Maintenance\\GenerateStatsAboutClientHintsData": "maintenance/generateStatsAboutClientHintsData.php",
		"MediaWiki\\CheckUser\\Maintenance\\FixTrailingSpacesInLogs": "maintenance/fixTrailingSpacesInLogs.php"
	},
	"ServiceWiringFiles": [
		"src/ServiceWiring.php"
	],
	"AutoloadNamespaces": {
		"MediaWiki\\CheckUser\\": "src/"
	},
	"TestAutoloadNamespaces": {
		"MediaWiki\\CheckUser\\Tests\\": "tests/phpunit/",
		"MediaWiki\\CheckUser\\Tests\\Unit\\": "tests/phpunit/unit",
		"MediaWiki\\CheckUser\\Tests\\Integration\\": "tests/phpunit/integration"
	},
	"load_composer_autoloader": true,
	"manifest_version": 2
}
