Compare commits
15
Commits
a9d6dfe5c5
...
pipeline
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdb75f462d | ||
|
|
d36337aad2 | ||
|
|
c31d8169cf | ||
|
|
ee05abf4b0 | ||
|
|
d417708435 | ||
|
|
4a2687970b | ||
|
|
3269254b48 | ||
|
|
8814891ad2 | ||
|
|
f3b507ebdb | ||
|
|
f9c986ddfc | ||
|
|
51128c8a26 | ||
|
|
cef51019fe | ||
|
|
ae6d32f040 | ||
|
|
32da1acad6 | ||
|
|
1beae94045 |
@@ -0,0 +1 @@
|
|||||||
|
node_modules
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
name: "Deploy minis-data-old"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Login to Gitea Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: git.walamana.de
|
||||||
|
username: ${{vars.actions_user}}
|
||||||
|
password: ${{secrets.PACKAGES_TOKEN}}
|
||||||
|
|
||||||
|
- name: Build Docker image
|
||||||
|
run: docker build -t git.walamana.de/walamana/minis-data-old:latest .
|
||||||
|
|
||||||
|
- name: Push Docker image to registry
|
||||||
|
run: docker push git.walamana.de/walamana/minis-data-old:latest
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
process.env
|
process.env
|
||||||
test.txt
|
test.txt
|
||||||
config.js
|
|
||||||
node_modules
|
node_modules
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
FROM node:10-alpine
|
||||||
|
|
||||||
|
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
|
||||||
|
WORKDIR /home/node/app
|
||||||
|
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
USER node
|
||||||
|
RUN npm install
|
||||||
|
COPY --chown=node:node . .
|
||||||
|
|
||||||
|
EXPOSE 8383
|
||||||
|
|
||||||
|
CMD ["node", "app.js"]
|
||||||
@@ -48,6 +48,7 @@ con.connect(err => {
|
|||||||
if (err) {
|
if (err) {
|
||||||
console.log("Cant connect to MySQL database");
|
console.log("Cant connect to MySQL database");
|
||||||
console.log(err);
|
console.log(err);
|
||||||
|
console.log(config.database)
|
||||||
cause = err;
|
cause = err;
|
||||||
}
|
}
|
||||||
console.log("Connected to database!");
|
console.log("Connected to database!");
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
module.exports = {
|
||||||
|
database: {
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
user: process.env.DB_USER,
|
||||||
|
password: process.env.DB_PASSWORD,
|
||||||
|
database: process.env.DB_DATABASE
|
||||||
|
},
|
||||||
|
port: 8383
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
name: minis-data-old
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: mariadb:latest
|
||||||
|
restart: always
|
||||||
|
container_name: mariadb
|
||||||
|
environment:
|
||||||
|
MARIADB_USER: minis
|
||||||
|
MARIADB_PASSWORD: minis
|
||||||
|
MARIADB_DATABASE: minis
|
||||||
|
MARIADB_RANDOM_ROOT_PASSWORD: 1
|
||||||
|
networks:
|
||||||
|
- minis-data-old
|
||||||
|
volumes:
|
||||||
|
- "./init.sql:/docker-entrypoint-initdb.d/init.sql"
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||||
|
start_period: 10s
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
app:
|
||||||
|
image: git.walamana.de/walamana/minis-data-old:latest
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "8383:8383"
|
||||||
|
networks:
|
||||||
|
- minis-data-old
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
environment:
|
||||||
|
DB_HOST: mariadb
|
||||||
|
DB_USER: minis
|
||||||
|
DB_PASSWORD: minis
|
||||||
|
DB_DATABASE: minis
|
||||||
|
|
||||||
|
networks:
|
||||||
|
minis-data-old:
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
-- MySQL dump 10.19 Distrib 10.3.39-MariaDB, for debian-linux-gnu (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: minis
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 10.3.39-MariaDB-0+deb10u1
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `anwesenheit`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `anwesenheit`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `anwesenheit` (
|
||||||
|
`USERNAME` varchar(100) NOT NULL,
|
||||||
|
`gottesdienst_ID` int(11) NOT NULL,
|
||||||
|
`ANWESENHEIT` int(11) NOT NULL,
|
||||||
|
UNIQUE KEY `unique_entry` (`USERNAME`,`gottesdienst_ID`),
|
||||||
|
KEY `USERNAME` (`USERNAME`),
|
||||||
|
KEY `gottesdienst_ID` (`gottesdienst_ID`) USING BTREE,
|
||||||
|
CONSTRAINT `anwesenheit_ibfk_3` FOREIGN KEY (`USERNAME`) REFERENCES `ministranten` (`USERNAME`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `anwesenheit_ibfk_4` FOREIGN KEY (`gottesdienst_ID`) REFERENCES `gottesdienst` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `gottesdienst`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `gottesdienst`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `gottesdienst` (
|
||||||
|
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`NAME` varchar(200) DEFAULT NULL,
|
||||||
|
`DATUM` datetime NOT NULL,
|
||||||
|
`ANWESENHEIT` time NOT NULL,
|
||||||
|
`PROBE` datetime DEFAULT NULL,
|
||||||
|
`ORT` varchar(500) DEFAULT NULL,
|
||||||
|
`gruppe_ID` int(11) NOT NULL,
|
||||||
|
`FESTGESETZT` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY (`ID`),
|
||||||
|
KEY `gruppe_ID` (`gruppe_ID`),
|
||||||
|
CONSTRAINT `gottesdienst_ibfk_1` FOREIGN KEY (`gruppe_ID`) REFERENCES `gruppe` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=670 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `gruppe`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `gruppe`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `gruppe` (
|
||||||
|
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`START` date NOT NULL,
|
||||||
|
`END` date NOT NULL,
|
||||||
|
PRIMARY KEY (`ID`),
|
||||||
|
KEY `ID` (`ID`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `ministranten`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `ministranten`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `ministranten` (
|
||||||
|
`USERNAME` varchar(100) NOT NULL,
|
||||||
|
`VORNAME` varchar(100) NOT NULL,
|
||||||
|
`NACHNAME` varchar(100) NOT NULL,
|
||||||
|
`PASSWORT` varchar(100) NOT NULL,
|
||||||
|
`EMAIL` varchar(200) DEFAULT NULL,
|
||||||
|
`USER_TOKEN` varchar(200) NOT NULL,
|
||||||
|
PRIMARY KEY (`USERNAME`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
-- Dump completed on 2024-08-07 11:43:48
|
||||||
Generated
+371
-185
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Miniportal</title>
|
||||||
|
<base href="/beta/">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet">
|
||||||
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<mini-root></mini-root>
|
||||||
|
<script type="text/javascript" src="https://minis.walamana.de/beta/runtime.js"></script><script type="text/javascript" src="https://minis.walamana.de/beta/polyfills.js"></script><script type="text/javascript" src="https://minis.walamana.de/beta/styles.js"></script><script type="text/javascript" src="https://minis.walamana.de/beta/vendor.js"></script><script type="text/javascript" src="https://minis.walamana.de/beta/main.js"></script></body>
|
||||||
|
</html>
|
||||||
Executable
+1674
File diff suppressed because one or more lines are too long
Executable
+1
File diff suppressed because one or more lines are too long
Executable
+10748
File diff suppressed because it is too large
Load Diff
Executable
+1
File diff suppressed because one or more lines are too long
Executable
+154
@@ -0,0 +1,154 @@
|
|||||||
|
/******/ (function(modules) { // webpackBootstrap
|
||||||
|
/******/ // install a JSONP callback for chunk loading
|
||||||
|
/******/ function webpackJsonpCallback(data) {
|
||||||
|
/******/ var chunkIds = data[0];
|
||||||
|
/******/ var moreModules = data[1];
|
||||||
|
/******/ var executeModules = data[2];
|
||||||
|
/******/
|
||||||
|
/******/ // add "moreModules" to the modules object,
|
||||||
|
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||||
|
/******/ var moduleId, chunkId, i = 0, resolves = [];
|
||||||
|
/******/ for(;i < chunkIds.length; i++) {
|
||||||
|
/******/ chunkId = chunkIds[i];
|
||||||
|
/******/ if(installedChunks[chunkId]) {
|
||||||
|
/******/ resolves.push(installedChunks[chunkId][0]);
|
||||||
|
/******/ }
|
||||||
|
/******/ installedChunks[chunkId] = 0;
|
||||||
|
/******/ }
|
||||||
|
/******/ for(moduleId in moreModules) {
|
||||||
|
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
||||||
|
/******/ modules[moduleId] = moreModules[moduleId];
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
|
||||||
|
/******/
|
||||||
|
/******/ while(resolves.length) {
|
||||||
|
/******/ resolves.shift()();
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // add entry modules from loaded chunk to deferred list
|
||||||
|
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
|
||||||
|
/******/
|
||||||
|
/******/ // run deferred modules when all chunks ready
|
||||||
|
/******/ return checkDeferredModules();
|
||||||
|
/******/ };
|
||||||
|
/******/ function checkDeferredModules() {
|
||||||
|
/******/ var result;
|
||||||
|
/******/ for(var i = 0; i < deferredModules.length; i++) {
|
||||||
|
/******/ var deferredModule = deferredModules[i];
|
||||||
|
/******/ var fulfilled = true;
|
||||||
|
/******/ for(var j = 1; j < deferredModule.length; j++) {
|
||||||
|
/******/ var depId = deferredModule[j];
|
||||||
|
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
|
||||||
|
/******/ }
|
||||||
|
/******/ if(fulfilled) {
|
||||||
|
/******/ deferredModules.splice(i--, 1);
|
||||||
|
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ return result;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // The module cache
|
||||||
|
/******/ var installedModules = {};
|
||||||
|
/******/
|
||||||
|
/******/ // object to store loaded and loading chunks
|
||||||
|
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||||
|
/******/ // Promise = chunk loading, 0 = chunk loaded
|
||||||
|
/******/ var installedChunks = {
|
||||||
|
/******/ "runtime": 0
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ var deferredModules = [];
|
||||||
|
/******/
|
||||||
|
/******/ // The require function
|
||||||
|
/******/ function __webpack_require__(moduleId) {
|
||||||
|
/******/
|
||||||
|
/******/ // Check if module is in cache
|
||||||
|
/******/ if(installedModules[moduleId]) {
|
||||||
|
/******/ return installedModules[moduleId].exports;
|
||||||
|
/******/ }
|
||||||
|
/******/ // Create a new module (and put it into the cache)
|
||||||
|
/******/ var module = installedModules[moduleId] = {
|
||||||
|
/******/ i: moduleId,
|
||||||
|
/******/ l: false,
|
||||||
|
/******/ exports: {}
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||||
|
/******/
|
||||||
|
/******/ // Flag the module as loaded
|
||||||
|
/******/ module.l = true;
|
||||||
|
/******/
|
||||||
|
/******/ // Return the exports of the module
|
||||||
|
/******/ return module.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // expose the modules object (__webpack_modules__)
|
||||||
|
/******/ __webpack_require__.m = modules;
|
||||||
|
/******/
|
||||||
|
/******/ // expose the module cache
|
||||||
|
/******/ __webpack_require__.c = installedModules;
|
||||||
|
/******/
|
||||||
|
/******/ // define getter function for harmony exports
|
||||||
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||||
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||||
|
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // define __esModule on exports
|
||||||
|
/******/ __webpack_require__.r = function(exports) {
|
||||||
|
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||||
|
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||||
|
/******/ }
|
||||||
|
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // create a fake namespace object
|
||||||
|
/******/ // mode & 1: value is a module id, require it
|
||||||
|
/******/ // mode & 2: merge all properties of value into the ns
|
||||||
|
/******/ // mode & 4: return value when already ns object
|
||||||
|
/******/ // mode & 8|1: behave like require
|
||||||
|
/******/ __webpack_require__.t = function(value, mode) {
|
||||||
|
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||||
|
/******/ if(mode & 8) return value;
|
||||||
|
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||||
|
/******/ var ns = Object.create(null);
|
||||||
|
/******/ __webpack_require__.r(ns);
|
||||||
|
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||||
|
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||||
|
/******/ return ns;
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||||
|
/******/ __webpack_require__.n = function(module) {
|
||||||
|
/******/ var getter = module && module.__esModule ?
|
||||||
|
/******/ function getDefault() { return module['default']; } :
|
||||||
|
/******/ function getModuleExports() { return module; };
|
||||||
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||||
|
/******/ return getter;
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Object.prototype.hasOwnProperty.call
|
||||||
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||||
|
/******/
|
||||||
|
/******/ // __webpack_public_path__
|
||||||
|
/******/ __webpack_require__.p = "https://minis.walamana.de/beta/";
|
||||||
|
/******/
|
||||||
|
/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
|
||||||
|
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
|
||||||
|
/******/ jsonpArray.push = webpackJsonpCallback;
|
||||||
|
/******/ jsonpArray = jsonpArray.slice();
|
||||||
|
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
|
||||||
|
/******/ var parentJsonpFunction = oldJsonpFunction;
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // run deferred modules from other chunks
|
||||||
|
/******/ checkDeferredModules();
|
||||||
|
/******/ })
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ ([]);
|
||||||
|
//# sourceMappingURL=runtime.js.map
|
||||||
Executable
+1
File diff suppressed because one or more lines are too long
Executable
+566
File diff suppressed because one or more lines are too long
Executable
+1
File diff suppressed because one or more lines are too long
Executable
+165992
File diff suppressed because one or more lines are too long
Executable
+1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user