mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-17 14:04:20 +01:00
146 lines
140 KiB
JavaScript
146 lines
140 KiB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["default~pages/challenge~pages/challenges~pages/configs~pages/editor~pages/main~pages/notifications~p~d5a3cc0a"],{
|
||
|
||
/***/ "./CTFd/themes/admin/assets/js/pages/main.js":
|
||
/*!***************************************************!*\
|
||
!*** ./CTFd/themes/admin/assets/js/pages/main.js ***!
|
||
\***************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\"));\n\nvar _nunjucks = _interopRequireDefault(__webpack_require__(/*! nunjucks */ \"./node_modules/nunjucks/browser/nunjucks.js\"));\n\nvar _howler = __webpack_require__(/*! howler */ \"./node_modules/howler/dist/howler.js\");\n\nvar _events = _interopRequireDefault(__webpack_require__(/*! core/events */ \"./CTFd/themes/core/assets/js/events.js\"));\n\nvar _times = _interopRequireDefault(__webpack_require__(/*! core/times */ \"./CTFd/themes/core/assets/js/times.js\"));\n\nvar _styles = _interopRequireDefault(__webpack_require__(/*! ../styles */ \"./CTFd/themes/admin/assets/js/styles.js\"));\n\nvar _helpers = _interopRequireDefault(__webpack_require__(/*! core/helpers */ \"./CTFd/themes/core/assets/js/helpers.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_CTFd.default.init(window.init);\n\nwindow.CTFd = _CTFd.default;\nwindow.helpers = _helpers.default;\nwindow.$ = _jquery.default;\nwindow.Moment = _moment.default;\nwindow.nunjucks = _nunjucks.default;\nwindow.Howl = _howler.Howl;\n(0, _jquery.default)(function () {\n (0, _styles.default)();\n (0, _times.default)();\n (0, _events.default)(_CTFd.default.config.urlRoot);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/main.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/admin/assets/js/styles.js":
|
||
/*!***********************************************!*\
|
||
!*** ./CTFd/themes/admin/assets/js/styles.js ***!
|
||
\***********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! bootstrap/dist/js/bootstrap.bundle */ \"./node_modules/bootstrap/dist/js/bootstrap.bundle.js\");\n\nvar _utils = __webpack_require__(/*! core/utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = function _default() {\n // TODO: This is kind of a hack to mimic a React-like state construct.\n // It should be removed once we have a real front-end framework in place.\n (0, _jquery.default)(\":input\").each(function () {\n (0, _jquery.default)(this).data(\"initial\", (0, _jquery.default)(this).val());\n });\n (0, _jquery.default)(\".form-control\").bind({\n focus: function focus() {\n (0, _jquery.default)(this).addClass(\"input-filled-valid\");\n },\n blur: function blur() {\n if ((0, _jquery.default)(this).val() === \"\") {\n (0, _jquery.default)(this).removeClass(\"input-filled-valid\");\n }\n }\n });\n (0, _jquery.default)(\".modal\").on(\"show.bs.modal\", function (e) {\n (0, _jquery.default)(\".form-control\").each(function () {\n if ((0, _jquery.default)(this).val()) {\n (0, _jquery.default)(this).addClass(\"input-filled-valid\");\n }\n });\n });\n (0, _jquery.default)(function () {\n (0, _jquery.default)(\".form-control\").each(function () {\n if ((0, _jquery.default)(this).val()) {\n (0, _jquery.default)(this).addClass(\"input-filled-valid\");\n }\n });\n (0, _jquery.default)(\"tr[data-href]\").click(function () {\n var sel = getSelection().toString();\n\n if (!sel) {\n var href = (0, _jquery.default)(this).attr(\"data-href\");\n\n if (href) {\n window.location = href;\n }\n }\n\n return false;\n });\n (0, _jquery.default)(\"[data-checkbox]\").click(function (e) {\n if ((0, _jquery.default)(e.target).is(\"input[type=checkbox]\")) {\n e.stopImmediatePropagation();\n return;\n }\n\n var checkbox = (0, _jquery.default)(this).find(\"input[type=checkbox]\"); // Doing it this way with an event allows data-checkbox-all to work\n\n checkbox.click();\n e.stopImmediatePropagation();\n });\n (0, _jquery.default)(\"[data-checkbox-all]\").on(\"click change\", function (e) {\n var checked = (0, _jquery.default)(this).prop(\"checked\");\n var idx = (0, _jquery.default)(this).index() + 1;\n (0, _jquery.default)(this).closest(\"table\").find(\"tr td:nth-child(\".concat(idx, \") input[type=checkbox]\")).prop(\"checked\", checked);\n e.stopImmediatePropagation();\n });\n (0, _jquery.default)(\"tr[data-href] a, tr[data-href] button\").click(function (e) {\n // TODO: This is a hack to allow modal close buttons to work\n if (!(0, _jquery.default)(this).attr(\"data-dismiss\")) {\n e.stopPropagation();\n }\n });\n (0, _jquery.default)(\".page-select\").change(function () {\n var url = new URL(window.location);\n url.searchParams.set(\"page\", this.value);\n window.location.href = url.toString();\n });\n (0, _jquery.default)('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\n sessionStorage.setItem('activeTab', (0, _jquery.default)(e.target).attr('href'));\n });\n var activeTab = sessionStorage.getItem('activeTab');\n\n if (activeTab) {\n var target = (0, _jquery.default)(\".nav-tabs a[href=\\\"\".concat(activeTab, \"\\\"], .nav-pills a[href=\\\"\").concat(activeTab, \"\\\"]\"));\n\n if (target.length) {\n target.tab('show');\n } else {\n sessionStorage.removeItem('activeTab');\n }\n }\n\n (0, _utils.makeSortableTables)();\n (0, _jquery.default)('[data-toggle=\"tooltip\"]').tooltip();\n });\n};\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/styles.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/CTFd.js":
|
||
/*!********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/CTFd.js ***!
|
||
\********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _fetch = _interopRequireDefault(__webpack_require__(/*! ./fetch */ \"./CTFd/themes/core/assets/js/fetch.js\"));\n\nvar _config = _interopRequireDefault(__webpack_require__(/*! ./config */ \"./CTFd/themes/core/assets/js/config.js\"));\n\nvar _api = __webpack_require__(/*! ./api */ \"./CTFd/themes/core/assets/js/api.js\");\n\n__webpack_require__(/*! ./patch */ \"./CTFd/themes/core/assets/js/patch.js\");\n\nvar _markdownIt = _interopRequireDefault(__webpack_require__(/*! markdown-it */ \"./node_modules/markdown-it/index.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _ezq = _interopRequireDefault(__webpack_require__(/*! ./ezq */ \"./CTFd/themes/core/assets/js/ezq.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar api = new _api.API(\"/\");\nvar user = {};\nvar _internal = {};\nvar ui = {\n ezq: _ezq.default\n};\nvar lib = {\n $: _jquery.default,\n markdown: markdown\n};\nvar initialized = false;\n\nvar init = function init(data) {\n if (initialized) {\n return;\n }\n\n initialized = true;\n _config.default.urlRoot = data.urlRoot || _config.default.urlRoot;\n _config.default.csrfNonce = data.csrfNonce || _config.default.csrfNonce;\n _config.default.userMode = data.userMode || _config.default.userMode;\n api.domain = _config.default.urlRoot + \"/api/v1\";\n user.id = data.userId;\n};\n\nvar plugin = {\n run: function run(f) {\n f(CTFd);\n }\n};\n\nfunction markdown(config) {\n // Merge passed config with original. Default to original.\n var md_config = _objectSpread({}, {\n html: true,\n linkify: true\n }, {}, config);\n\n var md = (0, _markdownIt.default)(md_config);\n\n md.renderer.rules.link_open = function (tokens, idx, options, env, self) {\n tokens[idx].attrPush([\"target\", \"_blank\"]);\n return self.renderToken(tokens, idx, options);\n };\n\n return md;\n}\n\nvar CTFd = {\n init: init,\n config: _config.default,\n fetch: _fetch.default,\n user: user,\n ui: ui,\n api: api,\n lib: lib,\n _internal: _internal,\n plugin: plugin\n};\nvar _default = CTFd;\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/CTFd.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/api.js":
|
||
/*!*******************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/api.js ***!
|
||
\*******************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nvar _fetch = _interopRequireDefault(__webpack_require__(/*! ./fetch */ \"./CTFd/themes/core/assets/js/fetch.js\"));\n\nvar _q = _interopRequireDefault(__webpack_require__(/*! q */ \"./node_modules/q/q.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n *\n * @class API\n * @param {(string|object)} [domainOrOptions] - The project domain or options object. If object, see the object's optional properties.\n * @param {string} [domainOrOptions.domain] - The project domain\n * @param {object} [domainOrOptions.token] - auth token - object with value property and optional headerOrQueryName and isQuery properties\n */\nvar API = function () {\n \"use strict\";\n\n function API(options) {\n var domain = _typeof(options) === \"object\" ? options.domain : options;\n this.domain = domain ? domain : \"\";\n\n if (this.domain.length === 0) {\n throw new Error(\"Domain parameter must be specified as a string.\");\n }\n }\n\n function serializeQueryParams(parameters) {\n var str = [];\n\n for (var p in parameters) {\n if (parameters.hasOwnProperty(p)) {\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(parameters[p]));\n }\n }\n\n return str.join(\"&\");\n }\n\n function mergeQueryParams(parameters, queryParameters) {\n if (parameters.$queryParameters) {\n Object.keys(parameters.$queryParameters).forEach(function (parameterName) {\n var parameter = parameters.$queryParameters[parameterName];\n queryParameters[parameterName] = parameter;\n });\n }\n\n return queryParameters;\n }\n /**\n * HTTP Request\n * @method\n * @name API#request\n * @param {string} method - http method\n * @param {string} url - url to do request\n * @param {object} parameters\n * @param {object} body - body parameters / object\n * @param {object} headers - header parameters\n * @param {object} queryParameters - querystring parameters\n * @param {object} form - form data object\n * @param {object} deferred - promise object\n */\n\n\n API.prototype.request = function (method, url, parameters, body, headers, queryParameters, form, deferred) {\n var queryParams = queryParameters && Object.keys(queryParameters).length ? serializeQueryParams(queryParameters) : null;\n var urlWithParams = url + (queryParams ? \"?\" + queryParams : \"\");\n\n if (body && !Object.keys(body).length) {\n body = undefined;\n }\n\n (0, _fetch.default)(urlWithParams, {\n method: method,\n headers: headers,\n body: JSON.stringify(body)\n }).then(function (response) {\n return response.json();\n }).then(function (body) {\n deferred.resolve(body);\n }).catch(function (error) {\n deferred.reject(error);\n });\n };\n /**\n *\n * @method\n * @name API#post_award_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_award_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/awards\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_award\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.awardId - An Award ID\n */\n\n\n API.prototype.delete_award = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/awards/{award_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{award_id}\", parameters[\"awardId\"]);\n\n if (parameters[\"awardId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: awardId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_award\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.awardId - An Award ID\n */\n\n\n API.prototype.get_award = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/awards/{award_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{award_id}\", parameters[\"awardId\"]);\n\n if (parameters[\"awardId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: awardId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_challenge_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_challenge_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_challenge_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_challenge_attempt\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_challenge_attempt = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/attempt\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_types\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_challenge_types = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/types\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_challenge\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.challengeId - A Challenge ID\n */\n\n\n API.prototype.patch_challenge = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_challenge\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.challengeId - A Challenge ID\n */\n\n\n API.prototype.delete_challenge = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.challengeId - A Challenge ID\n */\n\n\n API.prototype.get_challenge = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_files\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.id - A Challenge ID\n * @param {string} parameters.challengeId -\n */\n\n\n API.prototype.get_challenge_files = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}/files\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"id\"] !== undefined) {\n queryParameters[\"id\"] = parameters[\"id\"];\n }\n\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_flags\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.id - A Challenge ID\n * @param {string} parameters.challengeId -\n */\n\n\n API.prototype.get_challenge_flags = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}/flags\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"id\"] !== undefined) {\n queryParameters[\"id\"] = parameters[\"id\"];\n }\n\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_hints\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.id - A Challenge ID\n * @param {string} parameters.challengeId -\n */\n\n\n API.prototype.get_challenge_hints = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}/hints\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"id\"] !== undefined) {\n queryParameters[\"id\"] = parameters[\"id\"];\n }\n\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_solves\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.id - A Challenge ID\n * @param {string} parameters.challengeId -\n */\n\n\n API.prototype.get_challenge_solves = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}/solves\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"id\"] !== undefined) {\n queryParameters[\"id\"] = parameters[\"id\"];\n }\n\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_tags\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.id - A Challenge ID\n * @param {string} parameters.challengeId -\n */\n\n\n API.prototype.get_challenge_tags = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/{challenge_id}/tags\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"id\"] !== undefined) {\n queryParameters[\"id\"] = parameters[\"id\"];\n }\n\n path = path.replace(\"{challenge_id}\", parameters[\"challengeId\"]);\n\n if (parameters[\"challengeId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: challengeId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_config_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_config_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_config_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.patch_config_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_config_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_config_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_config\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.configKey -\n */\n\n\n API.prototype.patch_config = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs/{config_key}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{config_key}\", parameters[\"configKey\"]);\n\n if (parameters[\"configKey\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: configKey\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_config\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.configKey -\n */\n\n\n API.prototype.delete_config = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs/{config_key}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{config_key}\", parameters[\"configKey\"]);\n\n if (parameters[\"configKey\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: configKey\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_config\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.configKey -\n */\n\n\n API.prototype.get_config = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs/{config_key}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{config_key}\", parameters[\"configKey\"]);\n\n if (parameters[\"configKey\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: configKey\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_files_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_files_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/files\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_files_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_files_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/files\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_files_detail\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.fileId -\n */\n\n\n API.prototype.delete_files_detail = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/files/{file_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{file_id}\", parameters[\"fileId\"]);\n\n if (parameters[\"fileId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: fileId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_files_detail\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.fileId -\n */\n\n\n API.prototype.get_files_detail = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/files/{file_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{file_id}\", parameters[\"fileId\"]);\n\n if (parameters[\"fileId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: fileId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_flag_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_flag_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_flag_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_flag_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_flag_types\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_flag_types = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags/types\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_flag_types_1\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.typeName -\n */\n\n\n API.prototype.get_flag_types_1 = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags/types/{type_name}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{type_name}\", parameters[\"typeName\"]);\n\n if (parameters[\"typeName\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: typeName\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_flag\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.flagId -\n */\n\n\n API.prototype.patch_flag = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags/{flag_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{flag_id}\", parameters[\"flagId\"]);\n\n if (parameters[\"flagId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: flagId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_flag\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.flagId -\n */\n\n\n API.prototype.delete_flag = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags/{flag_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{flag_id}\", parameters[\"flagId\"]);\n\n if (parameters[\"flagId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: flagId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_flag\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.flagId -\n */\n\n\n API.prototype.get_flag = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/flags/{flag_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{flag_id}\", parameters[\"flagId\"]);\n\n if (parameters[\"flagId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: flagId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_hint_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_hint_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/hints\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_hint_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_hint_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/hints\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_hint\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.hintId -\n */\n\n\n API.prototype.patch_hint = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/hints/{hint_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{hint_id}\", parameters[\"hintId\"]);\n\n if (parameters[\"hintId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: hintId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_hint\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.hintId -\n */\n\n\n API.prototype.delete_hint = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/hints/{hint_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{hint_id}\", parameters[\"hintId\"]);\n\n if (parameters[\"hintId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: hintId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_hint\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.hintId -\n */\n\n\n API.prototype.get_hint = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/hints/{hint_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{hint_id}\", parameters[\"hintId\"]);\n\n if (parameters[\"hintId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: hintId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_notification_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_notification_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/notifications\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_notification_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_notification_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/notifications\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_notification\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.notificationId - A Notification ID\n */\n\n\n API.prototype.delete_notification = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/notifications/{notification_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{notification_id}\", parameters[\"notificationId\"]);\n\n if (parameters[\"notificationId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: notificationId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_notification\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.notificationId - A Notification ID\n */\n\n\n API.prototype.get_notification = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/notifications/{notification_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{notification_id}\", parameters[\"notificationId\"]);\n\n if (parameters[\"notificationId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: notificationId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_page_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_page_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/pages\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_page_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_page_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/pages\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_page_detail\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.pageId -\n */\n\n\n API.prototype.patch_page_detail = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/pages/{page_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{page_id}\", parameters[\"pageId\"]);\n\n if (parameters[\"pageId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: pageId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_page_detail\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.pageId -\n */\n\n\n API.prototype.delete_page_detail = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/pages/{page_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{page_id}\", parameters[\"pageId\"]);\n\n if (parameters[\"pageId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: pageId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_page_detail\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.pageId -\n */\n\n\n API.prototype.get_page_detail = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/pages/{page_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{page_id}\", parameters[\"pageId\"]);\n\n if (parameters[\"pageId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: pageId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_scoreboard_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_scoreboard_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/scoreboard\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_scoreboard_detail\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.count - How many top teams to return\n */\n\n\n API.prototype.get_scoreboard_detail = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/scoreboard/top/{count}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{count}\", parameters[\"count\"]);\n\n if (parameters[\"count\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: count\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_solve_statistics\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_challenge_solve_statistics = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/challenges/solves\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_solve_percentages\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_challenge_solve_percentages = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/challenges/solves/percentages\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_challenge_property_counts\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.column -\n */\n\n\n API.prototype.get_challenge_property_counts = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/challenges/{column}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{column}\", parameters[\"column\"]);\n\n if (parameters[\"column\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: column\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_submission_property_counts\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.column -\n */\n\n\n API.prototype.get_submission_property_counts = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/submissions/{column}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{column}\", parameters[\"column\"]);\n\n if (parameters[\"column\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: column\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_statistics\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_team_statistics = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/teams\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_statistics\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_user_statistics = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/users\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_property_counts\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.column -\n */\n\n\n API.prototype.get_user_property_counts = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/statistics/users/{column}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{column}\", parameters[\"column\"]);\n\n if (parameters[\"column\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: column\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_submissions_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_submissions_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/submissions\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_submissions_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_submissions_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/submissions\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_submission\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.submissionId - A Submission ID\n */\n\n\n API.prototype.delete_submission = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/submissions/{submission_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{submission_id}\", parameters[\"submissionId\"]);\n\n if (parameters[\"submissionId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: submissionId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_submission\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.submissionId - A Submission ID\n */\n\n\n API.prototype.get_submission = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/submissions/{submission_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{submission_id}\", parameters[\"submissionId\"]);\n\n if (parameters[\"submissionId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: submissionId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_tag_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_tag_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/tags\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_tag_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_tag_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/tags\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_tag\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.tagId - A Tag ID\n */\n\n\n API.prototype.patch_tag = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/tags/{tag_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{tag_id}\", parameters[\"tagId\"]);\n\n if (parameters[\"tagId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: tagId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_tag\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.tagId - A Tag ID\n */\n\n\n API.prototype.delete_tag = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/tags/{tag_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{tag_id}\", parameters[\"tagId\"]);\n\n if (parameters[\"tagId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: tagId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_tag\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.tagId - A Tag ID\n */\n\n\n API.prototype.get_tag = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/tags/{tag_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{tag_id}\", parameters[\"tagId\"]);\n\n if (parameters[\"tagId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: tagId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_team_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_team_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_team_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_team_private\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Current Team\n */\n\n\n API.prototype.patch_team_private = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/me\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"teamId\"] !== undefined) {\n queryParameters[\"team_id\"] = parameters[\"teamId\"];\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_private\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Current Team\n */\n\n\n API.prototype.get_team_private = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/me\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n\n if (parameters[\"teamId\"] !== undefined) {\n queryParameters[\"team_id\"] = parameters[\"teamId\"];\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_team_public\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Team ID\n */\n\n\n API.prototype.patch_team_public = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_team_public\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Team ID\n */\n\n\n API.prototype.delete_team_public = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_public\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Team ID\n */\n\n\n API.prototype.get_team_public = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_awards\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Team ID or 'me'\n */\n\n\n API.prototype.get_team_awards = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}/awards\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_fails\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Team ID or 'me'\n */\n\n\n API.prototype.get_team_fails = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}/fails\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_team_solves\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.teamId - Team ID or 'me'\n */\n\n\n API.prototype.get_team_solves = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}/solves\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_unlock_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_unlock_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/unlocks\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_unlock_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_unlock_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/unlocks\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#post_user_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.post_user_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_list\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_user_list = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_user_private\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.patch_user_private = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/me\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_private\n * @param {object} parameters - method options and parameters\n */\n\n\n API.prototype.get_user_private = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/me\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#patch_user_public\n * @param {object} parameters - method options and parameters\n * @param {integer} parameters.userId - User ID\n */\n\n\n API.prototype.patch_user_public = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#delete_user_public\n * @param {object} parameters - method options and parameters\n * @param {integer} parameters.userId - User ID\n */\n\n\n API.prototype.delete_user_public = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"DELETE\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_public\n * @param {object} parameters - method options and parameters\n * @param {integer} parameters.userId - User ID\n */\n\n\n API.prototype.get_user_public = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_awards\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.userId - User ID or 'me'\n */\n\n\n API.prototype.get_user_awards = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}/awards\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_fails\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.userId - User ID or 'me'\n */\n\n\n API.prototype.get_user_fails = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}/fails\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n /**\n *\n * @method\n * @name API#get_user_solves\n * @param {object} parameters - method options and parameters\n * @param {string} parameters.userId - User ID or 'me'\n */\n\n\n API.prototype.get_user_solves = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}/solves\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n };\n\n return API;\n}();\n\nexports.API = API;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/api.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/config.js":
|
||
/*!**********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/config.js ***!
|
||
\**********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n urlRoot: \"\",\n csrfNonce: \"\",\n userMode: \"\"\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/config.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/events.js":
|
||
/*!**********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/events.js ***!
|
||
\**********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _howler = __webpack_require__(/*! howler */ \"./node_modules/howler/dist/howler.js\");\n\nvar _eventSourcePolyfill = __webpack_require__(/*! event-source-polyfill */ \"./node_modules/event-source-polyfill/src/eventsource.js\");\n\nvar _ezq = __webpack_require__(/*! ./ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar EventSource = _eventSourcePolyfill.NativeEventSource || _eventSourcePolyfill.EventSourcePolyfill;\n\nvar _default = function _default(root) {\n var source = new EventSource(root + \"/events\");\n var wc = new _utils.WindowController();\n var howl = new _howler.Howl({\n src: [root + \"/themes/core/static/sounds/notification.webm\", root + \"/themes/core/static/sounds/notification.mp3\"]\n });\n (0, _utils.init_notification_counter)();\n\n function connect() {\n source.addEventListener(\"notification\", function (event) {\n var data = JSON.parse(event.data);\n wc.broadcast(\"notification\", data);\n render(data);\n }, false);\n }\n\n function disconnect() {\n if (source) {\n source.close();\n }\n }\n\n function render(data) {\n switch (data.type) {\n case \"toast\":\n (0, _utils.inc_notification_counter)(); // Trim toast body to length\n\n var length = 50;\n var trimmed_content = data.content.length > length ? data.content.substring(0, length - 3) + \"...\" : data.content;\n var clicked = false;\n (0, _ezq.ezToast)({\n title: data.title,\n body: trimmed_content,\n onclick: function onclick() {\n (0, _ezq.ezAlert)({\n title: data.title,\n body: data.content,\n button: \"Got it!\",\n success: function success() {\n clicked = true;\n (0, _utils.dec_notification_counter)();\n }\n });\n },\n onclose: function onclose() {\n if (!clicked) {\n (0, _utils.dec_notification_counter)();\n }\n }\n });\n break;\n\n case \"alert\":\n (0, _utils.inc_notification_counter)();\n (0, _ezq.ezAlert)({\n title: data.title,\n body: data.content,\n button: \"Got it!\",\n success: function success() {\n (0, _utils.dec_notification_counter)();\n }\n });\n break;\n\n case \"background\":\n (0, _utils.inc_notification_counter)();\n break;\n\n default:\n (0, _utils.inc_notification_counter)();\n break;\n }\n\n if (data.sound) {\n howl.play();\n }\n }\n\n wc.notification = function (data) {\n render(data);\n };\n\n wc.masterDidChange = function () {\n if (this.isMaster) {\n connect();\n } else {\n disconnect();\n }\n };\n};\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/events.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/ezq.js":
|
||
/*!*******************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/ezq.js ***!
|
||
\*******************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ezAlert = ezAlert;\nexports.ezToast = ezToast;\nexports.ezQuery = ezQuery;\nexports.ezProgressBar = ezProgressBar;\nexports.ezBadge = ezBadge;\nexports.default = void 0;\n\n__webpack_require__(/*! bootstrap/js/dist/modal */ \"./node_modules/bootstrap/js/dist/modal.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar modalTpl = '<div class=\"modal fade\" tabindex=\"-1\" role=\"dialog\">' + ' <div class=\"modal-dialog\" role=\"document\">' + ' <div class=\"modal-content\">' + ' <div class=\"modal-header\">' + ' <h5 class=\"modal-title\">{0}</h5>' + ' <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">' + ' <span aria-hidden=\"true\">×</span>' + \" </button>\" + \" </div>\" + ' <div class=\"modal-body\">' + \" </div>\" + ' <div class=\"modal-footer\">' + \" </div>\" + \" </div>\" + \" </div>\" + \"</div>\";\nvar toastTpl = '<div class=\"toast m-3\" role=\"alert\">' + ' <div class=\"toast-header\">' + ' <strong class=\"mr-auto\">{0}</strong>' + ' <button type=\"button\" class=\"ml-2 mb-1 close\" data-dismiss=\"toast\" aria-label=\"Close\">' + ' <span aria-hidden=\"true\">×</span>' + \" </button>\" + \" </div>\" + ' <div class=\"toast-body\">{1}</div>' + \"</div>\";\nvar progressTpl = '<div class=\"progress\">' + ' <div class=\"progress-bar progress-bar-success progress-bar-striped progress-bar-animated\" role=\"progressbar\" style=\"width: {0}%\">' + \" </div>\" + \"</div>\";\nvar errorTpl = '<div class=\"alert alert-danger alert-dismissable\" role=\"alert\">\\n' + ' <span class=\"sr-only\">Error:</span>\\n' + \" {0}\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\nvar successTpl = '<div class=\"alert alert-success alert-dismissable submit-row\" role=\"alert\">\\n' + \" <strong>Success!</strong>\\n\" + \" {0}\\n\" + ' <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\\n' + \"</div>\";\nvar buttonTpl = '<button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\">{0}</button>';\nvar noTpl = '<button type=\"button\" class=\"btn btn-danger\" data-dismiss=\"modal\">No</button>';\nvar yesTpl = '<button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\">Yes</button>';\n\nfunction ezAlert(args) {\n var modal = modalTpl.format(args.title);\n var obj = (0, _jquery.default)(modal);\n\n if (typeof args.body === \"string\") {\n obj.find(\".modal-body\").append(\"<p>\".concat(args.body, \"</p>\"));\n } else {\n obj.find(\".modal-body\").append((0, _jquery.default)(args.body));\n }\n\n var button = (0, _jquery.default)(buttonTpl.format(args.button));\n\n if (args.success) {\n (0, _jquery.default)(button).click(function () {\n args.success();\n });\n }\n\n if (args.large) {\n obj.find(\".modal-dialog\").addClass(\"modal-lg\");\n }\n\n obj.find(\".modal-footer\").append(button);\n (0, _jquery.default)(\"main\").append(obj);\n obj.modal(\"show\");\n (0, _jquery.default)(obj).on(\"hidden.bs.modal\", function () {\n (0, _jquery.default)(this).modal(\"dispose\");\n });\n return obj;\n}\n\nfunction ezToast(args) {\n var container_available = (0, _jquery.default)(\"#ezq--notifications-toast-container\").length;\n\n if (!container_available) {\n (0, _jquery.default)(\"body\").append((0, _jquery.default)(\"<div/>\").attr({\n id: \"ezq--notifications-toast-container\"\n }).css({\n position: \"fixed\",\n bottom: \"0\",\n right: \"0\",\n \"min-width\": \"20%\"\n }));\n }\n\n var res = toastTpl.format(args.title, args.body);\n var obj = (0, _jquery.default)(res);\n\n if (args.onclose) {\n (0, _jquery.default)(obj).find(\"button[data-dismiss=toast]\").click(function () {\n args.onclose();\n });\n }\n\n if (args.onclick) {\n var body = (0, _jquery.default)(obj).find(\".toast-body\");\n body.addClass(\"cursor-pointer\");\n body.click(function () {\n args.onclick();\n });\n }\n\n var autohide = args.autohide !== false;\n var animation = args.animation !== false;\n var delay = args.delay || 10000; // 10 seconds\n\n (0, _jquery.default)(\"#ezq--notifications-toast-container\").prepend(obj);\n obj.toast({\n autohide: autohide,\n delay: delay,\n animation: animation\n });\n obj.toast(\"show\");\n return obj;\n}\n\nfunction ezQuery(args) {\n var modal = modalTpl.format(args.title);\n var obj = (0, _jquery.default)(modal);\n\n if (typeof args.body === \"string\") {\n obj.find(\".modal-body\").append(\"<p>\".concat(args.body, \"</p>\"));\n } else {\n obj.find(\".modal-body\").append((0, _jquery.default)(args.body));\n }\n\n var yes = (0, _jquery.default)(yesTpl);\n var no = (0, _jquery.default)(noTpl);\n obj.find(\".modal-footer\").append(no);\n obj.find(\".modal-footer\").append(yes);\n (0, _jquery.default)(\"main\").append(obj);\n (0, _jquery.default)(obj).on(\"hidden.bs.modal\", function () {\n (0, _jquery.default)(this).modal(\"dispose\");\n });\n (0, _jquery.default)(yes).click(function () {\n args.success();\n });\n obj.modal(\"show\");\n return obj;\n}\n\nfunction ezProgressBar(args) {\n if (args.target) {\n var _obj = (0, _jquery.default)(args.target);\n\n var pbar = _obj.find(\".progress-bar\");\n\n pbar.css(\"width\", args.width + \"%\");\n return _obj;\n }\n\n var progress = progressTpl.format(args.width);\n var modal = modalTpl.format(args.title);\n var obj = (0, _jquery.default)(modal);\n obj.find(\".modal-body\").append((0, _jquery.default)(progress));\n (0, _jquery.default)(\"main\").append(obj);\n return obj.modal(\"show\");\n}\n\nfunction ezBadge(args) {\n var mapping = {\n success: successTpl,\n error: errorTpl\n };\n var tpl = mapping[args.type].format(args.body);\n return (0, _jquery.default)(tpl);\n}\n\nvar ezq = {\n ezAlert: ezAlert,\n ezToast: ezToast,\n ezQuery: ezQuery,\n ezProgressBar: ezProgressBar,\n ezBadge: ezBadge\n};\nvar _default = ezq;\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/ezq.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/fetch.js":
|
||
/*!*********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/fetch.js ***!
|
||
\*********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! whatwg-fetch */ \"./node_modules/whatwg-fetch/fetch.js\");\n\nvar _config = _interopRequireDefault(__webpack_require__(/*! ./config */ \"./CTFd/themes/core/assets/js/config.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fetch = window.fetch;\n\nvar _default = function _default(url, options) {\n if (options === undefined) {\n options = {\n method: \"GET\",\n credentials: \"same-origin\",\n headers: {}\n };\n }\n\n url = _config.default.urlRoot + url;\n\n if (options.headers === undefined) {\n options.headers = {};\n }\n\n options.credentials = \"same-origin\";\n options.headers[\"Accept\"] = \"application/json\";\n options.headers[\"Content-Type\"] = \"application/json\";\n options.headers[\"CSRF-Token\"] = _config.default.csrfNonce;\n return fetch(url, options);\n};\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/fetch.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/patch.js":
|
||
/*!*********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/patch.js ***!
|
||
\*********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nvar _q = _interopRequireDefault(__webpack_require__(/*! q */ \"./node_modules/q/q.js\"));\n\nvar _api = __webpack_require__(/*! ./api */ \"./CTFd/themes/core/assets/js/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction mergeQueryParams(parameters, queryParameters) {\n return _objectSpread({}, parameters, {}, queryParameters);\n}\n\nfunction serializeQueryParams(parameters) {\n var str = [];\n\n for (var p in parameters) {\n if (parameters.hasOwnProperty(p)) {\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(parameters[p]));\n }\n }\n\n return str.join(\"&\");\n}\n\n_api.API.prototype.requestRaw = function (method, url, parameters, body, headers, queryParameters, form, deferred) {\n var queryParams = queryParameters && Object.keys(queryParameters).length ? serializeQueryParams(queryParameters) : null;\n var urlWithParams = url + (queryParams ? \"?\" + queryParams : \"\");\n\n if (body && !Object.keys(body).length) {\n body = undefined;\n }\n\n fetch(urlWithParams, {\n method: method,\n headers: headers,\n body: body\n }).then(function (response) {\n return response.json();\n }).then(function (body) {\n deferred.resolve(body);\n }).catch(function (error) {\n deferred.reject(error);\n });\n};\n\n_api.API.prototype.patch_user_public = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/{user_id}\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{user_id}\", parameters[\"userId\"]);\n\n if (parameters[\"userId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: userId\"));\n return deferred.promise;\n }\n\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.patch_user_private = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/users/me\";\n var headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n this.request(\"PATCH\", domain + path, parameters, body, headers, {}, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.post_unlock_list = function (parameters, body) {\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/unlocks\";\n var headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n this.request(\"POST\", domain + path, parameters, body, headers, {}, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.post_notification_list = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/notifications\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.post_files_list = function (parameters, body) {\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/files\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n this.requestRaw(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.patch_config = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs/{config_key}\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{config_key}\", parameters[\"configKey\"]);\n\n if (parameters[\"configKey\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: configKey\"));\n return deferred.promise;\n }\n\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.patch_config_list = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/configs\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.post_tag_list = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/tags\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.patch_team_public = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/teams/{team_id}\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{team_id}\", parameters[\"teamId\"]);\n\n if (parameters[\"teamId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: teamId\"));\n return deferred.promise;\n }\n\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"PATCH\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.post_challenge_attempt = function (parameters, body) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/challenges/attempt\";\n var queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"POST\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n_api.API.prototype.get_hint = function (parameters) {\n if (parameters === undefined) {\n parameters = {};\n }\n\n var deferred = _q.default.defer();\n\n var domain = this.domain,\n path = \"/hints/{hint_id}\";\n var body = {},\n queryParameters = {},\n headers = {},\n form = {};\n headers[\"Accept\"] = [\"application/json\"];\n headers[\"Content-Type\"] = [\"application/json\"];\n path = path.replace(\"{hint_id}\", parameters[\"hintId\"]);\n\n if (parameters[\"hintId\"] === undefined) {\n deferred.reject(new Error(\"Missing required parameter: hintId\"));\n return deferred.promise;\n }\n\n delete parameters[\"hintId\"];\n queryParameters = mergeQueryParams(parameters, queryParameters);\n this.request(\"GET\", domain + path, parameters, body, headers, queryParameters, form, deferred);\n return deferred.promise;\n};\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/patch.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/times.js":
|
||
/*!*********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/times.js ***!
|
||
\*********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\"));\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = function _default() {\n (0, _jquery.default)(\"[data-time]\").each(function (i, elem) {\n elem.innerText = (0, _moment.default)((0, _jquery.default)(elem).data(\"time\")).local().format(\"MMMM Do, h:mm:ss A\");\n });\n};\n\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/times.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./CTFd/themes/core/assets/js/utils.js":
|
||
/*!*********************************************!*\
|
||
!*** ./CTFd/themes/core/assets/js/utils.js ***!
|
||
\*********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
;
|
||
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WindowController = WindowController;\nexports.colorHash = colorHash;\nexports.htmlEntities = htmlEntities;\nexports.cumulativeSum = cumulativeSum;\nexports.init_notification_counter = init_notification_counter;\nexports.set_notification_counter = set_notification_counter;\nexports.inc_notification_counter = inc_notification_counter;\nexports.dec_notification_counter = dec_notification_counter;\nexports.clear_notification_counter = clear_notification_counter;\nexports.copyToClipboard = copyToClipboard;\nexports.makeSortableTables = makeSortableTables;\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_jquery.default.fn.serializeJSON = function (omit_nulls) {\n var params = {};\n var form = (0, _jquery.default)(this);\n var values = form.serializeArray();\n values = values.concat(form.find(\"input[type=checkbox]:checked\").map(function () {\n return {\n name: this.name,\n value: true\n };\n }).get());\n values = values.concat(form.find(\"input[type=checkbox]:not(:checked)\").map(function () {\n return {\n name: this.name,\n value: false\n };\n }).get());\n values.map(function (x) {\n if (omit_nulls) {\n if (x.value !== null && x.value !== \"\") {\n params[x.name] = x.value;\n } else {\n var input = form.find(\":input[name=\".concat(x.name, \"]\"));\n\n if (input.data(\"initial\") !== input.val()) {\n params[x.name] = x.value;\n }\n }\n } else {\n params[x.name] = x.value;\n }\n });\n return params;\n}; //http://stackoverflow.com/a/2648463 - wizardry!\n\n\nString.prototype.format = String.prototype.f = function () {\n var s = this,\n i = arguments.length;\n\n while (i--) {\n s = s.replace(new RegExp(\"\\\\{\" + i + \"\\\\}\", \"gm\"), arguments[i]);\n }\n\n return s;\n}; //http://stackoverflow.com/a/7616484\n\n\nString.prototype.hashCode = function () {\n var hash = 0,\n i,\n chr,\n len;\n if (this.length == 0) return hash;\n\n for (i = 0, len = this.length; i < len; i++) {\n chr = this.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n return hash;\n}; // https://gist.github.com/neilj/4146038\n// https://fastmail.blog/2012/11/26/inter-tab-communication-using-local-storage/\n\n\nfunction WindowController() {\n this.id = Math.random();\n this.isMaster = false;\n this.others = {};\n window.addEventListener(\"storage\", this, false);\n window.addEventListener(\"unload\", this, false);\n this.broadcast(\"hello\");\n var that = this;\n\n var check = function check() {\n that.check();\n that._checkTimeout = setTimeout(check, 9000);\n };\n\n var ping = function ping() {\n that.sendPing();\n that._pingTimeout = setTimeout(ping, 17000);\n };\n\n this._checkTimeout = setTimeout(check, 500);\n this._pingTimeout = setTimeout(ping, 17000);\n}\n\nWindowController.prototype.destroy = function () {\n clearTimeout(this._pingTimeout);\n clearTimeout(this._checkTimeout);\n window.removeEventListener(\"storage\", this, false);\n window.removeEventListener(\"unload\", this, false);\n this.broadcast(\"bye\");\n};\n\nWindowController.prototype.handleEvent = function (event) {\n if (event.type === \"unload\") {\n this.destroy();\n } else if (event.key === \"broadcast\") {\n try {\n var data = JSON.parse(event.newValue);\n\n if (data.id !== this.id) {\n this[data.type](data);\n }\n } catch (error) {}\n }\n};\n\nWindowController.prototype.sendPing = function () {\n this.broadcast(\"ping\");\n};\n\nWindowController.prototype.hello = function (event) {\n this.ping(event);\n\n if (event.id < this.id) {\n this.check();\n } else {\n this.sendPing();\n }\n};\n\nWindowController.prototype.ping = function (event) {\n this.others[event.id] = +new Date();\n};\n\nWindowController.prototype.bye = function (event) {\n delete this.others[event.id];\n this.check();\n};\n\nWindowController.prototype.check = function (event) {\n var now = +new Date(),\n takeMaster = true,\n id;\n\n for (id in this.others) {\n if (this.others[id] + 23000 < now) {\n delete this.others[id];\n } else if (id < this.id) {\n takeMaster = false;\n }\n }\n\n if (this.isMaster !== takeMaster) {\n this.isMaster = takeMaster;\n this.masterDidChange();\n }\n};\n\nWindowController.prototype.masterDidChange = function () {};\n\nWindowController.prototype.broadcast = function (type, data) {\n var event = {\n id: this.id,\n type: type\n };\n\n for (var x in data) {\n event[x] = data[x];\n }\n\n try {\n localStorage.setItem(\"broadcast\", JSON.stringify(event));\n } catch (error) {\n console.log(error);\n }\n};\n\nfunction colorHash(str) {\n var hash = 0;\n\n for (var i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n\n var colour = \"#\";\n\n for (var _i = 0; _i < 3; _i++) {\n var value = hash >> _i * 8 & 0xff;\n colour += (\"00\" + value.toString(16)).substr(-2);\n }\n\n return colour;\n}\n\nfunction htmlEntities(string) {\n return (0, _jquery.default)(\"<div/>\").text(string).html();\n}\n\nfunction cumulativeSum(arr) {\n var result = arr.concat();\n\n for (var i = 0; i < arr.length; i++) {\n result[i] = arr.slice(0, i + 1).reduce(function (p, i) {\n return p + i;\n });\n }\n\n return result;\n}\n\nvar storage = window.localStorage;\nvar counter_key = \"unread_notifications\";\n\nfunction init_notification_counter() {\n var count = storage.getItem(counter_key);\n\n if (count === null) {\n storage.setItem(counter_key, 0);\n } else {\n if (count > 0) {\n (0, _jquery.default)(\".badge-notification\").text(count);\n }\n }\n}\n\nfunction set_notification_counter(count) {\n storage.setItem(counter_key, count);\n}\n\nfunction inc_notification_counter() {\n var count = storage.getItem(counter_key) || 0;\n storage.setItem(counter_key, ++count);\n (0, _jquery.default)(\".badge-notification\").text(count);\n}\n\nfunction dec_notification_counter() {\n var count = storage.getItem(counter_key) || 0;\n\n if (count > 0) {\n storage.setItem(counter_key, --count);\n (0, _jquery.default)(\".badge-notification\").text(count);\n } // Always clear if count is 0\n\n\n if (count == 0) {\n clear_notification_counter();\n }\n}\n\nfunction clear_notification_counter() {\n storage.setItem(counter_key, 0);\n (0, _jquery.default)(\".badge-notification\").empty();\n}\n\nfunction copyToClipboard(event, selector) {\n // Select element\n (0, _jquery.default)(selector).select(); // Copy to clipboard\n\n document.execCommand(\"copy\"); // Show tooltip to user\n\n (0, _jquery.default)(event.target).tooltip({\n title: \"Copied!\",\n trigger: \"manual\"\n });\n (0, _jquery.default)(event.target).tooltip(\"show\");\n setTimeout(function () {\n (0, _jquery.default)(event.target).tooltip(\"hide\");\n }, 1500);\n}\n\nfunction makeSortableTables() {\n (0, _jquery.default)(\"th.sort-col\").append(\" <i class=\\\"fas fa-sort\\\"></i>\");\n (0, _jquery.default)(\"th.sort-col\").click(function () {\n var table = (0, _jquery.default)(this).parents(\"table\").eq(0);\n var rows = table.find(\"tr:gt(0)\").toArray().sort(comparer((0, _jquery.default)(this).index()));\n this.asc = !this.asc;\n\n if (!this.asc) {\n rows = rows.reverse();\n }\n\n for (var i = 0; i < rows.length; i++) {\n table.append(rows[i]);\n }\n });\n\n function comparer(index) {\n return function (a, b) {\n var valA = getCellValue(a, index),\n valB = getCellValue(b, index);\n return _jquery.default.isNumeric(valA) && _jquery.default.isNumeric(valB) ? valA - valB : valA.toString().localeCompare(valB);\n };\n }\n\n function getCellValue(row, index) {\n return (0, _jquery.default)(row).children(\"td\").eq(index).text();\n }\n}\n\n//# sourceURL=webpack:///./CTFd/themes/core/assets/js/utils.js?");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
|
||
/*!**************************************************!*\
|
||
!*** ./node_modules/moment/locale sync ^\.\/.*$ ***!
|
||
\**************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
eval("var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";\n\n//# sourceURL=webpack:///./node_modules/moment/locale_sync_^\\.\\/.*$?");
|
||
|
||
/***/ })
|
||
|
||
}]); |