diff --git a/showtime/client/src/html/admin.html b/showtime/client/src/html/admin.html index b53ab9b56a48f8638ff237c5f5712a83b35ca88f..7f00e116d514db15eda345ca19e847ebc207bbd1 100644 --- a/showtime/client/src/html/admin.html +++ b/showtime/client/src/html/admin.html @@ -26,8 +26,8 @@ <div id="createShow"> <input id="desc" type="text" placeholder="description"/> - <input id="place" type="number" placeholder="capacity" min="1" max="5" /> - <button id="create">Ajouter</button> + <input id="place" type="number" placeholder="capacity" min="1" max="5" value="1" /> + <button id="create" disabled>Ajouter</button> </div> <div id="list"> diff --git a/showtime/client/src/scripts/admin.client.js b/showtime/client/src/scripts/admin.client.js index 098a0d286a9ca1976eba2b430c1462be15745051..9662abd8ede96c837e2a322bc886593f446208b0 100644 --- a/showtime/client/src/scripts/admin.client.js +++ b/showtime/client/src/scripts/admin.client.js @@ -11,25 +11,41 @@ const setup = () => { document.getElementById('create').addEventListener('click', createShow); displayList(); document.getElementById('logout').addEventListener('click', logout); + document.getElementById("desc").addEventListener('input', activeButton); } window.addEventListener('DOMContentLoaded', setup); +const getUser = async () => { + const requestOptions = { + method: 'GET', + }; + const response = await fetch('/me', requestOptions); + if (response.ok) { + const user = await response.json(); + username.textContent = user.name; + } + else { + const error = await response.json(); + handleError(error); + } +} + // fetch GET all shows const displayList = async () => { - const requestOptions = { - method : 'GET' - }; - const response = await fetch('/admin/items', requestOptions) - const allShows = await response.json(); + const requestOptions = { + method: 'GET' + }; + const response = await fetch('/admin/items', requestOptions) + const allShows = await response.json(); - //(ici : code exploitation de allShows) - const list = document.getElementById('list'); - list.textContent = ''; - allShows.forEach( show => addToList(show, list) ); - } + //(ici : code exploitation de allShows) + const list = document.getElementById('list'); + list.textContent = ''; + allShows.forEach(show => addToList(show, list)); +} -const addToList = (show,list) => { +const addToList = (show, list) => { const node = document.createElement('div'); node.className = 'show'; node.textContent = `${show.description} (${show.places})`; @@ -42,36 +58,19 @@ const addToList = (show,list) => { list.appendChild(node); } -// fetch DELETE to delete one task with given show id -const deleteShow = - async showId => { - const requestOptions = { - method :'DELETE' - }; - const response = await fetch(`/admin/${showId}`, requestOptions); - if (response.ok) { - displayMessage('suppression effectuée'); - displayList(); - await fetch(`/${showId}`, requestOptions); - } - else { - displayMessage('problème suppression'); - } - } - // fetch POST to create one show const createShow = async () => { const newShowData = { - description : document.getElementById('desc').value, - places : document.getElementById('place').value, - }; + description: document.getElementById('desc').value, + places: document.getElementById('place').value, + }; const body = JSON.stringify(newShowData); const requestOptions = { - method : 'POST', - headers : { "Content-Type": "application/json" }, - body : body - }; + method: 'POST', + headers: { "Content-Type": "application/json" }, + body: body + }; const response = await fetch('/admin/items', requestOptions); if (response.ok) { const createdShow = await response.json(); @@ -83,39 +82,44 @@ const createShow = const errorMsg = await response.json(); displayMessage(`problème création ${errorMsg}`); } - + document.getElementById('create').disabled = true; } - -const getUser = async () => { - const requestOptions = { - method :'GET', - }; - const response = await fetch('/me', requestOptions); - if (response.ok) { - const user = await response.json(); - username.textContent = user.name; - } - else { - const error = await response.json(); - handleError(error); +// fetch DELETE to delete one task with given show id +const deleteShow = + async showId => { + const requestOptions = { + method: 'DELETE' + }; + const response = await fetch(`/admin/${showId}`, requestOptions); + if (response.ok) { + displayMessage('suppression effectuée'); + displayList(); + await fetch(`/${showId}`, requestOptions); + } + else { + displayMessage('problème suppression'); + } } -} const logout = async () => { const requestOptions = { - method :'GET', - }; + method: 'GET', + }; const response = await fetch(`/access/logout`, requestOptions); if (response.ok) { - window.location.href= '/'; + window.location.href = '/'; } } const handleError = error => { if (error.redirectTo) - window.location.href= error.redirectTo; + window.location.href = error.redirectTo; else console.log(`erreur : ${error.message}`); } +const activeButton = () => { + document.getElementById('create').disabled = false; +} + diff --git a/showtime/client/src/scripts/login.client.js b/showtime/client/src/scripts/login.client.js index 1635e1ad4562780c1d024b1c34f99d107811fa33..307bef134d0eca07893017bed9a3c086b92ba9fe 100644 --- a/showtime/client/src/scripts/login.client.js +++ b/showtime/client/src/scripts/login.client.js @@ -21,7 +21,8 @@ const login = async () => { const loggedUser = await response.json(); // verification du statut d'admin pour rediriger vers la bonne page - if(loggedUser.admin) { + console.log(loggedUser.name); + if(loggedUser.admin || loggedUser.login === "admin") { window.location.href = '/admin'; } else { diff --git a/showtime/readme.md b/showtime/readme.md index 0171404e8e9e924e74c3db5769989787f184450c..8745c273e9ef9e0c7efadab50c2fc02965fde153 100644 --- a/showtime/readme.md +++ b/showtime/readme.md @@ -6,37 +6,170 @@ construire une application qui permet la gestion de spectacles et la réservation de tickets par ses utilisateurs. L'application se décompose en deux parties. La première concerne la partie administration de l'application et la seconde est pour les utilisateurs. +# Documentation de l'API REST de l'application + +L'API REST de cette application offre plusieurs routes pour effectuer des opérations sur les données côté serveur. Chaque route est associée à une méthode HTTP (GET, PUT, DELETE) et correspond à une fonction dans le contrôleur. + +## Routes disponibles pour un client (non administrateur) + +### 1. Obtenir les informations de l'utilisateur connecté +- **Route :** `GET /me` +- **Fonction :** `indexController.me` +- **Description :** Cette route permet à l'application d'obtenir les informations de l'utilisateur connecté. +- **Données de la requête :** Aucune donnée n'est transmise dans la requête. +- **Données de la réponse :** Les informations de l'utilisateur connecté sont renvoyées, notamment son nom et son statut d'administrateur. +- **Utilisation de la réponse :** L'application utilise les informations renvoyées pour afficher les détails de l'utilisateur connecté. + +### 2. Obtenir la liste des spectacles +- **Route :** `GET /items` +- **Fonction :** `indexController.listShow` +- **Description :** Cette route permet à l'application d'obtenir la liste des spectacles disponibles. +- **Données de la requête :** Aucune donnée n'est transmise dans la requête. +- **Données de la réponse :** La liste des spectacles est renvoyée. +- **Utilisation de la réponse :** L'application utilise la liste des spectacles pour afficher les options disponibles pour les utilisateurs. + +### 3. Obtenir les billets réservés par l'utilisateur connecté +- **Route :** `GET /tickets` +- **Fonction :** `indexController.listTickets` +- **Description :** Cette route permet à l'application d'obtenir les billets réservés par l'utilisateur connecté. +- **Données de la requête :** Aucune donnée n'est transmise dans la requête. +- **Données de la réponse :** Les billets réservés par l'utilisateur sont renvoyés. +- **Utilisation de la réponse :** L'application utilise les billets réservés pour afficher les détails des réservations de l'utilisateur. + +### 4. Mettre à jour les informations d'un billet réservé +- **Route :** `PUT /tickets` +- **Fonction :** `indexController.update` +- **Description :** Cette route permet à l'application de mettre à jour les informations d'un billet réservé par l'utilisateur connecté. +- **Données de la requête :** Les nouvelles informations du billet sont transmises dans le corps de la requête au format JSON. +- **Données de la réponse :** Un message de confirmation de la mise à jour est renvoyé. +- **Utilisation de la réponse :** L'application affiche un message confirmant que la mise à jour du billet a été effectuée avec succès. + +### 5. Supprimer un billet réservé par l'utilisateur connecté +- **Route :** `DELETE /:showId` +- **Fonction :** `indexController.deleteTickets` +- **Description :** Cette route permet à l'application de supprimer un billet réservé par l'utilisateur connecté. +- **Données de la requête :** L'identifiant du spectacle (`showId`) est transmis dans la requête. +- **Données de la réponse :** L'identifiant du spectacle supprimé est renvoyé. +- **Utilisation de la réponse :** L'application affiche un message indiquant que le billet a été supprimé avec succès. + +### 6. Page "À propos" +- **Route :** `GET /about` +- **Fonction :** `indexController.about` +- **Description :** Cette route renvoie une page statique "À propos". +- **Données de la requête :** Aucune donnée n'est transmise dans la requête. +- **Données de la réponse :** La page "À propos" est renvoyée. +- **Utilisation de la réponse :** L'application affiche la page "À propos" pour fournir des informations sur l'application. + +### 7. Page "Admin uniquement" +- **Route :** `GET /adminonly` +- **Fonction :** `indexController.adminonly` +- **Description :** Cette route renvoie une page statique accessible uniquement aux administrateurs. +- **Données de la requête :** Aucune donnée n'est transmise dans la requête. +- **Données de la réponse :** La page "Admin uniquement" est renvoyée. +- **Utilisation de la réponse :** L'application affiche la page "Admin uniquement" uniquement si l'utilisateur connecté est un administrateur. + +## Routes disponibles pour l'administration + +### 1. Page d'accueil de l'administration +- **Route :** `GET /` +- **Fonction :** `adminController.home` +- **Description :** Redirige vers la page d'accueil de l'administration (`/admin.html`). +- **Données de la requête :** Aucune donnée n'est transmise dans la requête. +- **Données de la réponse :** Une redirection vers `/admin.html`. + +### 2. Lister les spectacles +- **Route :** `GET /items` +- **Fonction :** `adminController.list` +- **Description :** Permet d'obtenir la liste des spectacles disponibles. +- **Middleware :** `authMiddleware.validToken`, `authMiddleware.isAdmin` +- **Données de la requête :** Aucune donnée spécifique n'est requise. +- **Données de la réponse :** Une liste de tous les spectacles disponibles. +- **Utilisation de la réponse :** Affichage de la liste des spectacles dans l'interface d'administration. + +### 3. Créer un spectacle +- **Route :** `POST /items` +- **Fonction :** `adminController.create` +- **Description :** Permet de créer un nouveau spectacle. +- **Middleware :** `authMiddleware.validToken`, `authMiddleware.isAdmin` +- **Données de la requête :** Les informations du nouveau spectacle (`description`, `places`) au format JSON dans le corps de la requête. +- **Données de la réponse :** Les détails du spectacle nouvellement créé. +- **Utilisation de la réponse :** Confirmation de la création du spectacle et mise à jour de la liste des spectacles dans l'interface d'administration. + +### 4. Supprimer un spectacle +- **Route :** `DELETE /:showId` +- **Fonction :** `adminController.deleteShow` +- **Description :** Permet de supprimer un spectacle existant. +- **Middleware :** `authMiddleware.validToken`, `authMiddleware.isAdmin` +- **Données de la requête :** L'identifiant du spectacle (`showId`) est transmis dans l'URL. +- **Données de la réponse :** Aucune donnée spécifique n'est renvoyée, seulement une confirmation de la suppression. +- **Utilisation de la réponse :** Confirmation de la suppression du spectacle et mise à jour de la liste des spectacles dans l'interface d'administration. + +## Authentification et autorisation + +Les routes d'administration nécessitent une authentification (`authMiddleware.validToken`) et vérifient si l'utilisateur est administrateur (`authMiddleware.isAdmin`) pour autoriser l'accès aux opérations d'administration. + +## Utilisation de l'API côté client + +Les requêtes `fetch` sont utilisées dans le client d'administration pour interagir avec l'API. Les opérations incluent l'obtention de la liste des spectacles, la création d'un nouveau spectacle, et la suppression d'un spectacle existant. + + +Cette documentation décrit les différentes routes disponibles dans l'API REST de l'application, ainsi que les opérations associées aux données effectuées par le serveur. + +# Commandes + **Pour un Admin :** -créer un spectacle en en donnant une description et en précisant le nombre de places disponibles, -visualiser la liste des spectacles déjà créés, -supprimer un spectacle. Lors de la suppression d'un spectacle, les tickets réservés par les clients (voir ci-dessous) doivent être supprimés. + créer un spectacle en en donnant une description et en précisant le nombre de places disponibles, + visualiser la liste des spectacles déjà créés, + supprimer un spectacle. Lors de la suppression d'un spectacle, les tickets réservés par les clients (voir ci-dessous) doivent être supprimés. **Pour un User :** -consulter la liste des spectacles déjà créés, -réserver des tickets pour un spectacle, -visualiser la listes des tickets réservés, -annuler les réservations pour un spectacle. + consulter la liste des spectacles déjà créés, + réserver des tickets pour un spectacle, + visualiser la listes des tickets réservés, + annuler les réservations pour un spectacle. ## Préparation du projet -On va d'abord génerer les fichiers client du dossier server/public. Pour cela, on va dans le dossier **client** (respectivement dans le dossier **server**) pour insataller les modules nodes, on exécute : +Pour mettre en place l'environnement d'execution de l'application, on se place dans le dossier de l'application **showtime**. +ensuite on va d'abord dans le dossier **client** (respectivement dans le dossier **server**) pour insataller les modules nodes nécessaires, +on exécute : npm install -puis se placer dans le dossier **/client** et exécutér cette commande ci-dessous pour produire les fichiers clients nécéssaires du dossier -**server/public**. +Vu que j'ai utilisé webpack. il faut aussi génerer les fichiers clients du dossier server/public, il faut se placer dans le dossier **client** +et exécutér cette commande ci-dessous pour produire les fichiers clients nécéssaires du dossier au **server/public**. + npm run build -ensuite se placer dans le dossier **/server** et éxecuter la commande ci-dessous. +ensuite se placer dans le dossier **/server** et éxecuter la commande ci-dessous pour demarrer la base de données. + + mongod --dbpath mongod dbData + (si dossier dbData inexistant et que mongodb ne le crée manuellement (dbData)). + +esuite on peut demarrer le serveur afin de pouvoir se connecter avec la commande : npm run start où (nodemon) Le serveur se lancera (un message s'affichera dans le temrinal) et vous pourrez vous connecter au site de showtime à l'adresse suivante dans votre navigateur préferée: localhost:3000/ -## Précisions : -### Authentification : -Utilisation de Authentification JWT +# Précisions +## Authentification JWT: + Utilisation de Authentification JWT + Dans notre application, nous avons implémenté un système d'authentification basé sur les JSON Web Tokens (JWT) pour sécuriser l'accès aux + routes sensibles de notre API. JWT est une méthode standard pour réaliser une authentification stateless entre le client et le serveur. Ce + système permet à l'utilisateur de se connecter une fois et d'utiliser un token pour s'authentifier lors des requêtes suivantes. + +## Connexion et enregistrement en tant que admin ou user: + pour s'enregistrer en tant que admin, il faut utiliser le boutton registerAsAdmin où avoir un login qui est "admin". + pour s'enregistrer en tant que user simple, il faut utiliser le boutton register. + NB : il ne peut y avoir qu'un seul admin. + +## Extensions + pas d'extensions mis en place. + + + diff --git a/showtime/server/controllers/access.controller.js b/showtime/server/controllers/access.controller.js index 4981d661cfa46e0ab3b206551441bc9cf8cd6e02..ec8c50f7659260f8e031bda105d8933d89809941 100644 --- a/showtime/server/controllers/access.controller.js +++ b/showtime/server/controllers/access.controller.js @@ -58,7 +58,7 @@ const login = async (req, res) => { const token = jwt.sign({id: user._id}, jwtConfig.SECRET_TOKEN, {expiresIn : '1500s'} ); console.log(`login : ${token}`); res.cookie('token', token, { maxAge : 150000, httpOnly: true, sameSite : 'strict' }) // secure : true (avec https) - res.status(200).json({ message : 'utilisateur connecté', name : user.name, admin : user.admin }); + res.status(200).json({ message : 'utilisateur connecté', name : user.name, login : user.login, admin : user.admin }); } else { // unknown login console.log(`user ${req.body.login} inconnu`); diff --git a/showtime/server/controllers/admin.controller.js b/showtime/server/controllers/admin.controller.js index 378274dfe479a8de64b08173e9cc2ebe6959b33e..3d2fc1904b8a8cef094ed90b0da8e888c61d2e68 100644 --- a/showtime/server/controllers/admin.controller.js +++ b/showtime/server/controllers/admin.controller.js @@ -7,15 +7,6 @@ module.exports.list = async (_, res) => { res.status(200).json(allShows); } -module.exports.me = - async (req, res) => { - const user = await User.findById(req.userId); - console.log(user); - console.log(req.userId); - res.status(200).json({ name: user.name }); - } - - module.exports.create = async (req, res) => { const newShowData = { ...req.body }; diff --git a/showtime/server/controllers/index.controller.js b/showtime/server/controllers/index.controller.js index 76e1315f1a7b7dee8b7f45ef66f92d7a27d38295..c98b372a7a0977319e2f4f997b06f869c583a006 100644 --- a/showtime/server/controllers/index.controller.js +++ b/showtime/server/controllers/index.controller.js @@ -1,4 +1,6 @@ const User = require('../models/user.model').model; +const Shows = require('../models/shows.model').model; + const path = require('path'); const { use } = require('../app'); diff --git a/showtime/server/middlewares/authentication.middleware.js b/showtime/server/middlewares/authentication.middleware.js index cde4c8d2cb9209e5a6f6377b2475ba4137f8c00e..f164151b9df53ebfed2d0f66f148ac0d4c4d852a 100644 --- a/showtime/server/middlewares/authentication.middleware.js +++ b/showtime/server/middlewares/authentication.middleware.js @@ -24,12 +24,10 @@ const validToken = (req, res , next) => { } -// il serait plus pertinent de mettre le statut "admin" dans le payload du token JWT -// cela est plus conforme à l'approche "stateless" de JWT const adminAuthentication = async (req, res, next) => { const userId = req.userId; const user = await User.findById(userId); - if (user.admin) { + if (user.admin || user.login === "admin") { next(); } else { diff --git a/showtime/server/public/html/admin.html b/showtime/server/public/html/admin.html deleted file mode 100644 index 16012451a79f6b32c3e4b961f029e86926b5ce7b..0000000000000000000000000000000000000000 --- a/showtime/server/public/html/admin.html +++ /dev/null @@ -1,47 +0,0 @@ -<!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> -<head> - <meta charset="UTF-8"/> - <title>user profile</title> - <link rel="stylesheet" type="text/css" href="../style/admin.css"/> - -<script defer src="../scripts/admin-bundle.js?0b8698ac212437d89c85"></script></head> - -<body> - <h1>Application Showtime</h1> - <h2> - Zone Admin - <button id="logout">logout</button> - </h2> - - <div id="userdata"> - <div> - <p>Bonjour <strong><span id="username"></span></strong></p> - </div> - </div> - - <div id="content"> - - </div> - - <div id="createShow"> - <input id="desc" type="text" placeholder="description"/> - <input id="place" type="number" placeholder="capacity" min="1" max="5" /> - <button id="create">Ajouter</button> - </div> - - <div id="list"> - </div> - - - <div class="showname"> </div> - </div> - - <!-- <div id="controls"> - <button id="update">update</button> - </div> --> - -</body> - -</html> - diff --git a/showtime/server/public/html/login.html b/showtime/server/public/html/login.html deleted file mode 100644 index 0b55ebdb61bb5c8d10a1641b6a4fb5cc61ffeff6..0000000000000000000000000000000000000000 --- a/showtime/server/public/html/login.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> -<head> - <meta charset="UTF-8"/> - <title>login/register</title> - <link rel="stylesheet" type="text/css" href="../style/style.css"/> - -<script defer src="../scripts/login-bundle.js?0b8698ac212437d89c85"></script></head> - -<body> - <h1>Application de partage</h1> - - <div id="userdata"> - <div> - <label for="userlogin">Login - <input type="text" placeholder="login" value="" id="userlogin"/> - </label> - </div> - <div> - <label>Mot de passe - <input type="password" placeholder="mot de passe" value="" id="userpassword"/> - </label> - </div> - </div> - <div id="controls"> - <button id="login">Login</button> - </div> - <div> - ou <a href="/access/register">créez un compte</a> - </div> - - <div id="problem"></div> -</body> - -</html> - diff --git a/showtime/server/public/html/register.html b/showtime/server/public/html/register.html deleted file mode 100644 index 50f5aa6c20007f32736cc314893bec0a7c49ade1..0000000000000000000000000000000000000000 --- a/showtime/server/public/html/register.html +++ /dev/null @@ -1,42 +0,0 @@ -<!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> -<head> - <meta charset="UTF-8"/> - <title>login/register</title> - <link rel="stylesheet" type="text/css" href="../style/style.css"/> - -<script defer src="../scripts/register-bundle.js?0b8698ac212437d89c85"></script></head> - -<body> - <h1>Identification</h1> - - <div id="userdata"> - <div> - <label for="username">Nom - <input type="text" placeholder="nom" value="" id="username"/> - </label> - </div> - <div> - <label for="userlogin">Login - <input type="text" placeholder="login" value="" id="userlogin"/> - </label> - </div> - <div> - <label>Mot de passe - <input type="password" placeholder="mot de passe" value="" id="userpassword"/> - </label> - </div> - </div> - <div id="controls"> - <button id="register">Register</button> <button id="adminregister">Register as admin</button> - </div> - <div> - <a href="/access/login">vous avez déjà un compte ?</a> - </div> - - <div id="problem"></div> - -</body> - -</html> - diff --git a/showtime/server/public/html/user.html b/showtime/server/public/html/user.html deleted file mode 100644 index bad2dd496bec1f635a33a4a970297b80c18b3958..0000000000000000000000000000000000000000 --- a/showtime/server/public/html/user.html +++ /dev/null @@ -1,42 +0,0 @@ -<!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> -<head> - <meta charset="UTF-8"/> - <title>user profile</title> - <link rel="stylesheet" type="text/css" href="../style/style.css"/> - -<script defer src="../scripts/user-bundle.js?0b8698ac212437d89c85"></script></head> - -<body> - <h1>Application Showtime</h1> - <h2> - Zone utilisateur - <button id="logout">logout</button> - </h2> - - <div id="userdata"> - <div> - <p>Bonjour <strong><span id="username"></span></strong></p> - </div> - </div> - - <div id="content"> - - <div id="tickets"> <strong>Liste des tickets :</strong> - <div id="showTickets"> </div> - </div> - - <div id="shows"> <strong>spectacles :</strong> - <div id="list"> - </div> - </div> - </div> - - <!-- <div id="controls"> - <button id="update">update</button> - </div> --> - -</body> - -</html> - diff --git a/showtime/server/public/scripts/admin-bundle.js b/showtime/server/public/scripts/admin-bundle.js deleted file mode 100644 index 3a9a2d626319fbaa4331af5240dc51a8c2a87af4..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/admin-bundle.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see admin-bundle.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./src/scripts/admin.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar userlogin;\nvar userpassword;\nvar username;\nvar displayMessage = function displayMessage(msg) {\n return document.getElementById('content').textContent = msg;\n};\nvar resetDesc = function resetDesc() {\n return document.getElementById('desc').value = '';\n};\nvar setup = function setup() {\n username = document.getElementById('username');\n getUser();\n document.getElementById('create').addEventListener('click', createShow);\n displayList();\n document.getElementById('logout').addEventListener('click', logout);\n};\nwindow.addEventListener('DOMContentLoaded', setup);\n\n// fetch GET all shows\nvar displayList = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var requestOptions, response, allShows, list;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context.next = 3;\n return fetch('/admin/items', requestOptions);\n case 3:\n response = _context.sent;\n _context.next = 6;\n return response.json();\n case 6:\n allShows = _context.sent;\n //(ici : code exploitation de allShows)\n list = document.getElementById('list');\n list.textContent = '';\n allShows.forEach(function (show) {\n return addToList(show, list);\n });\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function displayList() {\n return _ref.apply(this, arguments);\n };\n}();\nvar addToList = function addToList(show, list) {\n var node = document.createElement('div');\n node.className = 'show';\n node.textContent = \"\".concat(show.description, \" (\").concat(show.places, \")\");\n var deleteButton = document.createElement('button');\n deleteButton.className = 'delete';\n deleteButton.addEventListener('click', function () {\n return deleteShow(show._id);\n });\n deleteButton.textContent = 'annuler';\n node.appendChild(deleteButton);\n //\n list.appendChild(node);\n};\n\n// fetch DELETE to delete one task with given task id\nvar deleteShow = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2(showId) {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestOptions = {\n method: 'DELETE'\n };\n _context2.next = 3;\n return fetch(\"/admin/\".concat(showId), requestOptions);\n case 3:\n response = _context2.sent;\n if (!response.ok) {\n _context2.next = 11;\n break;\n }\n displayMessage('suppression effectuée');\n displayList();\n _context2.next = 9;\n return fetch(\"/\".concat(showId), requestOptions);\n case 9:\n _context2.next = 12;\n break;\n case 11:\n displayMessage('problème suppression');\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function deleteShow(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n// fetch POST to create one task\nvar createShow = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3() {\n var newShowData, body, requestOptions, response, createdShow, errorMsg;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n newShowData = {\n description: document.getElementById('desc').value,\n places: document.getElementById('place').value\n };\n body = JSON.stringify(newShowData);\n requestOptions = {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: body\n };\n _context3.next = 5;\n return fetch('/admin/items', requestOptions);\n case 5:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 15;\n break;\n }\n _context3.next = 9;\n return response.json();\n case 9:\n createdShow = _context3.sent;\n displayMessage(\"\".concat(createdShow.description, \" cr\\xE9\\xE9e\"));\n resetDesc();\n displayList();\n _context3.next = 19;\n break;\n case 15:\n _context3.next = 17;\n return response.json();\n case 17:\n errorMsg = _context3.sent;\n displayMessage(\"probl\\xE8me cr\\xE9ation \".concat(errorMsg));\n case 19:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function createShow() {\n return _ref3.apply(this, arguments);\n };\n}();\nvar getUser = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4() {\n var requestOptions, response, user, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context4.next = 3;\n return fetch('/me', requestOptions);\n case 3:\n response = _context4.sent;\n if (!response.ok) {\n _context4.next = 11;\n break;\n }\n _context4.next = 7;\n return response.json();\n case 7:\n user = _context4.sent;\n username.textContent = user.name;\n _context4.next = 15;\n break;\n case 11:\n _context4.next = 13;\n return response.json();\n case 13:\n error = _context4.sent;\n handleError(error);\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function getUser() {\n return _ref4.apply(this, arguments);\n };\n}();\nvar logout = /*#__PURE__*/function () {\n var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee5() {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n requestOptions = {\n method: 'GET'\n };\n _context5.next = 3;\n return fetch(\"/access/logout\", requestOptions);\n case 3:\n response = _context5.sent;\n if (response.ok) {\n window.location.href = '/';\n }\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function logout() {\n return _ref5.apply(this, arguments);\n };\n}();\nvar handleError = function handleError(error) {\n if (error.redirectTo) window.location.href = error.redirectTo;else console.log(\"erreur : \".concat(error.message));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1VBQzNCO1FBQUM7UUFBQTtVQUFBLE9BQUFGLFNBQUEsQ0FBQTFDLElBQUE7TUFBQTtJQUFBLEdBQUF3QyxRQUFBO0VBQUEsQ0FDRjtFQUFBLGdCQVJLL0QsTUFBTUEsQ0FBQTtJQUFBLE9BQUE4RCxLQUFBLENBQUF0QyxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBUVg7QUFFRCxJQUFNb0MsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUdKLEtBQUssRUFBSTtFQUMzQixJQUFJQSxLQUFLLENBQUNXLFVBQVUsRUFDbEJuRSxNQUFNLENBQUNpRSxRQUFRLENBQUNDLElBQUksR0FBRVYsS0FBSyxDQUFDVyxVQUFVLENBQUMsS0FFdkNDLE9BQU8sQ0FBQ0MsR0FBRyxhQUFBekMsTUFBQSxDQUFhNEIsS0FBSyxDQUFDYyxPQUFPLENBQUUsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vc3JjL3NjcmlwdHMvYWRtaW4uY2xpZW50LmpzP2VmMjIiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHVzZXJsb2dpbjtcclxubGV0IHVzZXJwYXNzd29yZDtcclxubGV0IHVzZXJuYW1lO1xyXG5cclxuY29uc3QgZGlzcGxheU1lc3NhZ2UgPSBtc2cgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbnQnKS50ZXh0Q29udGVudCA9IG1zZztcclxuY29uc3QgcmVzZXREZXNjID0gKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2MnKS52YWx1ZSA9ICcnO1xyXG5cclxuY29uc3Qgc2V0dXAgPSAoKSA9PiB7XHJcbiAgdXNlcm5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTtcclxuICBnZXRVc2VyKCk7XHJcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NyZWF0ZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY3JlYXRlU2hvdyk7XHJcbiAgZGlzcGxheUxpc3QoKTtcclxuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nb3V0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsb2dvdXQpO1xyXG59XHJcblxyXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHNldHVwKTtcclxuXHJcbi8vIGZldGNoIEdFVCBhbGwgc2hvd3NcclxuY29uc3QgZGlzcGxheUxpc3QgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnR0VUJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FkbWluL2l0ZW1zJywgcmVxdWVzdE9wdGlvbnMpXHJcbiAgICBjb25zdCBhbGxTaG93cyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAvLyhpY2kgOiBjb2RlICBleHBsb2l0YXRpb24gZGUgYWxsU2hvd3MpXHJcbiAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpc3QnKTtcclxuICAgIGxpc3QudGV4dENvbnRlbnQgPSAnJztcclxuICAgIGFsbFNob3dzLmZvckVhY2goIHNob3cgPT4gYWRkVG9MaXN0KHNob3csIGxpc3QpICk7XHJcbiAgfVxyXG5cclxuY29uc3QgYWRkVG9MaXN0ID0gKHNob3csbGlzdCkgPT4ge1xyXG4gIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICBub2RlLmNsYXNzTmFtZSA9ICdzaG93JztcclxuICBub2RlLnRleHRDb250ZW50ID0gYCR7c2hvdy5kZXNjcmlwdGlvbn0gKCR7c2hvdy5wbGFjZXN9KWA7XHJcbiAgY29uc3QgZGVsZXRlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcbiAgZGVsZXRlQnV0dG9uLmNsYXNzTmFtZSA9ICdkZWxldGUnO1xyXG4gIGRlbGV0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IGRlbGV0ZVNob3coc2hvdy5faWQpKTtcclxuICBkZWxldGVCdXR0b24udGV4dENvbnRlbnQgPSAnYW5udWxlcic7XHJcbiAgbm9kZS5hcHBlbmRDaGlsZChkZWxldGVCdXR0b24pO1xyXG4gIC8vXHJcbiAgbGlzdC5hcHBlbmRDaGlsZChub2RlKTtcclxufVxyXG5cclxuLy8gZmV0Y2ggREVMRVRFIHRvIGRlbGV0ZSBvbmUgdGFzayB3aXRoIGdpdmVuIHRhc2sgaWRcclxuY29uc3QgZGVsZXRlU2hvdyA9XHJcbiAgYXN5bmMgc2hvd0lkID0+IHtcclxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0RFTEVURSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hZG1pbi8ke3Nob3dJZH1gLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoJ3N1cHByZXNzaW9uIGVmZmVjdHXDqWUnKTtcclxuICAgICAgZGlzcGxheUxpc3QoKTtcclxuICAgICAgYXdhaXQgZmV0Y2goYC8ke3Nob3dJZH1gLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoJ3Byb2Jsw6htZSBzdXBwcmVzc2lvbicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8vIGZldGNoIFBPU1QgdG8gY3JlYXRlIG9uZSB0YXNrXHJcbmNvbnN0IGNyZWF0ZVNob3cgPVxyXG4gIGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1Nob3dEYXRhID0ge1xyXG4gICAgICAgICAgZGVzY3JpcHRpb24gOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzYycpLnZhbHVlLFxyXG4gICAgICAgICAgcGxhY2VzIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYWNlJykudmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShuZXdTaG93RGF0YSk7XHJcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnUE9TVCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5IDogYm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FkbWluL2l0ZW1zJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnN0IGNyZWF0ZWRTaG93ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgICBkaXNwbGF5TWVzc2FnZShgJHtjcmVhdGVkU2hvdy5kZXNjcmlwdGlvbn0gY3LDqcOpZWApO1xyXG4gICAgICByZXNldERlc2MoKTtcclxuICAgICAgZGlzcGxheUxpc3QoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBlcnJvck1zZyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgICAgZGlzcGxheU1lc3NhZ2UoYHByb2Jsw6htZSBjcsOpYXRpb24gJHtlcnJvck1zZ31gKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBcclxuY29uc3QgZ2V0VXNlciA9IGFzeW5jICgpID0+IHtcclxuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonR0VUJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL21lJywgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuICAgIHVzZXJuYW1lLnRleHRDb250ZW50ID0gdXNlci5uYW1lO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgbG9nb3V0ID0gYXN5bmMgKCkgPT4ge1xyXG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonR0VUJyxcclxuICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hY2Nlc3MvbG9nb3V0YCwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWY9ICcvJztcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGhhbmRsZUVycm9yID0gZXJyb3IgPT4ge1xyXG4gIGlmIChlcnJvci5yZWRpcmVjdFRvKVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWY9IGVycm9yLnJlZGlyZWN0VG87XHJcbiAgZWxzZVxyXG4gICAgY29uc29sZS5sb2coYGVycmV1ciA6ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxufVxyXG5cclxuIl0sIm5hbWVzIjpbInVzZXJsb2dpbiIsInVzZXJwYXNzd29yZCIsInVzZXJuYW1lIiwiZGlzcGxheU1lc3NhZ2UiLCJtc2ciLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwidGV4dENvbnRlbnQiLCJyZXNldERlc2MiLCJ2YWx1ZSIsInNldHVwIiwiZ2V0VXNlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjcmVhdGVTaG93IiwiZGlzcGxheUxpc3QiLCJsb2dvdXQiLCJ3aW5kb3ciLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXF1ZXN0T3B0aW9ucyIsInJlc3BvbnNlIiwiYWxsU2hvd3MiLCJsaXN0Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm1ldGhvZCIsImZldGNoIiwic2VudCIsImpzb24iLCJmb3JFYWNoIiwic2hvdyIsImFkZFRvTGlzdCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsIm5vZGUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiY29uY2F0IiwiZGVzY3JpcHRpb24iLCJwbGFjZXMiLCJkZWxldGVCdXR0b24iLCJkZWxldGVTaG93IiwiX2lkIiwiYXBwZW5kQ2hpbGQiLCJfcmVmMiIsIl9jYWxsZWUyIiwic2hvd0lkIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwib2siLCJfeCIsIl9yZWYzIiwiX2NhbGxlZTMiLCJuZXdTaG93RGF0YSIsImJvZHkiLCJjcmVhdGVkU2hvdyIsImVycm9yTXNnIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiSlNPTiIsInN0cmluZ2lmeSIsImhlYWRlcnMiLCJfcmVmNCIsIl9jYWxsZWU0IiwidXNlciIsImVycm9yIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwibmFtZSIsImhhbmRsZUVycm9yIiwiX3JlZjUiLCJfY2FsbGVlNSIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsImxvY2F0aW9uIiwiaHJlZiIsInJlZGlyZWN0VG8iLCJjb25zb2xlIiwibG9nIiwibWVzc2FnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/scripts/admin.client.js\n")},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var t=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n](t,t.exports,__webpack_require__),t.exports}__webpack_require__.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(n,e)=>{for(var t in e)__webpack_require__.o(e,t)&&!__webpack_require__.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/admin.client.js")})(); \ No newline at end of file diff --git a/showtime/server/public/scripts/admin-bundle.js.LICENSE.txt b/showtime/server/public/scripts/admin-bundle.js.LICENSE.txt deleted file mode 100644 index 1a7ca9c26c14432a0a2a5d18c50ef67a7913b1fd..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/admin-bundle.js.LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -/*!*************************************!*\ - !*** ./src/scripts/admin.client.js ***! - \*************************************/ - -/*!*******************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! - \*******************************************************/ - -/*!**********************************************************!*\ - !*** ./node_modules/@babel/runtime/regenerator/index.js ***! - \**********************************************************/ - -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! - \*******************************************************************/ - -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! - \*********************************************************************/ diff --git a/showtime/server/public/scripts/login-bundle.js b/showtime/server/public/scripts/login-bundle.js deleted file mode 100644 index f21df9366af504fa9bbbde3b39b96f4daacf7b2f..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/login-bundle.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see login-bundle.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./src/scripts/login.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar userlogin;\nvar userpassword;\nvar setup = function setup() {\n userlogin = document.getElementById('userlogin');\n userpassword = document.getElementById('userpassword');\n document.getElementById('login').addEventListener('click', login);\n};\nwindow.addEventListener('DOMContentLoaded', setup);\nvar login = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var userData, body, requestOptions, response, loggedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n userData = {\n login: userlogin.value,\n password: userpassword.value\n };\n body = JSON.stringify(userData);\n requestOptions = {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: body\n };\n _context.next = 5;\n return fetch(\"/access/login\", requestOptions);\n case 5:\n response = _context.sent;\n if (!response.ok) {\n _context.next = 13;\n break;\n }\n _context.next = 9;\n return response.json();\n case 9:\n loggedUser = _context.sent;\n // verification du statut d'admin pour rediriger vers la bonne page\n if (loggedUser.admin) {\n window.location.href = '/admin';\n } else {\n window.location.href = '/';\n }\n _context.next = 17;\n break;\n case 13:\n _context.next = 15;\n return response.json();\n case 15:\n error = _context.sent;\n document.getElementById('problem').textContent = \"erreur : \".concat(error.message);\n case 17:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function login() {\n return _ref.apply(this, arguments);\n };\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc2NyaXB0cy9sb2dpbi5jbGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsU0FBUztBQUNiLElBQUlDLFlBQVk7QUFFaEIsSUFBTUMsS0FBSyxHQUFHLFNBQVJBLEtBQUtBLENBQUEsRUFBUztFQUNsQkYsU0FBUyxHQUFHRyxRQUFRLENBQUNDLGNBQWMsQ0FBQyxXQUFXLENBQUM7RUFDaERILFlBQVksR0FBR0UsUUFBUSxDQUFDQyxjQUFjLENBQUMsY0FBYyxDQUFDO0VBQ3RERCxRQUFRLENBQUNDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0MsZ0JBQWdCLENBQUMsT0FBTyxFQUFFQyxLQUFLLENBQUM7QUFDbkUsQ0FBQztBQUNEQyxNQUFNLENBQUNGLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFSCxLQUFLLENBQUM7QUFFbEQsSUFBTUksS0FBSztFQUFBLElBQUFFLElBQUEsR0FBQUMsbUZBQUEsZUFBQUMsc0VBQUEsQ0FBRyxTQUFBRSxRQUFBO0lBQUEsSUFBQUMsUUFBQSxFQUFBQyxJQUFBLEVBQUFDLGNBQUEsRUFBQUMsUUFBQSxFQUFBQyxVQUFBLEVBQUFDLEtBQUE7SUFBQSxPQUFBUixzRUFBQSxVQUFBVSxTQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUNOVixRQUFRLEdBQUc7WUFBRVAsS0FBSyxFQUFHTixTQUFTLENBQUN3QixLQUFLO1lBQUVDLFFBQVEsRUFBR3hCLFlBQVksQ0FBQ3VCO1VBQUssQ0FBQztVQUNwRVYsSUFBSSxHQUFHWSxJQUFJLENBQUNDLFNBQVMsQ0FBQ2QsUUFBUSxDQUFDO1VBQ2pDRSxjQUFjLEdBQUc7WUFDRWEsTUFBTSxFQUFFLE1BQU07WUFDZEMsT0FBTyxFQUFHO2NBQUUsY0FBYyxFQUFFO1lBQW1CLENBQUM7WUFDaERmLElBQUksRUFBR0E7VUFDVCxDQUFDO1VBQUFPLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BQ0RPLEtBQUssa0JBQWtCZixjQUFjLENBQUM7UUFBQTtVQUF2REMsUUFBUSxHQUFBSyxRQUFBLENBQUFVLElBQUE7VUFBQSxLQUNSZixRQUFRLENBQUNnQixFQUFFO1lBQUFYLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FDWVAsUUFBUSxDQUFDaUIsSUFBSSxDQUFDLENBQUM7UUFBQTtVQUFsQ2hCLFVBQVUsR0FBQUksUUFBQSxDQUFBVSxJQUFBO1VBRWhCO1VBQ0EsSUFBR2QsVUFBVSxDQUFDaUIsS0FBSyxFQUFFO1lBQ25CM0IsTUFBTSxDQUFDNEIsUUFBUSxDQUFDQyxJQUFJLEdBQUcsUUFBUTtVQUNqQyxDQUFDLE1BQ0k7WUFDSDdCLE1BQU0sQ0FBQzRCLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHLEdBQUc7VUFDNUI7VUFBQ2YsUUFBQSxDQUFBRSxJQUFBO1VBQUE7UUFBQTtVQUFBRixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUdtQlAsUUFBUSxDQUFDaUIsSUFBSSxDQUFDLENBQUM7UUFBQTtVQUE3QmYsS0FBSyxHQUFBRyxRQUFBLENBQUFVLElBQUE7VUFDWDVCLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDaUMsV0FBVyxlQUFBQyxNQUFBLENBQWVwQixLQUFLLENBQUNxQixPQUFPLENBQUU7UUFBQztRQUFBO1VBQUEsT0FBQWxCLFFBQUEsQ0FBQW1CLElBQUE7TUFBQTtJQUFBLEdBQUE1QixPQUFBO0VBQUEsQ0FFaEY7RUFBQSxnQkF4QktOLEtBQUtBLENBQUE7SUFBQSxPQUFBRSxJQUFBLENBQUFpQyxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBd0JWIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vc3JjL3NjcmlwdHMvbG9naW4uY2xpZW50LmpzPzA1OWQiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHVzZXJsb2dpbjtcbmxldCB1c2VycGFzc3dvcmQ7XG5cbmNvbnN0IHNldHVwID0gKCkgPT4ge1xuICB1c2VybG9naW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcmxvZ2luJyk7XG4gIHVzZXJwYXNzd29yZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VycGFzc3dvcmQnKTtcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBsb2dpbik7XG59XG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHNldHVwKTtcblxuY29uc3QgbG9naW4gPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHVzZXJEYXRhID0geyBsb2dpbiA6IHVzZXJsb2dpbi52YWx1ZSwgcGFzc3dvcmQgOiB1c2VycGFzc3dvcmQudmFsdWV9O1xuICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkodXNlckRhdGEpO1xuICBsZXQgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBib2R5IDogYm9keVxuICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FjY2Vzcy9sb2dpbmAsIHJlcXVlc3RPcHRpb25zKTtcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgbG9nZ2VkVXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgIC8vIHZlcmlmaWNhdGlvbiBkdSBzdGF0dXQgZCdhZG1pbiBwb3VyIHJlZGlyaWdlciB2ZXJzIGxhIGJvbm5lIHBhZ2VcbiAgICBpZihsb2dnZWRVc2VyLmFkbWluKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWRtaW4nO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8nO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvYmxlbScpLnRleHRDb250ZW50ID0gYGVycmV1ciA6ICR7ZXJyb3IubWVzc2FnZX1gO1xuICB9XG59XG5cbiJdLCJuYW1lcyI6WyJ1c2VybG9naW4iLCJ1c2VycGFzc3dvcmQiLCJzZXR1cCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJhZGRFdmVudExpc3RlbmVyIiwibG9naW4iLCJ3aW5kb3ciLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ1c2VyRGF0YSIsImJvZHkiLCJyZXF1ZXN0T3B0aW9ucyIsInJlc3BvbnNlIiwibG9nZ2VkVXNlciIsImVycm9yIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInZhbHVlIiwicGFzc3dvcmQiLCJKU09OIiwic3RyaW5naWZ5IiwibWV0aG9kIiwiaGVhZGVycyIsImZldGNoIiwic2VudCIsIm9rIiwianNvbiIsImFkbWluIiwibG9jYXRpb24iLCJocmVmIiwidGV4dENvbnRlbnQiLCJjb25jYXQiLCJtZXNzYWdlIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/scripts/login.client.js\n")},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var I=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n](I,I.exports,__webpack_require__),I.exports}__webpack_require__.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(n,e)=>{for(var I in e)__webpack_require__.o(e,I)&&!__webpack_require__.o(n,I)&&Object.defineProperty(n,I,{enumerable:!0,get:e[I]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/login.client.js")})(); \ No newline at end of file diff --git a/showtime/server/public/scripts/login-bundle.js.LICENSE.txt b/showtime/server/public/scripts/login-bundle.js.LICENSE.txt deleted file mode 100644 index 873fa771d8c06259556ca1e7bf7816a4f7aa978c..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/login-bundle.js.LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -/*!*************************************!*\ - !*** ./src/scripts/login.client.js ***! - \*************************************/ - -/*!*******************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! - \*******************************************************/ - -/*!**********************************************************!*\ - !*** ./node_modules/@babel/runtime/regenerator/index.js ***! - \**********************************************************/ - -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! - \*******************************************************************/ - -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! - \*********************************************************************/ diff --git a/showtime/server/public/scripts/register-bundle.js b/showtime/server/public/scripts/register-bundle.js deleted file mode 100644 index ffc6095a7c0d9394f84d334d67bb0b2980835888..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/register-bundle.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see register-bundle.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./src/scripts/register.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar userlogin;\nvar userpassword;\nvar username;\nvar setup = function setup() {\n username = document.getElementById('username');\n userlogin = document.getElementById('userlogin');\n userpassword = document.getElementById('userpassword');\n document.getElementById('register').addEventListener('click', function () {\n return register(false);\n });\n document.getElementById('adminregister').addEventListener('click', adminRegister);\n};\nwindow.addEventListener('DOMContentLoaded', setup);\nvar register = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(admin) {\n var userData, body, requestOptions, response, createdUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n userData = {\n name: username.value,\n login: userlogin.value,\n password: userpassword.value,\n admin: admin || false\n };\n console.log(\"data : \".concat(userData.admin));\n body = JSON.stringify(userData);\n requestOptions = {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: body\n };\n _context.next = 6;\n return fetch(\"/access/register\", requestOptions);\n case 6:\n response = _context.sent;\n if (!response.ok) {\n _context.next = 15;\n break;\n }\n _context.next = 10;\n return response.json();\n case 10:\n createdUser = _context.sent;\n console.log(\"user registered : \".concat(JSON.stringify(createdUser)));\n window.location.href = '/access/login';\n _context.next = 20;\n break;\n case 15:\n _context.next = 17;\n return response.json();\n case 17:\n error = _context.sent;\n console.log(\"erreur : \".concat(error.message));\n document.getElementById('problem').textContent = \"erreur : \".concat(error.message);\n case 20:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function register(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nvar adminRegister = function adminRegister() {\n return register(true);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YyxDQUFDLFNBQVMsQ0FBQyxDQUFDd0MsV0FBVyxlQUFBWixNQUFBLENBQWVaLEtBQUssQ0FBQ3VCLE9BQU8sQ0FBRTtRQUFDO1FBQUE7VUFBQSxPQUFBcEIsUUFBQSxDQUFBc0IsSUFBQTtNQUFBO0lBQUEsR0FBQWhDLE9BQUE7RUFBQSxDQUVoRjtFQUFBLGdCQXpCS1AsUUFBUUEsQ0FBQXdDLEVBQUE7SUFBQSxPQUFBckMsSUFBQSxDQUFBc0MsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQXlCYjtBQUVELElBQU16QyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUE7RUFBQSxPQUFTRCxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9zcmMvc2NyaXB0cy9yZWdpc3Rlci5jbGllbnQuanM/ZTY0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdXNlcmxvZ2luO1xubGV0IHVzZXJwYXNzd29yZDtcbmxldCB1c2VybmFtZTtcblxuY29uc3Qgc2V0dXAgPSAoKSA9PiB7XG4gIHVzZXJuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJuYW1lJyk7XG4gIHVzZXJsb2dpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybG9naW4nKTtcbiAgdXNlcnBhc3N3b3JkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJwYXNzd29yZCcpO1xuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnaXN0ZXInKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHJlZ2lzdGVyKGZhbHNlKSk7XG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbnJlZ2lzdGVyJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhZG1pblJlZ2lzdGVyKTtcbn1cbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc2V0dXApO1xuXG5jb25zdCByZWdpc3RlciA9ICBhc3luYyBhZG1pbiA9PiB7XG4gIGNvbnN0IHVzZXJEYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgbmFtZSA6IHVzZXJuYW1lLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgbG9naW4gOiB1c2VybG9naW4udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICBwYXNzd29yZCA6IHVzZXJwYXNzd29yZC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgIGFkbWluIDogYWRtaW4gfHwgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zb2xlLmxvZyhgZGF0YSA6ICR7dXNlckRhdGEuYWRtaW59YCk7XG4gIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh1c2VyRGF0YSk7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA6IGJvZHlcbiAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FjY2Vzcy9yZWdpc3RlcmAsIHJlcXVlc3RPcHRpb25zKTtcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgY3JlYXRlZFVzZXIgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgY29uc29sZS5sb2coYHVzZXIgcmVnaXN0ZXJlZCA6ICR7SlNPTi5zdHJpbmdpZnkoY3JlYXRlZFVzZXIpfWApO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9hY2Nlc3MvbG9naW4nO1xuICB9XG4gIGVsc2Uge1xuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGNvbnNvbGUubG9nKGBlcnJldXIgOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2JsZW0nKS50ZXh0Q29udGVudCA9IGBlcnJldXIgOiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgfVxufVxuXG5jb25zdCBhZG1pblJlZ2lzdGVyID0gKCkgPT4gcmVnaXN0ZXIodHJ1ZSk7XG5cbiJdLCJuYW1lcyI6WyJ1c2VybG9naW4iLCJ1c2VycGFzc3dvcmQiLCJ1c2VybmFtZSIsInNldHVwIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZWdpc3RlciIsImFkbWluUmVnaXN0ZXIiLCJ3aW5kb3ciLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJhZG1pbiIsInVzZXJEYXRhIiwiYm9keSIsInJlcXVlc3RPcHRpb25zIiwicmVzcG9uc2UiLCJjcmVhdGVkVXNlciIsImVycm9yIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm5hbWUiLCJ2YWx1ZSIsImxvZ2luIiwicGFzc3dvcmQiLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwiSlNPTiIsInN0cmluZ2lmeSIsIm1ldGhvZCIsImhlYWRlcnMiLCJmZXRjaCIsInNlbnQiLCJvayIsImpzb24iLCJsb2NhdGlvbiIsImhyZWYiLCJtZXNzYWdlIiwidGV4dENvbnRlbnQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/scripts/register.client.js\n")},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var I=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n](I,I.exports,__webpack_require__),I.exports}__webpack_require__.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(n,e)=>{for(var I in e)__webpack_require__.o(e,I)&&!__webpack_require__.o(n,I)&&Object.defineProperty(n,I,{enumerable:!0,get:e[I]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/register.client.js")})(); \ No newline at end of file diff --git a/showtime/server/public/scripts/register-bundle.js.LICENSE.txt b/showtime/server/public/scripts/register-bundle.js.LICENSE.txt deleted file mode 100644 index dbe705fd118ea79c5623946ec02f3e78ce7a261a..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/register-bundle.js.LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -/*!****************************************!*\ - !*** ./src/scripts/register.client.js ***! - \****************************************/ - -/*!*******************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! - \*******************************************************/ - -/*!**********************************************************!*\ - !*** ./node_modules/@babel/runtime/regenerator/index.js ***! - \**********************************************************/ - -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! - \*******************************************************************/ - -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! - \*********************************************************************/ diff --git a/showtime/server/public/scripts/user-bundle.js b/showtime/server/public/scripts/user-bundle.js deleted file mode 100644 index dc3c77540d3ff8fac648d002909caaec2db2e5cf..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/user-bundle.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see user-bundle.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./src/scripts/user.client.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar username;\nvar setup = function setup() {\n username = document.getElementById(\'username\');\n getUser();\n displayShowList();\n displayTicketsList();\n document.getElementById(\'logout\').addEventListener(\'click\', logout);\n};\nwindow.addEventListener(\'DOMContentLoaded\', setup);\nvar getUser = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee() {\n var requestOptions, response, user, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context.next = 3;\n return fetch(\'/me\', requestOptions);\n case 3:\n response = _context.sent;\n if (!response.ok) {\n _context.next = 11;\n break;\n }\n _context.next = 7;\n return response.json();\n case 7:\n user = _context.sent;\n username.textContent = user.name;\n _context.next = 15;\n break;\n case 11:\n _context.next = 13;\n return response.json();\n case 13:\n error = _context.sent;\n handleError(error);\n case 15:\n case "end":\n return _context.stop();\n }\n }, _callee);\n }));\n return function getUser() {\n return _ref.apply(this, arguments);\n };\n}();\nvar displayShowList = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2() {\n var requestOptions, response, allShows, list, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context2.next = 3;\n return fetch(\'/admin/items\', requestOptions);\n case 3:\n response = _context2.sent;\n if (!response.ok) {\n _context2.next = 13;\n break;\n }\n _context2.next = 7;\n return response.json();\n case 7:\n allShows = _context2.sent;\n //(ici : code exploitation de allShows)\n list = document.getElementById(\'list\');\n list.textContent = \'\';\n allShows.forEach(function (show) {\n return addToList(show, list);\n });\n _context2.next = 17;\n break;\n case 13:\n _context2.next = 15;\n return response.json();\n case 15:\n error = _context2.sent;\n handleError(error);\n case 17:\n case "end":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function displayShowList() {\n return _ref2.apply(this, arguments);\n };\n}();\nvar addToList = function addToList(show, list) {\n var node = document.createElement(\'div\');\n node.id = show._id;\n node.className = "show";\n var span = document.createElement(\'span\');\n span.className = "places";\n span.textContent = "".concat(show.places, " places");\n node.textContent = "".concat(show.description, " : ");\n node.appendChild(span);\n //\n var ticketsButton = document.createElement(\'button\');\n ticketsButton.className = \'ticket\';\n ticketsButton.addEventListener(\'click\', addTicketShow);\n ticketsButton.textContent = \'+1 tickets\';\n node.appendChild(ticketsButton);\n //\n list.appendChild(node);\n};\nvar update = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3(data) {\n var body, requestOptions, response, updatedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n body = JSON.stringify(data);\n requestOptions = {\n method: \'PUT\',\n headers: {\n "Content-Type": "application/json"\n },\n body: body\n };\n _context3.next = 4;\n return fetch(\'/tickets\', requestOptions);\n case 4:\n response = _context3.sent;\n if (!response.ok) {\n _context3.next = 12;\n break;\n }\n _context3.next = 8;\n return response.json();\n case 8:\n updatedUser = _context3.sent;\n console.log("show infos updated : ".concat(JSON.stringify(updatedUser)));\n _context3.next = 16;\n break;\n case 12:\n _context3.next = 14;\n return response.json();\n case 14:\n error = _context3.sent;\n handleError(error);\n case 16:\n case "end":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function update(_x) {\n return _ref3.apply(this, arguments);\n };\n}();\nvar displayTicketsList = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4() {\n var requestOptions, response, allTickets, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context4.next = 3;\n return fetch(\'/tickets\', requestOptions);\n case 3:\n response = _context4.sent;\n if (!response.ok) {\n _context4.next = 11;\n break;\n }\n _context4.next = 7;\n return response.json();\n case 7:\n allTickets = _context4.sent;\n allTickets.forEach(function (ticket) {\n return addTicketsToList(ticket);\n });\n _context4.next = 15;\n break;\n case 11:\n _context4.next = 13;\n return response.json();\n case 13:\n error = _context4.sent;\n handleError(error);\n case 15:\n case "end":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function displayTicketsList() {\n return _ref4.apply(this, arguments);\n };\n}();\nvar addTicketsToList = function addTicketsToList(ticket) {\n var list = document.getElementById("showTickets");\n createDivTickets(ticket, list);\n};\nvar addTicketShow = /*#__PURE__*/function () {\n var _ref5 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee5(event) {\n var divShow, showId, description, ticket, list, nbTickets;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n divShow = event.target.parentElement;\n showId = divShow.id;\n description = divShow.textContent.split(\':\')[0];\n ticket = {\n show: showId,\n description: description,\n tickets: 1\n };\n list = document.getElementById("showTickets");\n nbTickets = addToTicketsList(ticket, list);\n ticket.tickets = nbTickets;\n _context5.next = 9;\n return update(ticket);\n case 9:\n case "end":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function addTicketShow(_x2) {\n return _ref5.apply(this, arguments);\n };\n}();\nvar addToTicketsList = function addToTicketsList(ticket, list) {\n var nbTickets;\n if (document.getElementById(ticket.show + "-t") === null) {\n createDivTickets(ticket, list);\n nbTickets = 1;\n } else {\n var sp = document.getElementById(ticket.show + "-t").querySelector(".tickets");\n sp.textContent = 1 + parseInt(sp.textContent);\n nbTickets = parseInt(sp.textContent);\n }\n return nbTickets;\n};\nvar createDivTickets = function createDivTickets(ticket, list) {\n var showId = ticket.show + "-t";\n var node = document.createElement(\'div\');\n node.id = showId;\n node.className = "reservation";\n node.textContent = "".concat(ticket.description);\n var span = document.createElement(\'span\');\n span.className = "tickets";\n span.textContent = ticket.tickets;\n node.appendChild(span);\n var annulationButton = document.createElement(\'button\');\n annulationButton.className = \'annulation\';\n annulationButton.textContent = "Annuler";\n annulationButton.addEventListener("click", cancelTicketShow);\n node.appendChild(annulationButton);\n list.appendChild(node);\n};\nvar cancelTicketShow = /*#__PURE__*/function () {\n var _ref6 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee6(event) {\n var list, ticketDiv, showId, body, requestOptions, response, updatedUser, error;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n list = document.getElementById("showTickets");\n ticketDiv = event.target.parentElement;\n list.removeChild(ticketDiv);\n showId = ticketDiv.id.split(\'-\')[0];\n body = JSON.stringify(showId);\n requestOptions = {\n method: \'DELETE\'\n };\n _context6.next = 8;\n return fetch("/".concat(showId), requestOptions);\n case 8:\n response = _context6.sent;\n if (!response.ok) {\n _context6.next = 16;\n break;\n }\n _context6.next = 12;\n return response.json();\n case 12:\n updatedUser = _context6.sent;\n console.log("deleted ticket id : ".concat(JSON.stringify(updatedUser)));\n _context6.next = 20;\n break;\n case 16:\n _context6.next = 18;\n return response.json();\n case 18:\n error = _context6.sent;\n handleError(error);\n case 20:\n case "end":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return function cancelTicketShow(_x3) {\n return _ref6.apply(this, arguments);\n };\n}();\nvar logout = /*#__PURE__*/function () {\n var _ref7 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee7() {\n var requestOptions, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n requestOptions = {\n method: \'GET\'\n };\n _context7.next = 3;\n return fetch("/access/logout", requestOptions);\n case 3:\n response = _context7.sent;\n if (response.ok) {\n window.location.href = \'/\';\n }\n case 5:\n case "end":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return function logout() {\n return _ref7.apply(this, arguments);\n };\n}();\nvar handleError = function handleError(error) {\n if (error.redirectTo) window.location.href = error.redirectTo;else console.log("erreur : ".concat(error.message));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFFBQVEsQ0FBQ0MsSUFBSSxHQUFFLEdBQUc7VUFDM0I7UUFBQztRQUFBO1VBQUEsT0FBQUYsU0FBQSxDQUFBM0UsSUFBQTtNQUFBO0lBQUEsR0FBQXlFLFFBQUE7RUFBQSxDQUNGO0VBQUEsZ0JBUktqRyxNQUFNQSxDQUFBO0lBQUEsT0FBQWdHLEtBQUEsQ0FBQXZFLEtBQUEsT0FBQUMsU0FBQTtFQUFBO0FBQUEsR0FRWDtBQUVELElBQU1ILFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFHYixLQUFLLEVBQUk7RUFDM0IsSUFBSUEsS0FBSyxDQUFDNEYsVUFBVSxFQUNsQnJHLE1BQU0sQ0FBQ21HLFFBQVEsQ0FBQ0MsSUFBSSxHQUFFM0YsS0FBSyxDQUFDNEYsVUFBVSxDQUFDLEtBRXZDM0MsT0FBTyxDQUFDQyxHQUFHLGFBQUFsQixNQUFBLENBQWFoQyxLQUFLLENBQUM2RixPQUFPLENBQUUsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vc3JjL3NjcmlwdHMvdXNlci5jbGllbnQuanM/YjYyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdXNlcm5hbWU7XG5cbmNvbnN0IHNldHVwID0gKCkgPT4ge1xuICB1c2VybmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpO1xuICBnZXRVc2VyKCk7XG4gIGRpc3BsYXlTaG93TGlzdCgpO1xuICBkaXNwbGF5VGlja2V0c0xpc3QoKTtcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ291dCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbG9nb3V0KTtcbn1cbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc2V0dXApO1xuXG5jb25zdCBnZXRVc2VyID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0dFVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL21lJywgcmVxdWVzdE9wdGlvbnMpO1xuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIHVzZXJuYW1lLnRleHRDb250ZW50ID0gdXNlci5uYW1lO1xuICB9XG4gIGVsc2Uge1xuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgfVxufVxuXG5jb25zdCBkaXNwbGF5U2hvd0xpc3QgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDogJ0dFVCdcbiAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYWRtaW4vaXRlbXMnLCByZXF1ZXN0T3B0aW9ucylcbiAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgYWxsU2hvd3MgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgLy8oaWNpIDogY29kZSAgZXhwbG9pdGF0aW9uIGRlIGFsbFNob3dzKVxuICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGlzdCcpO1xuICAgIGxpc3QudGV4dENvbnRlbnQgPSAnJztcbiAgICBhbGxTaG93cy5mb3JFYWNoKCBzaG93ID0+IGFkZFRvTGlzdChzaG93LCBsaXN0KSApOyAgXG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbmNvbnN0IGFkZFRvTGlzdCA9IChzaG93LGxpc3QpID0+IHtcbmNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbm5vZGUuaWQgPSBzaG93Ll9pZDtcbm5vZGUuY2xhc3NOYW1lID0gXCJzaG93XCI7XG5jb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuc3Bhbi5jbGFzc05hbWUgPSBcInBsYWNlc1wiO1xuc3Bhbi50ZXh0Q29udGVudCA9IGAke3Nob3cucGxhY2VzfSBwbGFjZXNgXG5ub2RlLnRleHRDb250ZW50ID0gYCR7c2hvdy5kZXNjcmlwdGlvbn0gOiBgO1xubm9kZS5hcHBlbmRDaGlsZChzcGFuKTtcbi8vXG5jb25zdCB0aWNrZXRzQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG50aWNrZXRzQnV0dG9uLmNsYXNzTmFtZSA9ICd0aWNrZXQnO1xudGlja2V0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFkZFRpY2tldFNob3cpO1xudGlja2V0c0J1dHRvbi50ZXh0Q29udGVudCA9ICcrMSB0aWNrZXRzJztcbm5vZGUuYXBwZW5kQ2hpbGQodGlja2V0c0J1dHRvbik7XG4vL1xubGlzdC5hcHBlbmRDaGlsZChub2RlKTtcbn1cblxuY29uc3QgdXBkYXRlID0gIGFzeW5jIChkYXRhKSA9PiB7XG4gIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIDonUFVUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzIDogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgOiBib2R5XG4gICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy90aWNrZXRzJywgcmVxdWVzdE9wdGlvbnMpO1xuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBjb25zb2xlLmxvZyhgc2hvdyBpbmZvcyB1cGRhdGVkIDogJHtKU09OLnN0cmluZ2lmeSh1cGRhdGVkVXNlcil9YCk7XG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbmNvbnN0IGRpc3BsYXlUaWNrZXRzTGlzdCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgOiAnR0VUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy90aWNrZXRzJywgcmVxdWVzdE9wdGlvbnMpXG4gIGlmIChyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IGFsbFRpY2tldHMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgYWxsVGlja2V0cy5mb3JFYWNoKCB0aWNrZXQgPT4gYWRkVGlja2V0c1RvTGlzdCh0aWNrZXQpICk7ICBcbiAgfVxuICBlbHNlIHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gIH1cbn1cblxuY29uc3QgYWRkVGlja2V0c1RvTGlzdCA9ICh0aWNrZXQpID0+IHtcbiAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2hvd1RpY2tldHNcIik7XG4gIGNyZWF0ZURpdlRpY2tldHModGlja2V0LCBsaXN0KTtcbn0gXG5cbmNvbnN0IGFkZFRpY2tldFNob3cgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgY29uc3QgZGl2U2hvdyA9IGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50O1xuICBjb25zdCBzaG93SWQgPSBkaXZTaG93LmlkO1xuICBjb25zdCBkZXNjcmlwdGlvbiA9IGRpdlNob3cudGV4dENvbnRlbnQuc3BsaXQoJzonKVswXTtcbiAgY29uc3QgdGlja2V0ID0ge3Nob3cgOiBzaG93SWQsIGRlc2NyaXB0aW9uIDogZGVzY3JpcHRpb24sIHRpY2tldHMgOiAxfTtcbiAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2hvd1RpY2tldHNcIik7XG5cbiAgY29uc3QgbmJUaWNrZXRzID0gYWRkVG9UaWNrZXRzTGlzdCh0aWNrZXQsIGxpc3QpO1xuICB0aWNrZXQudGlja2V0cyA9IG5iVGlja2V0cztcbiAgYXdhaXQgdXBkYXRlKHRpY2tldCk7XG59O1xuXG5jb25zdCBhZGRUb1RpY2tldHNMaXN0ID0gKHRpY2tldCwgbGlzdCkgPT4ge1xuICBsZXQgbmJUaWNrZXRzO1xuICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aWNrZXQuc2hvdytcIi10XCIpID09PSBudWxsKSB7XG4gICAgY3JlYXRlRGl2VGlja2V0cyh0aWNrZXQsIGxpc3QpO1xuICAgIG5iVGlja2V0cyA9IDE7XG4gIH1lbHNlIHtcbiAgICBjb25zdCBzcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRpY2tldC5zaG93K1wiLXRcIikucXVlcnlTZWxlY3RvcihcIi50aWNrZXRzXCIpO1xuICAgIHNwLnRleHRDb250ZW50ID0gMSArIHBhcnNlSW50KHNwLnRleHRDb250ZW50KTtcbiAgICBuYlRpY2tldHMgPSBwYXJzZUludChzcC50ZXh0Q29udGVudCk7XG4gIH1cbiAgcmV0dXJuIG5iVGlja2V0cztcbn07XG5cblxuY29uc3QgY3JlYXRlRGl2VGlja2V0cyA9ICh0aWNrZXQsIGxpc3QpID0+IHtcbiAgY29uc3Qgc2hvd0lkID0gdGlja2V0LnNob3cgKyBcIi10XCI7XG4gIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbm9kZS5pZCA9IHNob3dJZDtcbiAgbm9kZS5jbGFzc05hbWUgPSBcInJlc2VydmF0aW9uXCI7XG4gIG5vZGUudGV4dENvbnRlbnQgPSBgJHt0aWNrZXQuZGVzY3JpcHRpb259YDtcbiAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgc3Bhbi5jbGFzc05hbWUgPSBcInRpY2tldHNcIjtcbiAgc3Bhbi50ZXh0Q29udGVudCA9IHRpY2tldC50aWNrZXRzO1xuICBub2RlLmFwcGVuZENoaWxkKHNwYW4pO1xuICBjb25zdCBhbm51bGF0aW9uQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gIGFubnVsYXRpb25CdXR0b24uY2xhc3NOYW1lID0gJ2FubnVsYXRpb24nO1xuICBhbm51bGF0aW9uQnV0dG9uLnRleHRDb250ZW50ID0gXCJBbm51bGVyXCI7XG4gIGFubnVsYXRpb25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNhbmNlbFRpY2tldFNob3cpO1xuICBub2RlLmFwcGVuZENoaWxkKGFubnVsYXRpb25CdXR0b24pO1xuICBsaXN0LmFwcGVuZENoaWxkKG5vZGUpO1xufVxuXG5jb25zdCBjYW5jZWxUaWNrZXRTaG93ID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNob3dUaWNrZXRzXCIpO1xuICBjb25zdCB0aWNrZXREaXYgPSBldmVudC50YXJnZXQucGFyZW50RWxlbWVudDtcbiAgbGlzdC5yZW1vdmVDaGlsZCh0aWNrZXREaXYpO1xuICBjb25zdCBzaG93SWQgPSB0aWNrZXREaXYuaWQuc3BsaXQoJy0nKVswXTtcbiAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHNob3dJZCk7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0RFTEVURScsXG4gICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC8ke3Nob3dJZH1gLCByZXF1ZXN0T3B0aW9ucyk7XG4gIGlmIChyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IHVwZGF0ZWRVc2VyID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGNvbnNvbGUubG9nKGBkZWxldGVkIHRpY2tldCBpZCA6ICR7SlNPTi5zdHJpbmdpZnkodXBkYXRlZFVzZXIpfWApO1xuICB9XG4gIGVsc2Uge1xuICAgIGNvbnN0IGVycm9yID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgfVxufVxuXG5jb25zdCBsb2dvdXQgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA6J0dFVCcsXG4gICAgICAgICAgICAgICAgICAgICAgIH07XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hY2Nlc3MvbG9nb3V0YCwgcmVxdWVzdE9wdGlvbnMpO1xuICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZj0gJy8nO1xuICB9XG59XG5cbmNvbnN0IGhhbmRsZUVycm9yID0gZXJyb3IgPT4ge1xuICBpZiAoZXJyb3IucmVkaXJlY3RUbylcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZj0gZXJyb3IucmVkaXJlY3RUbztcbiAgZWxzZVxuICAgIGNvbnNvbGUubG9nKGBlcnJldXIgOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG59Il0sIm5hbWVzIjpbInVzZXJuYW1lIiwic2V0dXAiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZ2V0VXNlciIsImRpc3BsYXlTaG93TGlzdCIsImRpc3BsYXlUaWNrZXRzTGlzdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJsb2dvdXQiLCJ3aW5kb3ciLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXF1ZXN0T3B0aW9ucyIsInJlc3BvbnNlIiwidXNlciIsImVycm9yIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm1ldGhvZCIsImZldGNoIiwic2VudCIsIm9rIiwianNvbiIsInRleHRDb250ZW50IiwibmFtZSIsImhhbmRsZUVycm9yIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiX3JlZjIiLCJfY2FsbGVlMiIsImFsbFNob3dzIiwibGlzdCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImZvckVhY2giLCJzaG93IiwiYWRkVG9MaXN0Iiwibm9kZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsIl9pZCIsImNsYXNzTmFtZSIsInNwYW4iLCJjb25jYXQiLCJwbGFjZXMiLCJkZXNjcmlwdGlvbiIsImFwcGVuZENoaWxkIiwidGlja2V0c0J1dHRvbiIsImFkZFRpY2tldFNob3ciLCJ1cGRhdGUiLCJfcmVmMyIsIl9jYWxsZWUzIiwiZGF0YSIsImJvZHkiLCJ1cGRhdGVkVXNlciIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIkpTT04iLCJzdHJpbmdpZnkiLCJoZWFkZXJzIiwiY29uc29sZSIsImxvZyIsIl94IiwiX3JlZjQiLCJfY2FsbGVlNCIsImFsbFRpY2tldHMiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJ0aWNrZXQiLCJhZGRUaWNrZXRzVG9MaXN0IiwiY3JlYXRlRGl2VGlja2V0cyIsIl9yZWY1IiwiX2NhbGxlZTUiLCJldmVudCIsImRpdlNob3ciLCJzaG93SWQiLCJuYlRpY2tldHMiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJ0YXJnZXQiLCJwYXJlbnRFbGVtZW50Iiwic3BsaXQiLCJ0aWNrZXRzIiwiYWRkVG9UaWNrZXRzTGlzdCIsIl94MiIsInNwIiwicXVlcnlTZWxlY3RvciIsInBhcnNlSW50IiwiYW5udWxhdGlvbkJ1dHRvbiIsImNhbmNlbFRpY2tldFNob3ciLCJfcmVmNiIsIl9jYWxsZWU2IiwidGlja2V0RGl2IiwiX2NhbGxlZTYkIiwiX2NvbnRleHQ2IiwicmVtb3ZlQ2hpbGQiLCJfeDMiLCJfcmVmNyIsIl9jYWxsZWU3IiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3IiwibG9jYXRpb24iLCJocmVmIiwicmVkaXJlY3RUbyIsIm1lc3NhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/scripts/user.client.js\n')},"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\nfunction _regeneratorRuntime() {\n "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = "function" == typeof Symbol ? Symbol : {},\n a = i.iterator || "@@iterator",\n c = i.asyncIterator || "@@asyncIterator",\n u = i.toStringTag || "@@toStringTag";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, "");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, "_invoke", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: "normal",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: "throw",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = "suspendedStart",\n l = "suspendedYield",\n f = "executing",\n s = "completed",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n ["next", "throw", "return"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if ("throw" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {\n invoke("next", t, i, a);\n }, function (t) {\n invoke("throw", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke("throw", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, "_invoke", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error("Generator is already running");\n if (o === s) {\n if ("throw" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else "return" === n.method && n.abrupt("return", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if ("normal" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a \'" + n + "\' method")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = "normal", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: "root"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || "" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if ("function" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + " is not iterable");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, "constructor", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {\n var e = "function" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {\n return this;\n }), define(g, "toString", function () {\n return "[object Generator]";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if ("throw" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if ("root" === i.tryLoc) return handle("end");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, "catchLoc"),\n u = n.call(i, "finallyLoc");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error("try statement without catch or finally");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if ("throw" === t.type) throw t.arg;\n return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n "catch": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if ("throw" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error("illegal catch attempt");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, "next" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzR0FBaUM7QUFDL0M7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYTtBQUNiLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixlQUFlO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0Esc0NBQXNDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL2FwcC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcz85MDU1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gIFwidXNlIHN0cmljdFwiOyAvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovXG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSA9IGZ1bmN0aW9uIF9yZWdlbmVyYXRvclJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIHQsXG4gICAgZSA9IHt9LFxuICAgIHIgPSBPYmplY3QucHJvdG90eXBlLFxuICAgIG4gPSByLmhhc093blByb3BlcnR5LFxuICAgIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgZnVuY3Rpb24gKHQsIGUsIHIpIHtcbiAgICAgIHRbZV0gPSByLnZhbHVlO1xuICAgIH0sXG4gICAgaSA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgYSA9IGkuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgYyA9IGkuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiLFxuICAgIHUgPSBpLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuICBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwge1xuICAgICAgdmFsdWU6IHIsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICB3cml0YWJsZTogITBcbiAgICB9KSwgdFtlXTtcbiAgfVxuICB0cnkge1xuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKHQpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikge1xuICAgICAgcmV0dXJuIHRbZV0gPSByO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gd3JhcCh0LCBlLCByLCBuKSB7XG4gICAgdmFyIGkgPSBlICYmIGUucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gZSA6IEdlbmVyYXRvcixcbiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxcbiAgICAgIGMgPSBuZXcgQ29udGV4dChuIHx8IFtdKTtcbiAgICByZXR1cm4gbyhhLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IG1ha2VJbnZva2VNZXRob2QodCwgciwgYylcbiAgICB9KSwgYTtcbiAgfVxuICBmdW5jdGlvbiB0cnlDYXRjaCh0LCBlLCByKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibm9ybWFsXCIsXG4gICAgICAgIGFyZzogdC5jYWxsKGUsIHIpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwidGhyb3dcIixcbiAgICAgICAgYXJnOiB0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBlLndyYXAgPSB3cmFwO1xuICB2YXIgaCA9IFwic3VzcGVuZGVkU3RhcnRcIixcbiAgICBsID0gXCJzdXNwZW5kZWRZaWVsZFwiLFxuICAgIGYgPSBcImV4ZWN1dGluZ1wiLFxuICAgIHMgPSBcImNvbXBsZXRlZFwiLFxuICAgIHkgPSB7fTtcbiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9XG4gIHZhciBwID0ge307XG4gIGRlZmluZShwLCBhLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pO1xuICB2YXIgZCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICB2ID0gZCAmJiBkKGQodmFsdWVzKFtdKSkpO1xuICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7XG4gIHZhciBnID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID0gR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocCk7XG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyh0KSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRlZmluZSh0LCBlLCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKGUsIHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKHIsIG8sIGksIGEpIHtcbiAgICAgIHZhciBjID0gdHJ5Q2F0Y2godFtyXSwgdCwgbyk7XG4gICAgICBpZiAoXCJ0aHJvd1wiICE9PSBjLnR5cGUpIHtcbiAgICAgICAgdmFyIHUgPSBjLmFyZyxcbiAgICAgICAgICBoID0gdS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGggJiYgXCJvYmplY3RcIiA9PSBfdHlwZW9mKGgpICYmIG4uY2FsbChoLCBcIl9fYXdhaXRcIikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB0LCBpLCBhKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSkgOiBlLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCB0LCBpLCBhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhKGMuYXJnKTtcbiAgICB9XG4gICAgdmFyIHI7XG4gICAgbyh0aGlzLCBcIl9pbnZva2VcIiwge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlKHQsIG4pIHtcbiAgICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7XG4gICAgICAgICAgICBpbnZva2UodCwgbiwgZSwgcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIgPSByID8gci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLCBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZykgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoZSwgciwgbikge1xuICAgIHZhciBvID0gaDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHtcbiAgICAgIGlmIChvID09PSBmKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkge1xuICAgICAgZm9yICh2YXIgciA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyByID49IDA7IC0tcikge1xuICAgICAgICB2YXIgbyA9IHRoaXMudHJ5RW50cmllc1tyXTtcbiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgXCJmaW5hbGx5TG9jXCIpICYmIHRoaXMucHJldiA8IG8uZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBpID0gbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSAmJiAoXCJicmVha1wiID09PSB0IHx8IFwiY29udGludWVcIiA9PT0gdCkgJiYgaS50cnlMb2MgPD0gZSAmJiBlIDw9IGkuZmluYWxseUxvYyAmJiAoaSA9IG51bGwpO1xuICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307XG4gICAgICByZXR1cm4gYS50eXBlID0gdCwgYS5hcmcgPSBlLCBpID8gKHRoaXMubWV0aG9kID0gXCJuZXh0XCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKHQsIGUpIHtcbiAgICAgIGlmIChcInRocm93XCIgPT09IHQudHlwZSkgdGhyb3cgdC5hcmc7XG4gICAgICByZXR1cm4gXCJicmVha1wiID09PSB0LnR5cGUgfHwgXCJjb250aW51ZVwiID09PSB0LnR5cGUgPyB0aGlzLm5leHQgPSB0LmFyZyA6IFwicmV0dXJuXCIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCIsIHRoaXMubmV4dCA9IFwiZW5kXCIpIDogXCJub3JtYWxcIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5O1xuICAgIH0sXG4gICAgZmluaXNoOiBmdW5jdGlvbiBmaW5pc2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIuZmluYWxseUxvYyA9PT0gdCkgcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLCByLmFmdGVyTG9jKSwgcmVzZXRUcnlFbnRyeShyKSwgeTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiY2F0Y2hcIjogZnVuY3Rpb24gX2NhdGNoKHQpIHtcbiAgICAgIGZvciAodmFyIGUgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgZSA+PSAwOyAtLWUpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07XG4gICAgICAgIGlmIChyLnRyeUxvYyA9PT0gdCkge1xuICAgICAgICAgIHZhciBuID0gci5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChcInRocm93XCIgPT09IG4udHlwZSkge1xuICAgICAgICAgICAgdmFyIG8gPSBuLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkocik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIik7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbiBkZWxlZ2F0ZVlpZWxkKGUsIHIsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0ge1xuICAgICAgICBpdGVyYXRvcjogdmFsdWVzKGUpLFxuICAgICAgICByZXN1bHROYW1lOiByLFxuICAgICAgICBuZXh0TG9jOiBuXG4gICAgICB9LCBcIm5leHRcIiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7XG4gICAgfVxuICB9LCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(o) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanM/MjY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpLCBfdHlwZW9mKG8pO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n')},"./node_modules/@babel/runtime/regenerator/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === "object") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function("r", "regeneratorRuntime = r")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLGtHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcHAvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanM/MGRlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n')},"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/YzE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n')}},__webpack_module_cache__={};function __webpack_require__(Q){var B=__webpack_module_cache__[Q];if(void 0!==B)return B.exports;var n=__webpack_module_cache__[Q]={exports:{}};return __webpack_modules__[Q](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=Q=>{var B=Q&&Q.__esModule?()=>Q.default:()=>Q;return __webpack_require__.d(B,{a:B}),B},__webpack_require__.d=(Q,B)=>{for(var n in B)__webpack_require__.o(B,n)&&!__webpack_require__.o(Q,n)&&Object.defineProperty(Q,n,{enumerable:!0,get:B[n]})},__webpack_require__.o=(Q,B)=>Object.prototype.hasOwnProperty.call(Q,B),__webpack_require__.r=Q=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(Q,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(Q,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/scripts/user.client.js")})(); \ No newline at end of file diff --git a/showtime/server/public/scripts/user-bundle.js.LICENSE.txt b/showtime/server/public/scripts/user-bundle.js.LICENSE.txt deleted file mode 100644 index fc8d4aeebc003560e3bc616e7a4302a1428fa9a0..0000000000000000000000000000000000000000 --- a/showtime/server/public/scripts/user-bundle.js.LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -/*!************************************!*\ - !*** ./src/scripts/user.client.js ***! - \************************************/ - -/*!*******************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! - \*******************************************************/ - -/*!**********************************************************!*\ - !*** ./node_modules/@babel/runtime/regenerator/index.js ***! - \**********************************************************/ - -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! - \*******************************************************************/ - -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! - \*********************************************************************/ diff --git a/showtime/server/public/style/admin.css b/showtime/server/public/style/admin.css deleted file mode 100644 index f0982d9cf0ac0f6190b35cf3ee950fe216407e7d..0000000000000000000000000000000000000000 --- a/showtime/server/public/style/admin.css +++ /dev/null @@ -1,41 +0,0 @@ -body { - padding: 50px; - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; - } - - #content , #list { - margin : 10px; - padding : 4px; - border : solid thin #999; - } - - #content { - overflow : hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - - #createShow { - margin : auto; - } - - #place { - width : 100px; - text-align : right; - } - - #list div.show { - padding : 2px; - margin : 1px 2px; - } - div.show:nth-of-type(even) { - background-color: #EEE; - } - - - button.delete { - color : red; - margin-left : 10px; - } - - \ No newline at end of file diff --git a/showtime/server/public/style/style.css b/showtime/server/public/style/style.css deleted file mode 100644 index 69cc4ccd4ad928b3f7ea3417b4d0d2209ed8d62b..0000000000000000000000000000000000000000 --- a/showtime/server/public/style/style.css +++ /dev/null @@ -1,68 +0,0 @@ -body { - padding: 50px; - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; -} - -div { - width: 280px; - margin: auto; - padding: 2px; - text-align: center; - overflow: hidden; - box-sizing: border-box; - border: solid thin #999; -} - -div label { - padding: 7px; -} - -input { - text-align: center; -} - -#place { - width: 10px; -} - -button { - padding: 3px; - width: 100px; - margin: 0px 5px; - font-weight: bold; -} - -#shows, #tickets { - padding: 4px; - border: solid thin #999; -} - -#list, #shows { - padding: 2px; -} - -#list, #showTickets{ - overflow: auto; -} - -.tickets { - width: 50px; - color: green; -} - -div.reservation:nth-of-type(even), div.show:nth-of-type(even) { - background-color: #EEE; -} - -#userdata { - background-color: #DDD; -} - -#userdata div { - text-align: center; - margin: 2px; -} - -#controls { - margin-top: 10px; -} diff --git a/showtime/server/public/stylesheets/style.css b/showtime/server/public/stylesheets/style.css deleted file mode 100644 index 9453385b9916ce9bc5e88d2f5d8cd8a554223590..0000000000000000000000000000000000000000 --- a/showtime/server/public/stylesheets/style.css +++ /dev/null @@ -1,8 +0,0 @@ -body { - padding: 50px; - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; -} - -a { - color: #00B7FF; -}