Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
app
/
hosting-settings
/
File Content:
conflicts-checker.js.map
{"version":3,"file":"javascript/app/hosting-settings/conflicts-checker.js?f3f76835feb6483f20c0","mappings":"4KAMA,MAAMA,UAAyBC,EAAAA,UAC3BC,kBAAAA,CAAmBC,GACfC,MAAMF,mBAAmB,CACrBG,OAAQC,EAAAA,OAAOC,WAAW,sDACvBJ,IAGPK,KAAKC,UAAYD,KAAKE,gBAAgB,WAAY,CAAC,GACnDF,KAAKG,gBAAkBH,KAAKE,gBAAgB,iBAAkB,IAC9DF,KAAKI,yBAA2BJ,KAAKE,gBAAgB,0BACzD,CAEAG,oBAAAA,CAAqBC,EAASC,EAAcC,GACxCC,EAAAA,WAAWC,KAAK,CACZC,KAAMF,EAAAA,WAAWG,WACjBC,QAAS,UACTC,KAAMd,KAAKe,KAAK,kCAChBC,YAAahB,KAAKe,KAAK,wCACvBE,SAAAA,GACQT,EACAA,IACO,UAAYF,EAAQY,QAAQC,eAAiB,aAAeb,EAAQK,MAE3EL,EAAQc,SAAWb,EACnBD,EAAQe,SACD,WAAaf,EAAQY,QAAQC,gBACpCb,EAAQgB,MAAQf,EAExB,EACAgB,aAAc,CACVC,IAAKxB,KAAKe,KAAK,qBACfU,GAAIzB,KAAKe,KAAK,sBAG1B,CAEAW,mBAAAA,CAAoBC,EAAQrB,EAASsB,GACjC,MAAMC,EAAsBC,SAASC,eAAe,GAAG/B,KAAKG,+BAG5D,IAFsB0B,GAAuBA,EAAoBT,UAAaS,IAExC,eAAlBvB,EAAQgB,OAA4C,mBAAlBhB,EAAQgB,MAA4B,CACtF,IAAIf,EAAeP,KAAKC,UAAU0B,GAClCC,EAAStB,EAASC,GAAc,WACxB,QAAUA,GAAgB,KAAOA,EAC7BsB,GACAA,EAAoBT,SAAU,EAC9BU,SAASC,eAAe,GAAG/B,KAAKG,wBAAwB6B,UAAW,IAGnEzB,EAAeD,EAAQ2B,QAAQ,GAAGX,MAClChB,EAAQgB,MAAQf,GAGpBD,EAAQgB,MAAQf,CAExB,GACJ,CACJ,CAEA2B,wBAAAA,CAAyBP,EAAQrB,EAASsB,GACtC,GAAe,gBAAXD,GACA,IAAK3B,KAAKmC,mBAAmB7B,EAAQgB,OAAQ,CACzC,MAAMf,EAAeP,KAAKoC,4BAA4BC,QACtDT,EAAStB,EAASC,GAAc,WAC5BD,EAAQgB,MAAQf,EACZ+B,yBACAA,yBAER,GACJ,MACG,CAEH,MAAMC,EAAOvC,KAAKmC,mBAAmBnC,KAAKwC,8BAA8BlB,OACpEiB,IAAS,IAAMA,EAAKE,IAAIC,QAAQpC,EAAQgB,QACxCM,EAAStB,EAASiC,EAAKE,IAAI,GAEnC,CACJ,CAEAL,yBAAAA,GACI,OAAOpC,KAAKC,UAAU0C,aAAa,EACvC,CAEAR,kBAAAA,CAAmBE,GACf,OAAOrC,KAAKC,UAAU0C,aAAaC,MAAKC,GAAQA,EAAKR,UAAYA,GACrE,CAEAS,cAAAA,CAAexC,EAASsB,GACpB,MAAMD,EAAS3B,KAAK+C,eAAezC,GAEnC,GAAI,UAAYA,EAAQY,QAAQC,eAAiB,aAAeb,EAAQK,KAAM,CAC1E,MAAMW,EAAQ,iBAAmBK,EAAS3B,KAAKC,UAAU+C,YAAchD,KAAKC,UAAU0B,GACjFrB,EAAQc,SAAY,MAAQE,GAAS,OAASA,GAExChB,EAAQc,SAAY,KAAOE,GAAS,QAAUA,GACrDM,EAAStB,GAAS,GAFlBsB,EAAStB,GAAS,EAI1B,KAAW,WAAaA,EAAQY,QAAQC,gBAChCQ,EAAOsB,WAAW,mBAAqB,gBAAkBtB,EACzD3B,KAAKkC,yBAAyBP,EAAQrB,EAASsB,GACxC,QAAU5B,KAAKC,UAAU0B,IAAWrB,EAAQgB,QAAUtB,KAAKC,UAAU0B,KAC7D,UAAXA,EACA3B,KAAK0B,oBAAoBC,EAAQrB,EAASsB,GAE1CA,EAAStB,EAASN,KAAKC,UAAU0B,KAIjD,CAEAuB,qBAAAA,GACItD,MAAMsD,wBAENlD,KAAKmD,UAAY,GAEjBC,OAAOC,KAAKrD,KAAKC,WAAWqD,SAAQ3B,IAChC,IAAIrB,EAAUwB,SAASC,eACnB/B,KAAKG,gBAAkBwB,EAAO4B,QAAQ,UAAU,CAACC,EAAGC,IAASA,EAAKC,iBAEjEpD,IACG,QAAUqB,EACVrB,EAAUwB,SAASC,eAAe,mBAC3B,gBAAkBJ,EACzBrB,EAAUwB,SAASC,eAAe,2BAC3B,iBAAmBJ,EAC1BrB,EAAUwB,SAASC,eAAe,GAAG/B,KAAKG,+BACnC,iBAAmBwB,EAC1BrB,EAAUwB,SAASC,eAAe,uDAC3B,iBAAmBJ,GAC1BrB,EAAUwB,SAASC,eAAe,GAAG/B,KAAKG,8BACnC2B,SAASC,eAAe,8CAC/B/B,KAAKwC,8BAAgClC,EACrCN,KAAKmD,UAAUQ,QACR7B,SAAS8B,iBAAiB,UAAU5D,KAAKG,oCACzC2B,SAAS8B,iBAAiB,2DAE1B,kBAAoBjC,IAC3BrB,EAAUwB,SAASC,eAAe,gDAE7BzB,IACDA,EAAUwB,SAASC,eAAe,gEAEtC/B,KAAKC,UAAU4D,qBAAuB7D,KAAKC,UAAU0B,KAIxDrB,GAILN,KAAKmD,UAAUQ,KAAKrD,EAAQ,IAGhCN,KAAKmD,UAAUG,SAAQhD,IACnB,MAAMwD,EAAa,WAAaxD,EAAQY,QAAQC,cAAiB,SAAW,QAC5Eb,EAAQyD,iBAAiBD,GAAW,KAC5B9D,KAAKI,0BAA4BJ,KAAKI,yBAAyBgB,SAInEpB,KAAK8C,eAAexC,EAASN,KAAKK,qBAAqB2D,KAAKhE,MAAM,GACpE,IAGN,MAAM6B,EAAsBC,SAASC,eAAe,GAAG/B,KAAKG,+BACtD8D,EAAenC,SAASC,eAAe,GAAG/B,KAAKG,wBACjD0B,GACAA,EAAoBkC,iBAAiB,SAAS,KACtC/D,KAAKI,0BAA4BJ,KAAKI,yBAAyBgB,UAI/DS,EAAoBT,SAAY,KAAOpB,KAAKC,UAAUiE,OAAS,QAAUlE,KAAKC,UAAUiE,OACxFlE,KAAKK,qBAAqBwB,GAAqB,GAAO,WAClDA,EAAoBT,SAAU,EAC9B6C,EAAaE,SACjB,GACJ,IAIRnE,KAAKoE,kBAAkBC,oBAAsBrE,KAAKsE,qBAAqBN,KAAKhE,KAChF,CAEAuE,UAAAA,GACI,MAAMC,EAAoBxE,KAAKoE,kBAAkBK,OACjDzE,KAAKoE,kBAAkBK,OAAS,IAAIC,IAAS1E,KAAK2E,UAAUH,KAAsBE,GAC9E1E,KAAKI,0BACLJ,KAAKI,yBAAyB2D,iBAAiB,SAAS,KAChD/D,KAAKI,yBAAyBgB,SAIlCpB,KAAKsE,sBAAsB,GAGvC,CAEAK,SAAAA,CAAUH,GACN,GAAKxE,KAAKI,0BAA4BJ,KAAKI,yBAAyBgB,SAC5DU,SAASC,eAAe,GAAG/B,KAAKG,mCAAqC2B,SAASC,eAAe,GAAG/B,KAAKG,iCAAiCiB,QAE1I,OAAOoD,IAGX,IAAII,GAAiB,EACjBC,EAAsB,kBAkB1B,OAhBA7E,KAAKmD,UAAUG,SAAQhD,IACnBN,KAAK8C,eAAexC,GAAS,KACzB,IAAIqB,EAAS3B,KAAK+C,eAAezC,GACjC,GAAIqB,EAAOsB,WAAW,kBAAmB,CACrC,GAAItB,IAAW,iBAAiB3B,KAAKwC,8BAA8BlB,QAC/D,OAEJK,EAAS,gBACb,CACAkD,GAAuB,OAAO7E,KAAKe,KAAK,UAAUY,YAClDiD,GAAiB,CAAI,GACvB,IAGNC,GAAuB,QAElBD,GAILnE,EAAAA,WAAWC,KAAK,CACZC,KAAMF,EAAAA,WAAWG,WACjBC,QAAS,UACTC,KAAMd,KAAKe,KAAK,6BAChBC,YAAahB,KAAKe,KAAK,mCAAqC8D,EAC5DC,sBAAuB,MACvBC,UAAAA,GACIP,GACJ,EACAjD,aAAc,CACVC,IAAKxB,KAAKe,KAAK,qBACfU,GAAIzB,KAAKe,KAAK,wBAIf,GAlBIyD,GAmBf,CAEAF,oBAAAA,GACItE,KAAKmD,UAAUG,SAAQhD,IACnB,MAAMqB,EAAS3B,KAAK+C,eAAezC,GACnC,GAAI,UAAYqB,GAAW,KAAO3B,KAAKC,UAAU0B,IAAW,QAAU3B,KAAKC,UAAU0B,GAK9E,GAAI,gBAAkBA,EACzBrB,EAAQgB,MAAQtB,KAAKoC,4BAA4BC,QAC7CC,yBACAA,+BAED,GAAIX,EAAOsB,WAAW,kBAAmB,CAC5C,MAAMZ,EAAUV,EAAOqD,UAAU,IAC3BzC,EAAOvC,KAAKmC,mBAAmBE,GACjCE,IACAjC,EAAQgB,MAAQiB,EAAKE,IAAI,GAEjC,MAAO,GAAI,UAAYnC,EAAQY,QAAQC,eAAiB,aAAeb,EAAQK,KAAM,CACjF,MAAMW,EAAQ,iBAAmBK,EAAS3B,KAAKC,UAAU+C,YAAchD,KAAKC,UAAU0B,GAClF,MAAQL,GAAS,OAASA,EAC1BhB,EAAQc,SAAU,EACX,KAAOE,GAAS,QAAUA,IACjChB,EAAQc,SAAU,GAItBd,EAAQc,SAAWd,EAAQc,QAC3Bd,EAAQe,OACZ,KAAW,WAAaf,EAAQY,QAAQC,eAAiB,QAAUnB,KAAKC,UAAU0B,KAC9ErB,EAAQgB,MAAQtB,KAAKC,UAAU0B,SA3B3BG,SAASC,eAAe,GAAG/B,KAAKG,iCAChC2B,SAASC,eAAe,GAAG/B,KAAKG,+BAA+BiB,SAAU,EACzEU,SAASC,eAAe,GAAG/B,KAAKG,wBAAwB6B,UAAW,EA0B3E,GAER,CAEAe,cAAAA,CAAezC,GACX,OAAOA,EAAQ2E,GAAGC,MAAM,KAAKC,MAAM5B,QAAQ,UAAU6B,GAAK,IAAIA,EAAEjE,iBACpE,EAGJ,S,qEChSA,UAAkBkE,+BAA8BC,OAC5CC,EAAAA,EAAAA,UAAQ,KACJ,IAAI/F,EAAAA,QAAiB,CACjBgG,wBAAyBH,EAA4BvD,SAASC,eAAesD,GAA6B,QACvGC,GACL,GAET,C","sources":["webpack:///./app/hosting-settings/conflicts-checker/ConflictsChecker.js","webpack:///./app/hosting-settings/conflicts-checker/index.js"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\n/* global onAfterPhpHandlerChange */\n\nimport { messageBox, Component, Locale } from 'jsw';\n\nclass ConflictsChecker extends Component {\n _initConfiguration(config) {\n super._initConfiguration({\n locale: Locale.getSection('admin.controllers.customer-service-plan._shared'),\n ...config,\n });\n\n this._defaults = this._getConfigParam('defaults', {});\n this._elementsPrefix = this._getConfigParam('elementsPrefix', '');\n this._insecureHostingCheckbox = this._getConfigParam('insecureHostingCheckbox');\n }\n\n _showConflictWarning(element, defaultValue, resetHandler) {\n messageBox.show({\n type: messageBox.TYPE_YESNO,\n subtype: 'confirm',\n text: this.lmsg('sureToApplyConflictOptionTitle'),\n description: this.lmsg('sureToApplyConflictOptionDescription'),\n onNoClick() {\n if (resetHandler) {\n resetHandler();\n } else if ('input' === element.tagName.toLowerCase() && 'checkbox' === element.type) {\n // set inverted value and simulate the selection by click to fire event observers\n element.checked = !defaultValue;\n element.click();\n } else if ('select' === element.tagName.toLowerCase()) {\n element.value = defaultValue;\n }\n },\n buttonTitles: {\n yes: this.lmsg('buttonConflictYes'),\n no: this.lmsg('buttonConflictNo'),\n },\n });\n }\n\n _checkShellConflict(option, element, callback) {\n const shellEnabledElement = document.getElementById(`${this._elementsPrefix}shellEnabled`);\n const shellEnabled = (shellEnabledElement && shellEnabledElement.checked) || !shellEnabledElement;\n\n if (shellEnabled && element.value !== '/bin/false' && element.value !== 'Login Disabled') {\n let defaultValue = this._defaults[option];\n callback(element, defaultValue, function () {\n if ('off' === defaultValue || '' === defaultValue) {\n if (shellEnabledElement) {\n shellEnabledElement.checked = false;\n document.getElementById(`${this._elementsPrefix}shell`).disabled = true;\n } else {\n // first value is \"disable shell\", so it's ok\n defaultValue = element.options[0].value;\n element.value = defaultValue;\n }\n } else {\n element.value = defaultValue;\n }\n });\n }\n }\n\n _checkPhpHandlerConflict(option, element, callback) {\n if (option === 'php_handler') {\n if (!this._getPhpHandlerData(element.value)) {\n const defaultValue = this._getDefaultPhpHandlerData().handler;\n callback(element, defaultValue, function () {\n element.value = defaultValue;\n if (onAfterPhpHandlerChange) {\n onAfterPhpHandlerChange();\n }\n });\n }\n } else {\n // php_handler_id\n const data = this._getPhpHandlerData(this._phpSettingsPhpHandlerElement.value);\n if (data && -1 === data.ids.indexOf(element.value)) {\n callback(element, data.ids[0]);\n }\n }\n }\n\n _getDefaultPhpHandlerData() {\n return this._defaults.php_handlers[0];\n }\n\n _getPhpHandlerData(handler) {\n return this._defaults.php_handlers.find(item => item.handler === handler);\n }\n\n _checkConflict(element, callback) {\n const option = this._getOptionName(element);\n\n if ('input' === element.tagName.toLowerCase() && 'checkbox' === element.type) {\n const value = 'ssl_redirect' === option ? this._defaults.sslRedirect : this._defaults[option];\n if (!element.checked && ('1' === value || 'on' === value)) {\n callback(element, true);\n } else if (element.checked && ('' === value || 'off' === value)) {\n callback(element, false);\n }\n } else if ('select' === element.tagName.toLowerCase()) {\n if (option.startsWith('php_handler_id') || 'php_handler' === option) {\n this._checkPhpHandlerConflict(option, element, callback);\n } else if ('any' !== this._defaults[option] && element.value !== this._defaults[option]) {\n if (option === 'shell') {\n this._checkShellConflict(option, element, callback);\n } else {\n callback(element, this._defaults[option]);\n }\n }\n }\n }\n\n _initComponentElement() {\n super._initComponentElement();\n\n this._elements = [];\n\n Object.keys(this._defaults).forEach(option => {\n let element = document.getElementById(\n this._elementsPrefix + option.replace(/_(\\w)/g, (_, char) => char.toUpperCase()),\n );\n if (!element) {\n if ('ssl' === option) {\n element = document.getElementById('sslSettings-ssl');\n } else if ('sslRedirect' === option) {\n element = document.getElementById('sslSettings-sslRedirect');\n } else if ('write_modify' === option) {\n element = document.getElementById(`${this._elementsPrefix}write_modify`);\n } else if ('iis_app_pool' === option) {\n element = document.getElementById('tabs-performanceTab-performanceSubForm-iis_app_pool');\n } else if ('php_handlers' === option) {\n element = document.getElementById(`${this._elementsPrefix}phpHandler`)\n || document.getElementById('tabs-phpSettingsTab-phpSettings-phpHandler');\n this._phpSettingsPhpHandlerElement = element;\n this._elements.push(\n ...document.querySelectorAll(`*[id^=\"${this._elementsPrefix}phpHandlerId\"]`),\n ...document.querySelectorAll('*[id^=\"tabs-phpSettingsTab-phpSettings-phpHandlerId\"]'),\n );\n } else if ('php_safe_mode' === option) {\n element = document.getElementById('tabs-phpTab-php-general-safe_mode_predefined');\n // hosting panel\n if (!element) {\n element = document.getElementById('tabs-phpSettingsTab-phpsection-general-safe_mode_predefined');\n }\n this._defaults.safe_mode_predefined = this._defaults[option];\n }\n }\n\n if (!element) {\n return;\n }\n\n this._elements.push(element);\n });\n\n this._elements.forEach(element => {\n const eventType = ('select' === element.tagName.toLowerCase()) ? 'change' : 'click';\n element.addEventListener(eventType, () => {\n if (this._insecureHostingCheckbox && this._insecureHostingCheckbox.checked) {\n return;\n }\n\n this._checkConflict(element, this._showConflictWarning.bind(this));\n });\n });\n\n const shellEnabledElement = document.getElementById(`${this._elementsPrefix}shellEnabled`);\n const shellElement = document.getElementById(`${this._elementsPrefix}shell`);\n if (shellEnabledElement) {\n shellEnabledElement.addEventListener('click', () => {\n if (this._insecureHostingCheckbox && this._insecureHostingCheckbox.checked) {\n return;\n }\n\n if (shellEnabledElement.checked && ('' === this._defaults.shell || 'off' === this._defaults.shell)) {\n this._showConflictWarning(shellEnabledElement, false, function () {\n shellEnabledElement.checked = false;\n shellElement.disable();\n });\n }\n });\n }\n\n this._componentElement.applySecureSettings = this._applySecureSettings.bind(this);\n }\n\n _addEvents() {\n const origSubmitHandler = this._componentElement.submit;\n this._componentElement.submit = (...args) => this._onSubmit(origSubmitHandler, ...args);\n if (this._insecureHostingCheckbox) {\n this._insecureHostingCheckbox.addEventListener('click', () => {\n if (this._insecureHostingCheckbox.checked) {\n return;\n }\n\n this._applySecureSettings();\n });\n }\n }\n\n _onSubmit(origSubmitHandler) {\n if ((this._insecureHostingCheckbox && this._insecureHostingCheckbox.checked)\n || (document.getElementById(`${this._elementsPrefix}hostingEnabled`) && !document.getElementById(`${this._elementsPrefix}hostingEnabled`).checked)\n ) {\n return origSubmitHandler();\n }\n\n let conflictsFound = false;\n let conflictOptionsHtml = '<ul class=\"ul\">';\n\n this._elements.forEach(element => {\n this._checkConflict(element, () => {\n let option = this._getOptionName(element);\n if (option.startsWith('php_handler_id')) {\n if (option !== `php_handler_id${this._phpSettingsPhpHandlerElement.value}`) {\n return;\n }\n option = 'php_handler_id';\n }\n conflictOptionsHtml += `<li>${this.lmsg(`option_${option}`)}</li>`;\n conflictsFound = true;\n });\n });\n\n conflictOptionsHtml += '</ul>';\n\n if (!conflictsFound) {\n return origSubmitHandler();\n }\n\n messageBox.show({\n type: messageBox.TYPE_YESNO,\n subtype: 'confirm',\n text: this.lmsg('foundConflictOptionsTitle'),\n description: this.lmsg('foundConflictOptionsDescription') + conflictOptionsHtml,\n descriptionWrapperTag: 'div',\n onYesClick() {\n origSubmitHandler();\n },\n buttonTitles: {\n yes: this.lmsg('buttonConflictYes'),\n no: this.lmsg('buttonConflictNo'),\n },\n });\n\n return false;\n }\n\n _applySecureSettings() {\n this._elements.forEach(element => {\n const option = this._getOptionName(element);\n if ('shell' === option && ('' === this._defaults[option] || 'off' === this._defaults[option])) {\n if (document.getElementById(`${this._elementsPrefix}shellEnabled`)) {\n document.getElementById(`${this._elementsPrefix}shellEnabled`).checked = false;\n document.getElementById(`${this._elementsPrefix}shell`).disabled = true;\n }\n } else if ('php_handler' === option) {\n element.value = this._getDefaultPhpHandlerData().handler;\n if (onAfterPhpHandlerChange) {\n onAfterPhpHandlerChange();\n }\n } else if (option.startsWith('php_handler_id')) {\n const handler = option.substring('php_handler_id'.length);\n const data = this._getPhpHandlerData(handler);\n if (data) {\n element.value = data.ids[0];\n }\n } else if ('input' === element.tagName.toLowerCase() && 'checkbox' === element.type) {\n const value = 'ssl_redirect' === option ? this._defaults.sslRedirect : this._defaults[option];\n if ('1' === value || 'on' === value) {\n element.checked = true;\n } else if ('' === value || 'off' === value) {\n element.checked = false;\n }\n\n // invert the value and simulate the selection by click to fire event observers\n element.checked = !element.checked;\n element.click();\n } else if ('select' === element.tagName.toLowerCase() && 'any' !== this._defaults[option]) {\n element.value = this._defaults[option];\n }\n });\n }\n\n _getOptionName(element) {\n return element.id.split('-').pop().replace(/[A-Z]/g, c => `_${c.toLowerCase()}`);\n }\n}\n\nexport default ConflictsChecker;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { onReady } from 'jsw';\nimport ConflictsChecker from './ConflictsChecker';\n\nexport default ({ insecureHostingCheckboxId, ...props }) => {\n onReady(() => {\n new ConflictsChecker({\n insecureHostingCheckbox: insecureHostingCheckboxId ? document.getElementById(insecureHostingCheckboxId) : null,\n ...props,\n });\n });\n};\n"],"names":["ConflictsChecker","Component","_initConfiguration","config","super","locale","Locale","getSection","this","_defaults","_getConfigParam","_elementsPrefix","_insecureHostingCheckbox","_showConflictWarning","element","defaultValue","resetHandler","messageBox","show","type","TYPE_YESNO","subtype","text","lmsg","description","onNoClick","tagName","toLowerCase","checked","click","value","buttonTitles","yes","no","_checkShellConflict","option","callback","shellEnabledElement","document","getElementById","disabled","options","_checkPhpHandlerConflict","_getPhpHandlerData","_getDefaultPhpHandlerData","handler","onAfterPhpHandlerChange","data","_phpSettingsPhpHandlerElement","ids","indexOf","php_handlers","find","item","_checkConflict","_getOptionName","sslRedirect","startsWith","_initComponentElement","_elements","Object","keys","forEach","replace","_","char","toUpperCase","push","querySelectorAll","safe_mode_predefined","eventType","addEventListener","bind","shellElement","shell","disable","_componentElement","applySecureSettings","_applySecureSettings","_addEvents","origSubmitHandler","submit","args","_onSubmit","conflictsFound","conflictOptionsHtml","descriptionWrapperTag","onYesClick","substring","id","split","pop","c","insecureHostingCheckboxId","props","onReady","insecureHostingCheckbox"],"sourceRoot":""}
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
conflicts-checker.js
6676 bytes
0644
conflicts-checker.js.map
20141 bytes
0644
N4ST4R_ID | Naxtarrr