diff --git a/.dockerignore b/.dockerignore
index 5171c5408..9303c347e 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,2 +1,2 @@
-node_modules
+node_modules/
 npm-debug.log
\ No newline at end of file
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 000000000..924234705
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,36 @@
+# ....................................
+# ... GITHUB ACIONS CI/CD WORKFLOW ...
+# ....................................
+# DESCRIPTION
+# ....................................
+# This Github Action is responsible with the
+# auto-deployment of the main (branch) to the
+# location of the server
+# ....................................
+
+name: 🚀 Deployment
+# [ℹ] when to trigger this project
+on:
+  push:
+    branches: [main]
+# [ℹ] JOBS TO DO WITH GITHUB WORFLOWS;
+jobs:
+  build:
+    name: Build
+    runs-on: ubuntu-latest
+    steps:
+    - name: executing remote ssh commands using password
+      uses: appleboy/ssh-action@v0.1.7
+      # [ℹ] declaring ENV variables to be used in the project-CI/CD
+      with:
+        host: ${{secrets.WEB_SERVER_HOST}}
+        username: ${{secrets.WEB_SERVER_USERNAME}}
+        key: ${{secrets.WEB_SERVER_KEY}}
+        port: ${{secrets.WEB_SERVER_PORT}}
+        script: | 
+          # [ℹ] Navigate to target project directory
+          cd web/scores
+          # [ℹ] Update the directory with latests changes
+          git pull origin enhance/feature-docker-deploy
+          # [ℹ] Run target makefile command
+          make update-scores-web
diff --git a/.gitignore b/.gitignore
index e28af16ed..859f2f131 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@ node_modules
 /.svelte-kit
 /package
 /gif
+certs/*
 
 # [CRITICAL TO BE UN-TRACKED]
 .env
diff --git a/.vscode/settings.json b/.vscode/settings.json
index d34a518cf..14ac0e1d9 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -19,6 +19,12 @@
       "backgroundColor": "black",
       "overviewRulerColor": "grey"
     },
+    {
+      "text": "DOC:",
+      "color": "#ffffff",
+      "backgroundColor": "blue",
+      "overviewRulerColor": "grey"
+    },
     {
       "text": "IMPORTANT",
       "color": "#ffffff",
diff --git a/CONTRIBUTING/EXAMPLE_WIDGET.svelte b/CONTRIBUTING/EXAMPLE_WIDGET.svelte
index e69de29bb..aa7292b89 100644
--- a/CONTRIBUTING/EXAMPLE_WIDGET.svelte
+++ b/CONTRIBUTING/EXAMPLE_WIDGET.svelte
@@ -0,0 +1,38 @@
+<!-- ===============
+COMPONENT JS (w/ TS)
+=================-->
+
+<script lang="ts">
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  //  COMPONENT VARIABLES
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+  export const EXAMPLE_VALUE
+  
+  const EXAMPLE_VALUE
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  //  COMPONENT METHODS
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+  function do_something() {}
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  // VIEWPORT CHANGES
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+</script>
+
+<!-- ===============
+COMPONENT HTML 
+=================-->
+
+<!-- HTML GOES HERE -->
+
+<!-- ===============
+COMPONENT STYLE
+=================-->
+
+<style>
+</style>
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index e33a034bd..f951f0eeb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -29,5 +29,6 @@ WORKDIR /app
 COPY --from=build /app .
 COPY . .
 
-EXPOSE 3000
-CMD ["node", "./build"]
\ No newline at end of file
+EXPOSE 5055
+# CMD ["node", "./build"]
+CMD ["npm", "start"]
\ No newline at end of file
diff --git a/Dockerfile.dev b/Dockerfile.dev
new file mode 100644
index 000000000..bcf5b397d
--- /dev/null
+++ b/Dockerfile.dev
@@ -0,0 +1,29 @@
+# https://hub.docker.com/_/node
+
+# ==== Builder Image
+FROM node:16.17.0-alpine as build
+
+WORKDIR /app
+
+# [ℹ] Installs required node packages
+COPY package.json package-lock.json ./
+# RUN apk add --no-cache git
+# [ℹ] Installs required APK packages:
+# [ℹ] https://pkgs.alpinelinux.org/packages
+# [ℹ] example-use: https://superuser.com/questions/1055060/how-to-install-a-specific-package-version-in-alpine
+# [ℹ] example-use: https://superuser.com/questions/1198215/fixate-version-alpine-linux-apk-package-in-container
+RUN apk add --no-cache \
+  python3=3.10.9-r0 \
+  make=4.3-r0 \
+  g++=11.2.1_git20220219-r2 \
+  && npm i --omit=optional
+
+# [ℹ] Builds node application
+COPY . .
+
+# Expose port 3000 for the SvelteKit app and 24678 for Vite's HMR
+EXPOSE 5055
+EXPOSE 24678
+
+# CMD ["node", "./build"]
+CMD ["npm", "run", "dev-docker"]
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 4f86ed263..3cc79c4b6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,23 @@
+# ===========
+# PRODUCTION
+# ===========
+
+start:
+	echo 'Starting PROD container'
+	docker-compose -f docker-compose.yml up -d
+
+log-listen:
+	echo 'Starting PROD container'
+	docker-compose -f docker-compose.yml up
+
+update-scores-web:
+	echo 'Updating PROD Scores Web container...'
+	git pull origin enhance/feature-docker-deploy
+	-docker rm $$(docker stop $$(docker ps -a -q --filter="name=scores_scores_web_1" --format="{{.ID}}"))
+	-docker rmi $$(docker images -q scores_web)
+	-docker rmi $$(docker images --filter "dangling=true" -q --no-trunc)
+	docker-compose -f docker-compose.yml up -d
+
 # ===========
 # DEVELOPMENT
 # ===========
@@ -6,9 +26,23 @@ dev-start:
 	echo 'Starting DEV Environment'
 	npm run dev
 	echo 'Removing Old DEV Logs'
-	rm -r ./datalog/
+	-rm -r ./datalog/*
+	echo 'DEV Ready!'
+
+dev-docker-start:
+	echo 'Starting DEV - Docker Environment'
+	echo 'Removing Old DEV Logs'
+	-rm -r ./datalog/*
+	docker-compose -f docker-compose.dev.yml up
 	echo 'DEV Ready!'
 
 dev-clean:
 	echo 'Removing Old DEV Logs'
-	rm -r ./datalog/
\ No newline at end of file
+	rm -r ./datalog/
+
+# from Develop and assuming your master is up to date with origin/master
+# git-post-main-pr:
+# 	git checkout main
+# 	git pull origin main
+# 	git checkout dev
+# 	git reset --hard main
\ No newline at end of file
diff --git a/README.md b/README.md
index 2cf02f633..113bf7cdf 100644
--- a/README.md
+++ b/README.md
@@ -47,7 +47,31 @@ This project is dependent on the following libraries and technologies:
 
 ### Dev Environment
 
-Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
+> There are a few ways in which you can start working with development, all listed below:
+
+1. ⭐️ [Preferred]
+
+Using `GitHub | Codespaces`. To get started simply launch the
+`dev` branch and once the `codespace` has successfully loaded 
+check for `node` and `npm` to match those in the `package.json > engines`.
+If versions do not match, run the following commands:
+
+```
+npm install -g npm@8.19.1
+npm install
+```
+
+---
+
+2. `Local Dev`
+
+Clone the latest `main` branch and begin development:
+
+```bash
+npm install (or `pnpm install` or `yarn`)
+```
+
+and start the development server:
 
 ```bash
 npm run dev
@@ -56,15 +80,26 @@ npm run dev
 npm run dev -- --open
 ```
 
-### Dev Environment [Codespaces]
+---
 
-If you're using `codespaces` enabled for the `scores-platform` development - simply launch the
-`dev` branch and once the `codespace` has successfully loaded run the following commands:
+3. `Docker DEV`
 
+If you do not have the supported/defined `node` and `npm` versions
+installed on your local machine, you can opt to use the configured `Docker`
+DEV environemnt.
+
+For this you will need:
+  - `Docker Desktop` downloded on your local machine,
+  - `Makefile` (or `Node`)
+
+```bash
+make dev-docker-start
+
+# OR if no Make installed
+npm run docker-dev-up
 ```
-npm install -g npm@8.19.1
-npm install
-```
+
+`NOTE:` 🔥 Hot-reload enabled for `Docker DEV`
 
 ### Production Environment
 
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
new file mode 100644
index 000000000..f55dc2402
--- /dev/null
+++ b/docker-compose.dev.yml
@@ -0,0 +1,32 @@
+# Please refer https://aka.ms/HTTPSinContainer on how to setup an https developer certificate for your ASP .NET Core service.
+
+version: '3.4'
+
+services:
+
+  scores_web:
+    image: scores_web
+    restart: always
+    environment:
+      PORT: ${PORT}
+      VITE_HASURA_DB_URL: ${VITE_HASURA_DB_URL}
+      VITE_HASURA_DB_TOKEN: ${VITE_HASURA_DB_TOKEN}
+      VITE_FIREBASE_DB_API_KEY: ${VITE_FIREBASE_DB_API_KEY}
+      VITE_FIREBASE_DB_AUTH_DOMAIN: ${VITE_FIREBASE_DB_AUTH_DOMAIN}
+      VITE_FIREBASE_DB_PROJECT_ID: ${VITE_FIREBASE_DB_PROJECT_ID}
+      VITE_FIREBASE_DB_DATABASE_URL: ${VITE_FIREBASE_DB_DATABASE_URL}
+      VITE_REDIS_HOST: ${VITE_REDIS_HOST}
+      VITE_REDIS_PORT: ${VITE_REDIS_PORT}
+      VITE_REDIS_PASS: ${VITE_REDIS_PASS}
+      VITE_REDIS_CACHE_DB: ${VITE_REDIS_CACHE_DB}
+      VITE_REDIS_BULL_DB: ${VITE_REDIS_BULL_DB}
+    build:
+      context: .
+      dockerfile: ./Dockerfile.dev
+    # NOTE: enalbe-DEV hot-reload [INPORTANT]
+    volumes:
+      - .:/app
+      - /app/node_modules # path as its own volume to avoid copying over local Node modules to Docker
+    ports:
+      - 5055:5055
+      - 24678:24678
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 000000000..9b4862e14
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,31 @@
+# Please refer https://aka.ms/HTTPSinContainer on how to setup an https developer certificate for your ASP .NET Core service.
+
+version: '3.4'
+
+services:
+
+  scores_web:
+    image: scores_web
+    restart: always
+    environment:
+      PORT: ${PORT}
+      VITE_HASURA_DB_URL: ${VITE_HASURA_DB_URL}
+      VITE_HASURA_DB_TOKEN: ${VITE_HASURA_DB_TOKEN}
+      VITE_FIREBASE_DB_API_KEY: ${VITE_FIREBASE_DB_API_KEY}
+      VITE_FIREBASE_DB_AUTH_DOMAIN: ${VITE_FIREBASE_DB_AUTH_DOMAIN}
+      VITE_FIREBASE_DB_PROJECT_ID: ${VITE_FIREBASE_DB_PROJECT_ID}
+      VITE_FIREBASE_DB_DATABASE_URL: ${VITE_FIREBASE_DB_DATABASE_URL}
+      VITE_REDIS_HOST: ${VITE_REDIS_HOST}
+      VITE_REDIS_PORT: ${VITE_REDIS_PORT}
+      VITE_REDIS_PASS: ${VITE_REDIS_PASS}
+      VITE_REDIS_CACHE_DB: ${VITE_REDIS_CACHE_DB}
+      VITE_REDIS_BULL_DB: ${VITE_REDIS_BULL_DB}
+    build:
+      context: .
+      dockerfile: ./Dockerfile
+    volumes:
+      - ./certs:/certs # IMPORTANT
+    ports:
+      - 5055:5055
+      - 443:443 # IMPORTANT
+      - 80:80   # IMPORTANT
\ No newline at end of file
diff --git a/my-server.js b/my-server.js
index efb98e6e9..63ae796c9 100644
--- a/my-server.js
+++ b/my-server.js
@@ -1,13 +1,23 @@
 // [ℹ] https://github.com/sveltejs/kit/tree/master/packages/adapter-node#custom-server
 // [ℹ] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
-
 import express from 'express';
+import http from 'http';
+import https from 'https';
+
 import { handler } from './build/handler.js';
 // import sslRedirect from 'heroku-ssl-redirect';
 import compression from 'compression'; // https://expressjs.com/en/resources/middleware/compression.html
 import * as sslify from 'express-sslify';
 import * as requestIp from 'request-ip'; // https://www.npmjs.com/package/request-ip
 
+import fs from 'fs';
+
+const options = {
+    key: fs.readFileSync('./certs/privkey.pem'),
+    cert: fs.readFileSync('./certs/cert.pem'),
+  }
+;
+
 const app = express();
 
 /**
@@ -65,12 +75,12 @@ app.get('/getClientIP', (req, res) => {
  * [ℹ] https://jaketrent.com/post/https-redirect-node-heroku
  * [ℹ] https://webdva.github.io/how-to-force-express-https-tutorial 
 */
-app.use((req, res, next) => {
-  if (req.header('x-forwarded-proto') !== 'https')
-    res.redirect(`https://${req.header('host')}${req.url}`);
-  else
-    next();
-});
+// app.use((req, res, next) => {
+//   if (req.header('x-forwarded-proto') !== 'https')
+//     res.redirect(`https://${req.header('host')}${req.url}`);
+//   else
+//     next();
+// });
 
 /**
  * [ℹ] https://www.npmjs.com/package/express-sslify
@@ -91,6 +101,18 @@ app.use(handler);
  * [ℹ] initialize app;
  * [ℹ] https://stackoverflow.com/questions/15693192/heroku-node-js-error-web-process-failed-to-bind-to-port-within-60-seconds-o 
 */
-app.listen(process.env.PORT || 5000, () => {
-	console.log('listening on port 5000');
+// app.listen(process.env.PORT, () => {
+// 	console.log(`listening on port ${process.env.PORT}`);
+// });
+
+// ~~~~~~~~~~~~~~~~~~~~~~
+// APP SPIN-UP [PROD] [V2]
+// ~~~~~~~~~~~~~~~~~~~~~~
+
+http.createServer(app).listen(80, () => {
+  console.log(`[HTTP | Server]: Server is running on port: ${80}`);
+});
+
+https.createServer(options, app).listen(443, () => {
+  console.log(`[HTTPS | Server]: Server is running on port: ${443}`);
 });
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 3751ada9a..c1efd5eca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,9 @@
 			"version": "0.5.6",
 			"dependencies": {
 				"@lukeed/uuid": "^2.0.0",
+				"@moralisweb3/client-firebase-auth-utils": "^2.11.1",
+				"@moralisweb3/client-firebase-evm-auth": "^2.11.1",
+				"@moralisweb3/next": "^2.11.1",
 				"@sentry/browser": "^7.12.1",
 				"@sentry/tracing": "^7.12.1",
 				"bull": "^4.9.0",
@@ -23,6 +26,8 @@
 				"graphql-request": "^5.0.0",
 				"heroku-ssl-redirect": "^0.1.1",
 				"ioredis": "^5.2.3",
+				"moralis": "^2.11.1",
+				"next-auth": "^4.18.8",
 				"request-ip": "^3.3.0",
 				"sitemap": "^7.1.1",
 				"svelte-seo": "^1.3.1",
@@ -59,6 +64,17 @@
 				"npm": "8.19.1"
 			}
 		},
+		"node_modules/@babel/runtime": {
+			"version": "7.20.13",
+			"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
+			"integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
+			"dependencies": {
+				"regenerator-runtime": "^0.13.11"
+			},
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
 		"node_modules/@cush/relative": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/@cush/relative/-/relative-1.0.0.tgz",
@@ -104,15 +120,706 @@
 				"url": "https://opencollective.com/eslint"
 			}
 		},
+		"node_modules/@ethersproject/abi": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
+			"integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/abstract-provider": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
+			"integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/networks": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/web": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/abstract-signer": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
+			"integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/address": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
+			"integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/rlp": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/base64": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
+			"integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/basex": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
+			"integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/bignumber": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
+			"integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"bn.js": "^5.2.1"
+			}
+		},
+		"node_modules/@ethersproject/bytes": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
+			"integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/constants": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
+			"integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bignumber": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/contracts": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
+			"integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abi": "^5.7.0",
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/hash": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
+			"integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/base64": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/hdnode": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
+			"integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/basex": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/pbkdf2": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0",
+				"@ethersproject/signing-key": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/wordlists": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/json-wallets": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
+			"integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/hdnode": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/pbkdf2": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/random": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"aes-js": "3.0.0",
+				"scrypt-js": "3.0.1"
+			}
+		},
+		"node_modules/@ethersproject/keccak256": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
+			"integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"js-sha3": "0.8.0"
+			}
+		},
+		"node_modules/@ethersproject/logger": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
+			"integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			]
+		},
+		"node_modules/@ethersproject/networks": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
+			"integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/pbkdf2": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
+			"integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/properties": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
+			"integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/providers": {
+			"version": "5.7.2",
+			"resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz",
+			"integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/base64": "^5.7.0",
+				"@ethersproject/basex": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/networks": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/random": "^5.7.0",
+				"@ethersproject/rlp": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/web": "^5.7.0",
+				"bech32": "1.1.4",
+				"ws": "7.4.6"
+			}
+		},
+		"node_modules/@ethersproject/providers/node_modules/ws": {
+			"version": "7.4.6",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+			"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+			"engines": {
+				"node": ">=8.3.0"
+			},
+			"peerDependencies": {
+				"bufferutil": "^4.0.1",
+				"utf-8-validate": "^5.0.2"
+			},
+			"peerDependenciesMeta": {
+				"bufferutil": {
+					"optional": true
+				},
+				"utf-8-validate": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@ethersproject/random": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
+			"integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/rlp": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
+			"integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/sha2": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
+			"integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"hash.js": "1.1.7"
+			}
+		},
+		"node_modules/@ethersproject/signing-key": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
+			"integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"bn.js": "^5.2.1",
+				"elliptic": "6.5.4",
+				"hash.js": "1.1.7"
+			}
+		},
+		"node_modules/@ethersproject/solidity": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
+			"integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/strings": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
+			"integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/transactions": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
+			"integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/rlp": "^5.7.0",
+				"@ethersproject/signing-key": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/units": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
+			"integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/wallet": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
+			"integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/hdnode": "^5.7.0",
+				"@ethersproject/json-wallets": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/random": "^5.7.0",
+				"@ethersproject/signing-key": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/wordlists": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/web": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
+			"integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/base64": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"node_modules/@ethersproject/wordlists": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
+			"integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
 		"node_modules/@firebase/analytics": {
-			"version": "0.8.0",
-			"resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.8.0.tgz",
-			"integrity": "sha512-wkcwainNm8Cu2xkJpDSHfhBSdDJn86Q1TZNmLWc67VrhZUHXIKXxIqb65/tNUVE+I8+sFiDDNwA+9R3MqTQTaA==",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.1.tgz",
+			"integrity": "sha512-ARXtNHDrjDhVrs5MqmFDpr5yyCw89r1eHLd+Dw9fotAufxL1WTmo6O9bJqKb7QulIJaA84vsFokA3NaO2DNCnQ==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -120,14 +827,14 @@
 			}
 		},
 		"node_modules/@firebase/analytics-compat": {
-			"version": "0.1.13",
-			"resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.1.13.tgz",
-			"integrity": "sha512-QC1DH/Dwc8fBihn0H+jocBWyE17GF1fOCpCrpAiQ2u16F/NqsVDVG4LjIqdhq963DXaXneNY7oDwa25Up682AA==",
-			"dependencies": {
-				"@firebase/analytics": "0.8.0",
-				"@firebase/analytics-types": "0.7.0",
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.1.tgz",
+			"integrity": "sha512-qfFAGS4YFsBbmZwVa7xaDnGh7k9BKF4o/piyjySAv0lxRYd74/tSrm3kMk1YM7GCti7PdbgKvl6oSR70zMFQjw==",
+			"dependencies": {
+				"@firebase/analytics": "0.9.1",
+				"@firebase/analytics-types": "0.8.0",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -135,30 +842,30 @@
 			}
 		},
 		"node_modules/@firebase/analytics-types": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.7.0.tgz",
-			"integrity": "sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ=="
+			"version": "0.8.0",
+			"resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz",
+			"integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw=="
 		},
 		"node_modules/@firebase/app": {
-			"version": "0.7.32",
-			"resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.7.32.tgz",
-			"integrity": "sha512-FUqDHgCkr6oVTTpastIlquYsMtkd8Tg4SR8+z4sCJ1C1pbPavazN9qeYIqHQjviqLV/OflCrACCZj/s2zlh0ww==",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.1.tgz",
+			"integrity": "sha512-Z8wOSol+pvp4CFyY1mW+aqdZlrwhW/ha2YXQ6/avJ56c5Hnvt4k6GktZE6o5NyzvfJTgNHryhMtnEJMIuLaT4w==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"idb": "7.0.1",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/app-check": {
-			"version": "0.5.12",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.5.12.tgz",
-			"integrity": "sha512-l+MmvupSGT/F+I5ei7XjhEfpoL4hLVJr0vUwcG5NEf2hAkQnySli9fnbl9fZu1BJaQ2kthrMmtg1gcbcM9BUCQ==",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.1.tgz",
+			"integrity": "sha512-gDG4Gr4n3MnBZAAwLMynU9u/b+f1y87lCezfwlmN1gUxD85mJcvp4hLf87fACTyRkdVfe8hqSXm+MOYn2bMGLg==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -166,15 +873,15 @@
 			}
 		},
 		"node_modules/@firebase/app-check-compat": {
-			"version": "0.2.12",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.2.12.tgz",
-			"integrity": "sha512-GFppNLlUyMN9Iq31ME/+GkjRVKlc+MeanzUKQ9UaR73ZsYH3oX3Ja+xjoYgixaVJDDG+ofBYR7ZXTkkQdSR/pw==",
-			"dependencies": {
-				"@firebase/app-check": "0.5.12",
-				"@firebase/app-check-types": "0.4.0",
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.1.tgz",
+			"integrity": "sha512-IaSYdmaoQgWUrN6rjAYJs1TGXj38Wl9damtrDEyJBf7+rrvKshPAP/CP6e2bd89XOMZKbvy8rKoe1CqX1K3ZjQ==",
+			"dependencies": {
+				"@firebase/app-check": "0.6.1",
+				"@firebase/app-check-types": "0.5.0",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -182,42 +889,41 @@
 			}
 		},
 		"node_modules/@firebase/app-check-interop-types": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz",
-			"integrity": "sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA=="
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz",
+			"integrity": "sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ=="
 		},
 		"node_modules/@firebase/app-check-types": {
-			"version": "0.4.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.4.0.tgz",
-			"integrity": "sha512-SsWafqMABIOu7zLgWbmwvHGOeQQVQlwm42kwwubsmfLmL4Sf5uGpBfDhQ0CAkpi7bkJ/NwNFKafNDL9prRNP0Q=="
+			"version": "0.5.0",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz",
+			"integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ=="
 		},
 		"node_modules/@firebase/app-compat": {
-			"version": "0.1.33",
-			"resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.1.33.tgz",
-			"integrity": "sha512-PLCwOpduJOOkw2v0ygBPpYBRobbnxJjZVaj2xjc5IPakHWx9sLHHX3KoZnl+7ZonY1xJ2lCQaLQrwqX2hi0FXg==",
-			"dependencies": {
-				"@firebase/app": "0.7.32",
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.1.tgz",
+			"integrity": "sha512-UgPy2ZO0li0j4hAkaZKY9P1TuJEx5RylhUWPzCb8DZhBm+uHdfsFI9Yr+wMlu6qQH2sWoweFtYU6ljGzxwdctw==",
+			"dependencies": {
+				"@firebase/app": "0.9.1",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/app-types": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz",
-			"integrity": "sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg=="
+			"version": "0.9.0",
+			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz",
+			"integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q=="
 		},
 		"node_modules/@firebase/auth": {
-			"version": "0.20.6",
-			"resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.20.6.tgz",
-			"integrity": "sha512-99R3bY7aQ2zFh5BdqLEgI/qN87l3bPBLIse2eDVcSRwChaM6FTdIKoKk15L1M4ry8utatMtYFt1vRCol7QDsLg==",
+			"version": "0.21.1",
+			"resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.1.tgz",
+			"integrity": "sha512-/ap7eT9X7kZTD4Fn2m+nJyC1a9DfFo0H4euoJDN8U+JCMN+GOqkPbkMWCey7wV510WNoPCZQ05+nsAqKkbEVJw==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
-				"selenium-webdriver": "4.1.2",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -225,16 +931,15 @@
 			}
 		},
 		"node_modules/@firebase/auth-compat": {
-			"version": "0.2.19",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.2.19.tgz",
-			"integrity": "sha512-gB9fnPZM2mnNrGR7n6Y+xDC/4cSouDVfdwPYL7GuLv7b48iW1u24DC9Trv10gNUUGq6iGEyqgJgCSrVmlTkX7Q==",
-			"dependencies": {
-				"@firebase/auth": "0.20.6",
-				"@firebase/auth-types": "0.11.0",
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.1.tgz",
+			"integrity": "sha512-Ndcaam+IL1TuJ6hZ0EcQ+v261cK3kPm4mvUtouoTfl3FNinm9XvhccN8ojuaRtIV9TiY18mzGjONKF5ZCXLIZw==",
+			"dependencies": {
+				"@firebase/auth": "0.21.1",
+				"@firebase/auth-types": "0.12.0",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
-				"selenium-webdriver": "4.1.2",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -261,18 +966,14 @@
 			}
 		},
 		"node_modules/@firebase/auth-interop-types": {
-			"version": "0.1.6",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz",
-			"integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==",
-			"peerDependencies": {
-				"@firebase/app-types": "0.x",
-				"@firebase/util": "1.x"
-			}
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz",
+			"integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg=="
 		},
 		"node_modules/@firebase/auth-types": {
-			"version": "0.11.0",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.11.0.tgz",
-			"integrity": "sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==",
+			"version": "0.12.0",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz",
+			"integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==",
 			"peerDependencies": {
 				"@firebase/app-types": "0.x",
 				"@firebase/util": "1.x"
@@ -298,59 +999,59 @@
 			}
 		},
 		"node_modules/@firebase/component": {
-			"version": "0.5.17",
-			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.17.tgz",
-			"integrity": "sha512-mTM5CBSIlmI+i76qU4+DhuExnWtzcPS3cVgObA3VAjliPPr3GrUlTaaa8KBGfxsD27juQxMsYA0TvCR5X+GQ3Q==",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.1.tgz",
+			"integrity": "sha512-yvKthG0InjFx9aOPnh6gk0lVNfNVEtyq3LwXgZr+hOwD0x/CtXq33XCpqv0sQj5CA4FdMy8OO+y9edI+ZUw8LA==",
 			"dependencies": {
-				"@firebase/util": "1.6.3",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/database": {
-			"version": "0.13.6",
-			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.13.6.tgz",
-			"integrity": "sha512-5IZIBw2LT50Z8mwmKYmdX37p+Gg2HgeJsrruZmRyOSVgbfoY4Pg87n1uFx6qWqDmfL6HwQgwcrrQfVIXE3C5SA==",
-			"dependencies": {
-				"@firebase/auth-interop-types": "0.1.6",
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.14.1",
+			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.1.tgz",
+			"integrity": "sha512-iX6/p7hoxUMbYAGZD+D97L05xQgpkslF2+uJLZl46EdaEfjVMEwAdy7RS/grF96kcFZFg502LwPYTXoIdrZqOA==",
+			"dependencies": {
+				"@firebase/auth-interop-types": "0.2.1",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"faye-websocket": "0.11.4",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/database-compat": {
-			"version": "0.2.6",
-			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.2.6.tgz",
-			"integrity": "sha512-Ls1BAODaiDYgeJljrIgSuC7JkFIY/HNhhNYebzZSoGQU62RuvnaO3Qgp2EH6h2LzHyRnycNadfh1suROtPaUIA==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/database": "0.13.6",
-				"@firebase/database-types": "0.9.13",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.1.tgz",
+			"integrity": "sha512-sI7LNh0C8PCq9uUKjrBKLbZvqHTSjsf2LeZRxin+rHVegomjsOAYk9OzYwxETWh3URhpMkCM8KcTl7RVwAldog==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/database": "0.14.1",
+				"@firebase/database-types": "0.10.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/database-types": {
-			"version": "0.9.13",
-			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.13.tgz",
-			"integrity": "sha512-dIJ1zGe3EHMhwcvukTOPzYlFYFIG1Et5Znl7s7y/ZTN2/toARRNnsv1qCKvqevIMYKvIrRsYOYfOXDS8l1YIJA==",
+			"version": "0.10.1",
+			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.1.tgz",
+			"integrity": "sha512-UgUx9VakTHbP2WrVUdYrUT2ofTFVfWjGW2O1fwuvvMyo6WSnuSyO5nB1u0cyoMPvO25dfMIUVerfK7qFfwGL3Q==",
 			"dependencies": {
-				"@firebase/app-types": "0.7.0",
-				"@firebase/util": "1.6.3"
+				"@firebase/app-types": "0.9.0",
+				"@firebase/util": "1.9.0"
 			}
 		},
 		"node_modules/@firebase/firestore": {
-			"version": "3.4.15",
-			"resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.4.15.tgz",
-			"integrity": "sha512-1kal1/0UC1p9x99f0iXwWbmBL/RClksdkqLSd8HVQVawAMTR3zCVKE95omNGl0egRRlDN6c/i8XBEfkwj3SHxw==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
-				"@firebase/webchannel-wrapper": "0.6.2",
-				"@grpc/grpc-js": "^1.3.2",
+			"version": "3.8.1",
+			"resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.1.tgz",
+			"integrity": "sha512-oc2HMkUnq/zF+g9o974tp5RVCdXCnrU8e5S98ajfWG/hGV+8pr4i6vIa4z0yEXKWGi4X0FguxrC69z1dxEJbNg==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
+				"@firebase/webchannel-wrapper": "0.9.0",
+				"@grpc/grpc-js": "~1.7.0",
 				"@grpc/proto-loader": "^0.6.13",
 				"node-fetch": "2.6.7",
 				"tslib": "^2.1.0"
@@ -363,14 +1064,14 @@
 			}
 		},
 		"node_modules/@firebase/firestore-compat": {
-			"version": "0.1.24",
-			"resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.1.24.tgz",
-			"integrity": "sha512-wy9AerWLyg/RcbjKE9I73TyBW7FMVfxblGUbcRRHi5tSSrjp+JT1jsGriF6NjAij4byboaGVm8Hgrki7Oqf2kw==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/firestore": "3.4.15",
-				"@firebase/firestore-types": "2.5.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.1.tgz",
+			"integrity": "sha512-7eE4O2ASyy5X2h4a+KCRt0ZpliUAKo2jrKxKl1ZVCnOOjSCkXXeRVRG9eNZRqBwukhdwskJTM9acs0WxmKOYLA==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/firestore": "3.8.1",
+				"@firebase/firestore-types": "2.5.1",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -378,9 +1079,9 @@
 			}
 		},
 		"node_modules/@firebase/firestore-types": {
-			"version": "2.5.0",
-			"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.0.tgz",
-			"integrity": "sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA==",
+			"version": "2.5.1",
+			"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz",
+			"integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==",
 			"peerDependencies": {
 				"@firebase/app-types": "0.x",
 				"@firebase/util": "1.x"
@@ -406,15 +1107,15 @@
 			}
 		},
 		"node_modules/@firebase/functions": {
-			"version": "0.8.4",
-			"resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.8.4.tgz",
-			"integrity": "sha512-o1bB0xMyQKe+b246zGnjwHj4R6BH4mU2ZrSaa/3QvTpahUQ3hqYfkZPLOXCU7+vEFxHb3Hd4UUjkFhxoAcPqLA==",
-			"dependencies": {
-				"@firebase/app-check-interop-types": "0.1.0",
-				"@firebase/auth-interop-types": "0.1.6",
-				"@firebase/component": "0.5.17",
-				"@firebase/messaging-interop-types": "0.1.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.1.tgz",
+			"integrity": "sha512-xCSSU4aVSqYU+lCqhn9o5jJcE1KLUOOKyJfCTdCSCyTn2J3vl9Vk4TDm3JSb1Eu6XsNWtxeMW188F/GYxuMWcw==",
+			"dependencies": {
+				"@firebase/app-check-interop-types": "0.2.0",
+				"@firebase/auth-interop-types": "0.2.1",
+				"@firebase/component": "0.6.1",
+				"@firebase/messaging-interop-types": "0.2.0",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
 				"tslib": "^2.1.0"
 			},
@@ -423,14 +1124,14 @@
 			}
 		},
 		"node_modules/@firebase/functions-compat": {
-			"version": "0.2.4",
-			"resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.2.4.tgz",
-			"integrity": "sha512-Crfn6il1yXGuXkjSd8nKrqR4XxPvuP19g64bXpM6Ix67qOkQg676kyOuww0FF17xN0NSXHfG8Pyf+CUrx8wJ5g==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/functions": "0.8.4",
-				"@firebase/functions-types": "0.5.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.1.tgz",
+			"integrity": "sha512-f2D2XoRN+QCziCrUL7UrLaBEoG3v2iAeyNwbbOQ3vv0rI0mtku2/yeB2OINz5/iI6oIrBPUMNLr5fitofj7FpQ==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/functions": "0.9.1",
+				"@firebase/functions-types": "0.6.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -438,9 +1139,9 @@
 			}
 		},
 		"node_modules/@firebase/functions-types": {
-			"version": "0.5.0",
-			"resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.5.0.tgz",
-			"integrity": "sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA=="
+			"version": "0.6.0",
+			"resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz",
+			"integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw=="
 		},
 		"node_modules/@firebase/functions/node_modules/node-fetch": {
 			"version": "2.6.7",
@@ -462,12 +1163,12 @@
 			}
 		},
 		"node_modules/@firebase/installations": {
-			"version": "0.5.12",
-			"resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.5.12.tgz",
-			"integrity": "sha512-Zq43fCE0PB5tGJ3ojzx5RNQzKdej1188qgAk22rwjuhP7npaG/PlJqDG1/V0ZjTLRePZ1xGrfXSPlA17c/vtNw==",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.1.tgz",
+			"integrity": "sha512-gpobP09LLLakBfNCL04fyblfyb3oX1pn+iNmELygrcAkXTO13IAMuOzThI+Xk4NHQZMX1p5GFSAiGbG4yfsSUQ==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"idb": "7.0.1",
 				"tslib": "^2.1.0"
 			},
@@ -476,14 +1177,14 @@
 			}
 		},
 		"node_modules/@firebase/installations-compat": {
-			"version": "0.1.12",
-			"resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.1.12.tgz",
-			"integrity": "sha512-BIhFpWIn/GkuOa+jnXkp3SDJT2RLYJF6MWpinHIBKFJs7MfrgYZ3zQ1AlhobDEql+bkD1dK4dB5sNcET2T+EyA==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/installations-types": "0.4.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.1.tgz",
+			"integrity": "sha512-X4IBVKajEeaE45zWX0Y1q8ey39aPFLa+BsUoYzsduMzCxcMBIPZd5/lV1EVGt8SN3+unnC2J75flYkxXVlhBoQ==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/installations-types": "0.5.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -491,30 +1192,30 @@
 			}
 		},
 		"node_modules/@firebase/installations-types": {
-			"version": "0.4.0",
-			"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.4.0.tgz",
-			"integrity": "sha512-nXxWKQDvBGctuvsizbUEJKfxXU9WAaDhon+j0jpjIfOJkvkj3YHqlLB/HeYjpUn85Pb22BjplpTnDn4Gm9pc3A==",
+			"version": "0.5.0",
+			"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz",
+			"integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==",
 			"peerDependencies": {
 				"@firebase/app-types": "0.x"
 			}
 		},
 		"node_modules/@firebase/logger": {
-			"version": "0.3.3",
-			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.3.3.tgz",
-			"integrity": "sha512-POTJl07jOKTOevLXrTvJD/VZ0M6PnJXflbAh5J9VGkmtXPXNG6MdZ9fmRgqYhXKTaDId6AQenQ262uwgpdtO0Q==",
+			"version": "0.4.0",
+			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz",
+			"integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==",
 			"dependencies": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/messaging": {
-			"version": "0.9.16",
-			"resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.9.16.tgz",
-			"integrity": "sha512-Yl9gGrAvJF6C1gg3+Cr2HxlL6APsDEkrorkFafmSP1l+rg1epZKoOAcKJbSF02Vtb50wfb9FqGGy8tzodgETxg==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/messaging-interop-types": "0.1.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.12.1",
+			"resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.1.tgz",
+			"integrity": "sha512-/F+2OWarR8TcJJVlQS6zBoHHfXMgfgR0/ukQ3h7Ow3WZ3WZ9+Sj/gvxzothXZm+WtBylfXuhiANFgHEDFL0J0w==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/messaging-interop-types": "0.2.0",
+				"@firebase/util": "1.9.0",
 				"idb": "7.0.1",
 				"tslib": "^2.1.0"
 			},
@@ -523,13 +1224,13 @@
 			}
 		},
 		"node_modules/@firebase/messaging-compat": {
-			"version": "0.1.16",
-			"resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.1.16.tgz",
-			"integrity": "sha512-uG7rWcXJzU8vvlEBFpwG1ndw/GURrrmKcwsHopEWbsPGjMRaVWa7XrdKbvIR7IZohqPzcC/V9L8EeqF4Q4lz8w==",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.1.tgz",
+			"integrity": "sha512-BykvXtAWOs0W4Ik79lNfMKSxaUCtOJ47PJ9Vw2ySHZ14vFFNuDAtRTOBOlAFhUpsHqRoQFvFCkBGsRIQYq8hzw==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/messaging": "0.9.16",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/messaging": "0.12.1",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -537,19 +1238,19 @@
 			}
 		},
 		"node_modules/@firebase/messaging-interop-types": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz",
-			"integrity": "sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ=="
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz",
+			"integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ=="
 		},
 		"node_modules/@firebase/performance": {
-			"version": "0.5.12",
-			"resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.5.12.tgz",
-			"integrity": "sha512-MPVTkOkGrm2SMQgI1FPNBm85y2pPqlPb6VDjIMCWkVpAr6G1IZzUT24yEMySRcIlK/Hh7/Qu1Nu5ASRzRuX6+Q==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.1.tgz",
+			"integrity": "sha512-mT/CWz3CLgyn/a3sO/TJgrTt+RA3DfuvWwGXY9zmIiuBZY2bDi1M2uMefJdJKc9sBUPRajNF6RL10nGYq3BAuQ==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -557,15 +1258,15 @@
 			}
 		},
 		"node_modules/@firebase/performance-compat": {
-			"version": "0.1.12",
-			"resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.1.12.tgz",
-			"integrity": "sha512-IBORzUeGY1MGdZnsix9Mu5z4+C3WHIwalu0usxvygL0EZKHztGG8bppYPGH/b5vvg8QyHs9U+Pn1Ot2jZhffQQ==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/performance": "0.5.12",
-				"@firebase/performance-types": "0.1.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.1.tgz",
+			"integrity": "sha512-4mn6eS7r2r+ZAHvU0OHE+3ZO+x6gOVhf2ypBoijuDNaRNjSn9GcvA8udD4IbJ8FNv/k7mbbtA9AdxVb701Lr1g==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/performance": "0.6.1",
+				"@firebase/performance-types": "0.2.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -573,19 +1274,19 @@
 			}
 		},
 		"node_modules/@firebase/performance-types": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.1.0.tgz",
-			"integrity": "sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w=="
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz",
+			"integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA=="
 		},
 		"node_modules/@firebase/remote-config": {
-			"version": "0.3.11",
-			"resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.3.11.tgz",
-			"integrity": "sha512-qA84dstrvVpO7rWT/sb2CLv1kjHVmz59SRFPKohJJYFBcPOGK4Pe4FWWhKAE9yg1Gnl0qYAGkahOwNawq3vE0g==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.4.1",
+			"resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.1.tgz",
+			"integrity": "sha512-RCzBH3FjAPRSP3M1T7jdxLYBesIdLtNIQ0fR9ywJpGSSa0kIXEJ9iSZMTP+9pJtaCxz8db07FvjEqg7Y+lgjzg==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -593,15 +1294,15 @@
 			}
 		},
 		"node_modules/@firebase/remote-config-compat": {
-			"version": "0.1.12",
-			"resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.1.12.tgz",
-			"integrity": "sha512-Yz7Gtb2rLa7ykXZX9DnSTId8CXd++jFFLW3foUImrYwJEtWgLJc7gwkRfd1M73IlKGNuQAY+DpUNF0n1dLbecA==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/remote-config": "0.3.11",
-				"@firebase/remote-config-types": "0.2.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.1.tgz",
+			"integrity": "sha512-RPCj7c2Q3QxMgJH3YCt0iD57KppFApghxAGETzlr6Jm6vT7k0vqvk2KgRBgKa4koJBsgwlUtRn2roaCqUEadyg==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/remote-config": "0.4.1",
+				"@firebase/remote-config-types": "0.3.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -609,17 +1310,17 @@
 			}
 		},
 		"node_modules/@firebase/remote-config-types": {
-			"version": "0.2.0",
-			"resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz",
-			"integrity": "sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw=="
+			"version": "0.3.0",
+			"resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz",
+			"integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA=="
 		},
 		"node_modules/@firebase/storage": {
-			"version": "0.9.9",
-			"resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.9.9.tgz",
-			"integrity": "sha512-Zch7srLT2SIh9y2nCVv/4Kne0HULn7OPkmreY70BJTUJ+g5WLRjggBq6x9fV5ls9V38iqMWfn4prxzX8yIc08A==",
+			"version": "0.10.1",
+			"resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.10.1.tgz",
+			"integrity": "sha512-eN4ME+TFCh5KfyG9uo8PhE6cgKjK5Rb9eucQg1XEyLHMiaZiUv2xSuWehJn0FaL+UdteoaWKuRUZ4WXRDskXrA==",
 			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
 				"tslib": "^2.1.0"
 			},
@@ -628,14 +1329,14 @@
 			}
 		},
 		"node_modules/@firebase/storage-compat": {
-			"version": "0.1.17",
-			"resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.1.17.tgz",
-			"integrity": "sha512-nOYmnpI0gwoz5nROseMi9WbmHGf+xumfsOvdPyMZAjy0VqbDnpKIwmTUZQBdR+bLuB5oIkHQsvw9nbb1SH+PzQ==",
-			"dependencies": {
-				"@firebase/component": "0.5.17",
-				"@firebase/storage": "0.9.9",
-				"@firebase/storage-types": "0.6.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.2.1.tgz",
+			"integrity": "sha512-H0oFdYsMn2Z6tP9tlVERBkJiZsCbFAcl3Li1dnpvDg9g323egdjCnUUgH/tJODRR/Y84iZSNRkg4FvHDVI/o7Q==",
+			"dependencies": {
+				"@firebase/component": "0.6.1",
+				"@firebase/storage": "0.10.1",
+				"@firebase/storage-types": "0.7.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			},
 			"peerDependencies": {
@@ -643,9 +1344,9 @@
 			}
 		},
 		"node_modules/@firebase/storage-types": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.6.0.tgz",
-			"integrity": "sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA==",
+			"version": "0.7.0",
+			"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.7.0.tgz",
+			"integrity": "sha512-n/8pYd82hc9XItV3Pa2KGpnuJ/2h/n/oTAaBberhe6GeyWQPnsmwwRK94W3GxUwBA/ZsszBAYZd7w7tTE+6XXA==",
 			"peerDependencies": {
 				"@firebase/app-types": "0.x",
 				"@firebase/util": "1.x"
@@ -671,17 +1372,17 @@
 			}
 		},
 		"node_modules/@firebase/util": {
-			"version": "1.6.3",
-			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.6.3.tgz",
-			"integrity": "sha512-FujteO6Zjv6v8A4HS+t7c+PjU0Kaxj+rOnka0BsI/twUaCC9t8EQPmXpWZdk7XfszfahJn2pqsflUWUhtUkRlg==",
+			"version": "1.9.0",
+			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.0.tgz",
+			"integrity": "sha512-oeoq/6Sr9btbwUQs5HPfeww97bf7qgBbkknbDTXpRaph2LZ23O9XLCE5tJy856SBmGQfO4xBZP8dyryLLM2nSQ==",
 			"dependencies": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/webchannel-wrapper": {
-			"version": "0.6.2",
-			"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.6.2.tgz",
-			"integrity": "sha512-zThUKcqIU6utWzM93uEvhlh8qj8A5LMPFJPvk/ODb+8GSSif19xM2Lw1M2ijyBy8+6skSkQBbavPzOU5Oh/8tQ=="
+			"version": "0.9.0",
+			"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz",
+			"integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg=="
 		},
 		"node_modules/@graphql-typed-document-node/core": {
 			"version": "3.1.1",
@@ -692,9 +1393,9 @@
 			}
 		},
 		"node_modules/@grpc/grpc-js": {
-			"version": "1.6.12",
-			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz",
-			"integrity": "sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==",
+			"version": "1.7.3",
+			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz",
+			"integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==",
 			"dependencies": {
 				"@grpc/proto-loader": "^0.7.0",
 				"@types/node": ">=12.12.47"
@@ -704,9 +1405,9 @@
 			}
 		},
 		"node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
-			"version": "0.7.2",
-			"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.2.tgz",
-			"integrity": "sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA==",
+			"version": "0.7.4",
+			"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz",
+			"integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==",
 			"dependencies": {
 				"@types/long": "^4.0.1",
 				"lodash.camelcase": "^4.3.0",
@@ -722,9 +1423,9 @@
 			}
 		},
 		"node_modules/@grpc/grpc-js/node_modules/protobufjs": {
-			"version": "7.1.0",
-			"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.0.tgz",
-			"integrity": "sha512-rCuxKlh0UQKSMjrpIcTLbR5TtGQ52cgs1a5nUoPBAKOccdPblN67BJtjrbtudUJK6HmBvUdsmymyYOzO7lxZEA==",
+			"version": "7.1.2",
+			"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz",
+			"integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==",
 			"hasInstallScript": true,
 			"dependencies": {
 				"@protobufjs/aspromise": "^1.1.2",
@@ -745,9 +1446,9 @@
 			}
 		},
 		"node_modules/@grpc/grpc-js/node_modules/protobufjs/node_modules/long": {
-			"version": "5.2.0",
-			"resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz",
-			"integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w=="
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz",
+			"integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A=="
 		},
 		"node_modules/@grpc/proto-loader": {
 			"version": "0.6.13",
@@ -859,6 +1560,171 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/@metamask/detect-provider": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz",
+			"integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==",
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@moralisweb3/api-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/api-utils/-/api-utils-2.11.1.tgz",
+			"integrity": "sha512-79p6OG/fT5DY6rlkhnyUf2bSFscKOt4Y9KWF0QpwpDbfBRgjBE3RO+KhoWeV/r3auWQegpXjSHxA3C7wpeAihA==",
+			"dependencies": {
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"axios": "^1.2.1"
+			}
+		},
+		"node_modules/@moralisweb3/auth": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/auth/-/auth-2.11.1.tgz",
+			"integrity": "sha512-me6c4mFAiW246fAU8XrWGeaQWtsfB4g+WEc/Dnbu0+rFF0n52Fl73jI0YXlrFZUwZ/oj4gD9IhNg7DNc1S2R9w==",
+			"dependencies": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-auth-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1"
+			}
+		},
+		"node_modules/@moralisweb3/client-firebase-auth-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/client-firebase-auth-utils/-/client-firebase-auth-utils-2.11.1.tgz",
+			"integrity": "sha512-61UHyxGRtnEa8UqT/gPX0krR/ADq1YZe2lRlAr7plOysgEVYg1dhnUJESE6llh4OSJLXXTIunrbA2LbG6LljAg==",
+			"dependencies": {
+				"firebase": "^9.15.0"
+			}
+		},
+		"node_modules/@moralisweb3/client-firebase-evm-auth": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/client-firebase-evm-auth/-/client-firebase-evm-auth-2.11.1.tgz",
+			"integrity": "sha512-cHJyGW9nbPVHS4U3KztF/vERg21ajbrKP7WyNAno3+ZCKiHWv+9ivnyRBE8hL0euodL5JFu/3M+BqRQMqKE5Nw==",
+			"dependencies": {
+				"@ethersproject/providers": "^5.7.1",
+				"@metamask/detect-provider": "^1.2.0",
+				"@moralisweb3/client-firebase-auth-utils": "^2.11.1",
+				"firebase": "^9.15.0"
+			}
+		},
+		"node_modules/@moralisweb3/common-auth-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-auth-utils/-/common-auth-utils-2.11.1.tgz",
+			"integrity": "sha512-ZqRJK59OOvsdtHkg96wZik1eT1QVxC2J1oI96NZcsdHv3vz5oGrffssqM9BQfOQ6H8copztJbDADlV6O1Htk7A==",
+			"dependencies": {
+				"@ethersproject/abi": "^5.7.0",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6"
+			}
+		},
+		"node_modules/@moralisweb3/common-core": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-core/-/common-core-2.11.1.tgz",
+			"integrity": "sha512-xDIGfd+XU7UAl54ylJ9cJr2ZhYFoUWiMykt+IqYbJfxC17jZ6S1ZM2+1aHS1ENyIk10ARNIKPJWUlN30eIqWJA==",
+			"dependencies": {
+				"axios": "^1.2.1",
+				"eventemitter3": "^4.0.7",
+				"typed-emitter": "^2.1.0"
+			}
+		},
+		"node_modules/@moralisweb3/common-evm-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-evm-utils/-/common-evm-utils-2.11.1.tgz",
+			"integrity": "sha512-gFzRDbwgR6y8K7JwQaaI8QDopvtMdr3uysl/SUGejJGVMYuo/RTwyfPdiNpsa9t93a1kdsI3CdsDnYDp488R0g==",
+			"dependencies": {
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bytes": "^5.6.0",
+				"@ethersproject/transactions": "^5.6.0",
+				"@moralisweb3/common-core": "^2.11.1"
+			}
+		},
+		"node_modules/@moralisweb3/common-sol-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-sol-utils/-/common-sol-utils-2.11.1.tgz",
+			"integrity": "sha512-UaKcFEkq9Ld+B0puUK434+W8Tsw2+Rhiac22IwltFd1wIdpImKWJoQqJz3owm5JmhPEpBsYj4snDQyQK/0363w==",
+			"dependencies": {
+				"@moralisweb3/common-core": "^2.11.1",
+				"@solana/web3.js": "^1.56.2"
+			}
+		},
+		"node_modules/@moralisweb3/common-streams-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-streams-utils/-/common-streams-utils-2.11.1.tgz",
+			"integrity": "sha512-3tnATXWrX7pw7duRYNIXOpXkW9mWPOae09Yn16VIsFIA3XS/XLbvsScWZ1ZrtMveHkx5icvbwokvuzGz7hXv6Q==",
+			"dependencies": {
+				"@ethersproject/abi": "^5.7.0",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6"
+			}
+		},
+		"node_modules/@moralisweb3/evm-api": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/evm-api/-/evm-api-2.11.1.tgz",
+			"integrity": "sha512-mLiwlKX5U9wMcKIQ8+yX4DmsFS2Gjv4sjh/o4dx04luhGbR+tLaiLcuuxsjOOKnHAvMOu82pwppzwEWuQBr0lg==",
+			"dependencies": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1"
+			}
+		},
+		"node_modules/@moralisweb3/next": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/next/-/next-2.11.1.tgz",
+			"integrity": "sha512-kY/EEiu3axsCwXmFprF5yxCmz1hQjhlku7vE6SRNR7dif29Df4X9M1tZZawaB0LMCFw1MxKdcCx9NHgWcrTKWg==",
+			"dependencies": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/auth": "^2.11.1",
+				"@moralisweb3/common-auth-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/evm-api": "^2.11.1",
+				"@moralisweb3/sol-api": "^2.11.1",
+				"axios": "^1.2.1",
+				"moralis": "^2.11.1",
+				"swr": "^1.3.0"
+			},
+			"peerDependencies": {
+				"next": ">=12.2.5",
+				"next-auth": ">=4.16.4",
+				"react": ">=17.0.0",
+				"react-dom": ">=17.0.0"
+			}
+		},
+		"node_modules/@moralisweb3/sol-api": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/sol-api/-/sol-api-2.11.1.tgz",
+			"integrity": "sha512-n6lH4ZhHQJyGZjEvlaf//4sRpMvofNq3Z8O2ldADgm5j5Jay3P7uCG3xANNfaO01rUCl6O9p2o0BI52yvYVsPQ==",
+			"dependencies": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1"
+			}
+		},
+		"node_modules/@moralisweb3/streams": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/streams/-/streams-2.11.1.tgz",
+			"integrity": "sha512-Y2ElTE7s5jAN8+/PR8Th/vvpqWo9tnqF00NJmhU+LvUSsw201PZXeRMwYc//FfNliIYN34C9Ac5vQYVk12vW5w==",
+			"dependencies": {
+				"@ethersproject/abi": "^5.7.0",
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-streams-utils": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6",
+				"ethereumjs-util": "^7.1.0",
+				"ethers": "^5.7.1",
+				"web3-eth-abi": "^1.8.0"
+			}
+		},
+		"node_modules/@moralisweb3/streams-typings": {
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/streams-typings/-/streams-typings-1.0.6.tgz",
+			"integrity": "sha512-+wRVMa795u1EEGovCUKiUnORuDrLDEDW017ElCFtv3hU5xuiFadxBINHqjfwPLY014Hsv3ttlmmcHmAtY2wAIw=="
+		},
 		"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
 			"version": "2.1.2",
 			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.1.2.tgz",
@@ -907,28 +1773,275 @@
 				"linux"
 			]
 		},
-		"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.1.2.tgz",
-			"integrity": "sha512-RjRoRxg7Q3kPAdUSC5EUUPlwfMkIVhmaRTIe+cqHbKrGZ4M6TyCA/b5qMaukQ/1CHWrqYY2FbKOAU8Hg0pQFzg==",
+		"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.1.2.tgz",
+			"integrity": "sha512-RjRoRxg7Q3kPAdUSC5EUUPlwfMkIVhmaRTIe+cqHbKrGZ4M6TyCA/b5qMaukQ/1CHWrqYY2FbKOAU8Hg0pQFzg==",
+			"cpu": [
+				"x64"
+			],
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.1.2.tgz",
+			"integrity": "sha512-rIZVR48zA8hGkHIK7ED6+ZiXsjRCcAVBJbm8o89OKAMTmEAQ2QvoOxoiu3w2isAaWwzgtQIOFIqHwvZDyLKCvw==",
+			"cpu": [
+				"x64"
+			],
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@next/env": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.4.tgz",
+			"integrity": "sha512-x7ydhMpi9/xX7yVK+Fw33OuwwQWVZUFRxenK3z89fmPzQZyUk35Ynb+b7JkrhfRhDIFFvvqpzVSXeseSlBAw7A==",
+			"peer": true
+		},
+		"node_modules/@next/swc-android-arm-eabi": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.4.tgz",
+			"integrity": "sha512-5PAchzFst3In6Ml+9APvBj89H29lcPXcUqEYBVv09fWK/V4IuViKc2qOqM9pyPyw7KsqaZPmuqaG595E6jdZLA==",
+			"cpu": [
+				"arm"
+			],
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-android-arm64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.4.tgz",
+			"integrity": "sha512-LCLjjRhsQ5fR9ExzR2fqxuyJe/D4Ct/YkdonVfJfqOfkEpFwUTQDOVo5GrQec4LZDk3zY+o6vZYjXbB0nD9VLA==",
+			"cpu": [
+				"arm64"
+			],
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-darwin-arm64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.4.tgz",
+			"integrity": "sha512-LSc/tF1FQ1y1SwKiCdGg8IIl7+Csk6nuLcLIyQXs24UNYjXg5+7vUQXqE8y66v/Dq8qFDC9rM61QhpM9ZDftbg==",
+			"cpu": [
+				"arm64"
+			],
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-darwin-x64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.4.tgz",
+			"integrity": "sha512-WoApDo8xfafrNc9+Mz5MwGFKUwbDHsGqLleTGZ8upegwVqDyHsYzqJQudf+loqhV58oGTOqP1eWaHn2J7dijXA==",
+			"cpu": [
+				"x64"
+			],
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-freebsd-x64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.4.tgz",
+			"integrity": "sha512-fqNyeT8G4guN8AHPIoBRhGY2GJg89FyWpuwX4o0Y3vUy/84IGZpNst3paCzaYkQSqQE/AuCpkB7hKxkN7ittXw==",
+			"cpu": [
+				"x64"
+			],
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-linux-arm-gnueabihf": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.4.tgz",
+			"integrity": "sha512-MEfm8OC1YR9/tYHUzlQsxcSmiuf8XdO7bqh5VtG4pilScjc5I5t+tQgIDgoDGePfh5W99W23hb3s6oCFrt99rw==",
+			"cpu": [
+				"arm"
+			],
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-linux-arm64-gnu": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.4.tgz",
+			"integrity": "sha512-2wgth/KsuODzW/E7jsRoWdhKmE5oZzXcBPvf9RW+ZpBNvYQkEDlzfLA7n8DtxTU8I4oMas0mdEPdCWXrSNnVZw==",
+			"cpu": [
+				"arm64"
+			],
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-linux-arm64-musl": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.4.tgz",
+			"integrity": "sha512-GdWhCRljsT7rNEElEsdu4RRppd+XaQOX1IJslsh/+HU6LsJGUE8tXpa68yJjCsHZHifkbdZNeCr5SYdsN6CbAA==",
+			"cpu": [
+				"arm64"
+			],
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-linux-x64-gnu": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.4.tgz",
+			"integrity": "sha512-Rsk/ojwYqMskN2eo5hUSVe7UuMV/aSjmrmJ0BCFGFPfBY9sPgmYj/oXlDDN0y5lJD9acPuiBjknLWgnOnx5JIA==",
+			"cpu": [
+				"x64"
+			],
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-linux-x64-musl": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.4.tgz",
+			"integrity": "sha512-gKSVPozedA2gpA+vggYnAqpDuzWFed2oxFeXxHw0aW2ALdAZswAinn1ZwXEQ5fHnVguxjZhH0+2nBxpMdF8p5Q==",
+			"cpu": [
+				"x64"
+			],
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-win32-arm64-msvc": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.4.tgz",
+			"integrity": "sha512-+kAXIIVb7Q4LCKmi7dn9qVlG1XUf3Chgj5Rwl0rAP4WBV2TnJIgsOEC24G1Mm3jjif+qXm7SJS9YZ9Yg3Y8sSQ==",
+			"cpu": [
+				"arm64"
+			],
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@next/swc-win32-ia32-msvc": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.4.tgz",
+			"integrity": "sha512-EsfzAFBVaw1zg1FzlLMgRaTX/DKY+EnAvJ6mCIJMGeSOPIj4Oy6xF2yEQ3VaRkwFpAafHJH6JNB/CGrdKFCMXw==",
 			"cpu": [
-				"x64"
+				"ia32"
 			],
 			"optional": true,
 			"os": [
-				"linux"
-			]
+				"win32"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
 		},
-		"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.1.2.tgz",
-			"integrity": "sha512-rIZVR48zA8hGkHIK7ED6+ZiXsjRCcAVBJbm8o89OKAMTmEAQ2QvoOxoiu3w2isAaWwzgtQIOFIqHwvZDyLKCvw==",
+		"node_modules/@next/swc-win32-x64-msvc": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.4.tgz",
+			"integrity": "sha512-bygNjmnq+F9NqJXh7OfhJgqu6LGU29GNKQYVyZkxY/h5K0WWUvAE/VL+TdyMwbvQr9KByx5XLwORwetLxXCo4g==",
 			"cpu": [
 				"x64"
 			],
 			"optional": true,
 			"os": [
 				"win32"
+			],
+			"peer": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@noble/ed25519": {
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz",
+			"integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://paulmillr.com/funding/"
+				}
+			]
+		},
+		"node_modules/@noble/hashes": {
+			"version": "1.1.5",
+			"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz",
+			"integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://paulmillr.com/funding/"
+				}
+			]
+		},
+		"node_modules/@noble/secp256k1": {
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
+			"integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://paulmillr.com/funding/"
+				}
 			]
 		},
 		"node_modules/@nodelib/fs.scandir": {
@@ -966,6 +2079,14 @@
 				"node": ">= 8"
 			}
 		},
+		"node_modules/@panva/hkdf": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.2.tgz",
+			"integrity": "sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==",
+			"funding": {
+				"url": "https://github.com/sponsors/panva"
+			}
+		},
 		"node_modules/@polka/url": {
 			"version": "1.0.0-next.21",
 			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
@@ -1148,6 +2269,108 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/@solana/buffer-layout": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz",
+			"integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==",
+			"dependencies": {
+				"buffer": "~6.0.3"
+			},
+			"engines": {
+				"node": ">=5.10"
+			}
+		},
+		"node_modules/@solana/buffer-layout/node_modules/buffer": {
+			"version": "6.0.3",
+			"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+			"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			],
+			"dependencies": {
+				"base64-js": "^1.3.1",
+				"ieee754": "^1.2.1"
+			}
+		},
+		"node_modules/@solana/web3.js": {
+			"version": "1.73.0",
+			"resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz",
+			"integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==",
+			"dependencies": {
+				"@babel/runtime": "^7.12.5",
+				"@noble/ed25519": "^1.7.0",
+				"@noble/hashes": "^1.1.2",
+				"@noble/secp256k1": "^1.6.3",
+				"@solana/buffer-layout": "^4.0.0",
+				"agentkeepalive": "^4.2.1",
+				"bigint-buffer": "^1.1.5",
+				"bn.js": "^5.0.0",
+				"borsh": "^0.7.0",
+				"bs58": "^4.0.1",
+				"buffer": "6.0.1",
+				"fast-stable-stringify": "^1.0.0",
+				"jayson": "^3.4.4",
+				"node-fetch": "2",
+				"rpc-websockets": "^7.5.0",
+				"superstruct": "^0.14.2"
+			},
+			"engines": {
+				"node": ">=12.20.0"
+			}
+		},
+		"node_modules/@solana/web3.js/node_modules/buffer": {
+			"version": "6.0.1",
+			"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz",
+			"integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			],
+			"dependencies": {
+				"base64-js": "^1.3.1",
+				"ieee754": "^1.2.1"
+			}
+		},
+		"node_modules/@solana/web3.js/node_modules/node-fetch": {
+			"version": "2.6.8",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz",
+			"integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==",
+			"dependencies": {
+				"whatwg-url": "^5.0.0"
+			},
+			"engines": {
+				"node": "4.x || >=6.0.0"
+			},
+			"peerDependencies": {
+				"encoding": "^0.1.0"
+			},
+			"peerDependenciesMeta": {
+				"encoding": {
+					"optional": true
+				}
+			}
+		},
 		"node_modules/@sveltejs/adapter-node": {
 			"version": "1.0.0-next.88",
 			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.88.tgz",
@@ -1215,6 +2438,23 @@
 				}
 			}
 		},
+		"node_modules/@swc/helpers": {
+			"version": "0.4.14",
+			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
+			"integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
+			"peer": true,
+			"dependencies": {
+				"tslib": "^2.4.0"
+			}
+		},
+		"node_modules/@types/bn.js": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz",
+			"integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==",
+			"dependencies": {
+				"@types/node": "*"
+			}
+		},
 		"node_modules/@types/bull": {
 			"version": "3.15.9",
 			"resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.15.9.tgz",
@@ -1225,6 +2465,14 @@
 				"@types/redis": "^2.8.0"
 			}
 		},
+		"node_modules/@types/connect": {
+			"version": "3.4.35",
+			"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
+			"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+			"dependencies": {
+				"@types/node": "*"
+			}
+		},
 		"node_modules/@types/glob": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
@@ -1266,6 +2514,14 @@
 			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.16.tgz",
 			"integrity": "sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg=="
 		},
+		"node_modules/@types/pbkdf2": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
+			"integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
+			"dependencies": {
+				"@types/node": "*"
+			}
+		},
 		"node_modules/@types/pug": {
 			"version": "2.0.6",
 			"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
@@ -1304,12 +2560,28 @@
 				"@types/node": "*"
 			}
 		},
+		"node_modules/@types/secp256k1": {
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz",
+			"integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==",
+			"dependencies": {
+				"@types/node": "*"
+			}
+		},
 		"node_modules/@types/svgo": {
 			"version": "1.3.6",
 			"resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz",
 			"integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==",
 			"dev": true
 		},
+		"node_modules/@types/ws": {
+			"version": "7.4.7",
+			"resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
+			"integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
+			"dependencies": {
+				"@types/node": "*"
+			}
+		},
 		"node_modules/@typescript-eslint/eslint-plugin": {
 			"version": "5.36.2",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz",
@@ -1528,6 +2800,32 @@
 				"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
 			}
 		},
+		"node_modules/aes-js": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+			"integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
+		},
+		"node_modules/agentkeepalive": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
+			"integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
+			"dependencies": {
+				"debug": "^4.1.0",
+				"depd": "^1.1.2",
+				"humanize-ms": "^1.2.1"
+			},
+			"engines": {
+				"node": ">= 8.0.0"
+			}
+		},
+		"node_modules/agentkeepalive/node_modules/depd": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+			"integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+			"engines": {
+				"node": ">= 0.6"
+			}
+		},
 		"node_modules/ajv": {
 			"version": "6.12.6",
 			"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -1697,16 +2995,46 @@
 			"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
 			"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
 		},
+		"node_modules/axios": {
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz",
+			"integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==",
+			"dependencies": {
+				"follow-redirects": "^1.15.0",
+				"form-data": "^4.0.0",
+				"proxy-from-env": "^1.1.0"
+			}
+		},
+		"node_modules/axios/node_modules/form-data": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+			"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+			"dependencies": {
+				"asynckit": "^0.4.0",
+				"combined-stream": "^1.0.8",
+				"mime-types": "^2.1.12"
+			},
+			"engines": {
+				"node": ">= 6"
+			}
+		},
 		"node_modules/balanced-match": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
 		},
+		"node_modules/base-x": {
+			"version": "3.0.9",
+			"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+			"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+			"dependencies": {
+				"safe-buffer": "^5.0.1"
+			}
+		},
 		"node_modules/base64-js": {
 			"version": "1.5.1",
 			"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
 			"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-			"dev": true,
 			"funding": [
 				{
 					"type": "github",
@@ -1730,6 +3058,23 @@
 				"tweetnacl": "^0.14.3"
 			}
 		},
+		"node_modules/bech32": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+			"integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
+		},
+		"node_modules/bigint-buffer": {
+			"version": "1.1.5",
+			"resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz",
+			"integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==",
+			"hasInstallScript": true,
+			"dependencies": {
+				"bindings": "^1.3.0"
+			},
+			"engines": {
+				"node": ">= 10.0.0"
+			}
+		},
 		"node_modules/bin-build": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
@@ -2335,6 +3680,14 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/bindings": {
+			"version": "1.5.0",
+			"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+			"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+			"dependencies": {
+				"file-uri-to-path": "1.0.0"
+			}
+		},
 		"node_modules/bl": {
 			"version": "1.2.3",
 			"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
@@ -2345,6 +3698,16 @@
 				"safe-buffer": "^5.1.1"
 			}
 		},
+		"node_modules/blakejs": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+			"integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
+		},
+		"node_modules/bn.js": {
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+			"integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+		},
 		"node_modules/body-parser": {
 			"version": "1.20.0",
 			"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
@@ -2395,10 +3758,21 @@
 			"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
 			"dev": true
 		},
+		"node_modules/borsh": {
+			"version": "0.7.0",
+			"resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz",
+			"integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==",
+			"dependencies": {
+				"bn.js": "^5.2.0",
+				"bs58": "^4.0.0",
+				"text-encoding-utf-8": "^1.0.2"
+			}
+		},
 		"node_modules/brace-expansion": {
 			"version": "1.1.11",
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 			"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+			"dev": true,
 			"dependencies": {
 				"balanced-match": "^1.0.0",
 				"concat-map": "0.0.1"
@@ -2416,6 +3790,42 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/brorand": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+			"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+		},
+		"node_modules/browserify-aes": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+			"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+			"dependencies": {
+				"buffer-xor": "^1.0.3",
+				"cipher-base": "^1.0.0",
+				"create-hash": "^1.1.0",
+				"evp_bytestokey": "^1.0.3",
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.0.1"
+			}
+		},
+		"node_modules/bs58": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+			"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+			"dependencies": {
+				"base-x": "^3.0.2"
+			}
+		},
+		"node_modules/bs58check": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+			"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+			"dependencies": {
+				"bs58": "^4.0.0",
+				"create-hash": "^1.1.0",
+				"safe-buffer": "^5.1.2"
+			}
+		},
 		"node_modules/buffer": {
 			"version": "5.7.1",
 			"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -2471,6 +3881,24 @@
 			"integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
 			"dev": true
 		},
+		"node_modules/buffer-xor": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+			"integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
+		},
+		"node_modules/bufferutil": {
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
+			"integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
+			"hasInstallScript": true,
+			"optional": true,
+			"dependencies": {
+				"node-gyp-build": "^4.3.0"
+			},
+			"engines": {
+				"node": ">=6.14.2"
+			}
+		},
 		"node_modules/bull": {
 			"version": "4.9.0",
 			"resolved": "https://registry.npmjs.org/bull/-/bull-4.9.0.tgz",
@@ -2645,6 +4073,22 @@
 				"node": ">=6"
 			}
 		},
+		"node_modules/caniuse-lite": {
+			"version": "1.0.30001446",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz",
+			"integrity": "sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==",
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+				}
+			],
+			"peer": true
+		},
 		"node_modules/caseless": {
 			"version": "0.12.0",
 			"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -2720,6 +4164,21 @@
 				"node": ">= 6"
 			}
 		},
+		"node_modules/cipher-base": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+			"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+			"dependencies": {
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.0.1"
+			}
+		},
+		"node_modules/client-only": {
+			"version": "0.0.1",
+			"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+			"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+			"peer": true
+		},
 		"node_modules/cliui": {
 			"version": "7.0.4",
 			"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -2871,8 +4330,7 @@
 		"node_modules/commander": {
 			"version": "2.20.3",
 			"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-			"dev": true
+			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
 		},
 		"node_modules/compressible": {
 			"version": "2.0.18",
@@ -2918,7 +4376,8 @@
 		"node_modules/concat-map": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+			"dev": true
 		},
 		"node_modules/config-chain": {
 			"version": "1.1.13",
@@ -2984,7 +4443,33 @@
 		"node_modules/core-util-is": {
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
-			"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+			"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+			"dev": true
+		},
+		"node_modules/create-hash": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+			"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+			"dependencies": {
+				"cipher-base": "^1.0.1",
+				"inherits": "^2.0.1",
+				"md5.js": "^1.3.4",
+				"ripemd160": "^2.0.1",
+				"sha.js": "^2.4.0"
+			}
+		},
+		"node_modules/create-hmac": {
+			"version": "1.1.7",
+			"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+			"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+			"dependencies": {
+				"cipher-base": "^1.0.3",
+				"create-hash": "^1.1.0",
+				"inherits": "^2.0.1",
+				"ripemd160": "^2.0.0",
+				"safe-buffer": "^5.0.1",
+				"sha.js": "^2.4.8"
+			}
 		},
 		"node_modules/cron-parser": {
 			"version": "4.6.0",
@@ -3420,7 +4905,18 @@
 				"node": ">= 0.4"
 			},
 			"funding": {
-				"url": "https://github.com/sponsors/ljharb"
+				"url": "https://github.com/sponsors/ljharb"
+			}
+		},
+		"node_modules/delay": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
+			"integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
 		"node_modules/delayed-stream": {
@@ -3614,6 +5110,25 @@
 			"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
 			"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
 		},
+		"node_modules/elliptic": {
+			"version": "6.5.4",
+			"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+			"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+			"dependencies": {
+				"bn.js": "^4.11.9",
+				"brorand": "^1.1.0",
+				"hash.js": "^1.0.0",
+				"hmac-drbg": "^1.0.1",
+				"inherits": "^2.0.4",
+				"minimalistic-assert": "^1.0.1",
+				"minimalistic-crypto-utils": "^1.0.1"
+			}
+		},
+		"node_modules/elliptic/node_modules/bn.js": {
+			"version": "4.12.0",
+			"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+			"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+		},
 		"node_modules/emoji-regex": {
 			"version": "8.0.0",
 			"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -3717,6 +5232,19 @@
 			"integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
 			"dev": true
 		},
+		"node_modules/es6-promisify": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+			"integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
+			"dependencies": {
+				"es6-promise": "^4.0.3"
+			}
+		},
+		"node_modules/es6-promisify/node_modules/es6-promise": {
+			"version": "4.2.8",
+			"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+			"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+		},
 		"node_modules/esbuild": {
 			"version": "0.14.54",
 			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz",
@@ -4351,6 +5879,130 @@
 				"node": ">= 0.6"
 			}
 		},
+		"node_modules/ethereum-bloom-filters": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz",
+			"integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==",
+			"dependencies": {
+				"js-sha3": "^0.8.0"
+			}
+		},
+		"node_modules/ethereum-cryptography": {
+			"version": "0.1.3",
+			"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+			"integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+			"dependencies": {
+				"@types/pbkdf2": "^3.0.0",
+				"@types/secp256k1": "^4.0.1",
+				"blakejs": "^1.1.0",
+				"browserify-aes": "^1.2.0",
+				"bs58check": "^2.1.2",
+				"create-hash": "^1.2.0",
+				"create-hmac": "^1.1.7",
+				"hash.js": "^1.1.7",
+				"keccak": "^3.0.0",
+				"pbkdf2": "^3.0.17",
+				"randombytes": "^2.1.0",
+				"safe-buffer": "^5.1.2",
+				"scrypt-js": "^3.0.0",
+				"secp256k1": "^4.0.1",
+				"setimmediate": "^1.0.5"
+			}
+		},
+		"node_modules/ethereumjs-util": {
+			"version": "7.1.5",
+			"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+			"integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
+			"dependencies": {
+				"@types/bn.js": "^5.1.0",
+				"bn.js": "^5.1.2",
+				"create-hash": "^1.1.2",
+				"ethereum-cryptography": "^0.1.3",
+				"rlp": "^2.2.4"
+			},
+			"engines": {
+				"node": ">=10.0.0"
+			}
+		},
+		"node_modules/ethers": {
+			"version": "5.7.2",
+			"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+			"integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+				},
+				{
+					"type": "individual",
+					"url": "https://www.buymeacoffee.com/ricmoo"
+				}
+			],
+			"dependencies": {
+				"@ethersproject/abi": "5.7.0",
+				"@ethersproject/abstract-provider": "5.7.0",
+				"@ethersproject/abstract-signer": "5.7.0",
+				"@ethersproject/address": "5.7.0",
+				"@ethersproject/base64": "5.7.0",
+				"@ethersproject/basex": "5.7.0",
+				"@ethersproject/bignumber": "5.7.0",
+				"@ethersproject/bytes": "5.7.0",
+				"@ethersproject/constants": "5.7.0",
+				"@ethersproject/contracts": "5.7.0",
+				"@ethersproject/hash": "5.7.0",
+				"@ethersproject/hdnode": "5.7.0",
+				"@ethersproject/json-wallets": "5.7.0",
+				"@ethersproject/keccak256": "5.7.0",
+				"@ethersproject/logger": "5.7.0",
+				"@ethersproject/networks": "5.7.1",
+				"@ethersproject/pbkdf2": "5.7.0",
+				"@ethersproject/properties": "5.7.0",
+				"@ethersproject/providers": "5.7.2",
+				"@ethersproject/random": "5.7.0",
+				"@ethersproject/rlp": "5.7.0",
+				"@ethersproject/sha2": "5.7.0",
+				"@ethersproject/signing-key": "5.7.0",
+				"@ethersproject/solidity": "5.7.0",
+				"@ethersproject/strings": "5.7.0",
+				"@ethersproject/transactions": "5.7.0",
+				"@ethersproject/units": "5.7.0",
+				"@ethersproject/wallet": "5.7.0",
+				"@ethersproject/web": "5.7.1",
+				"@ethersproject/wordlists": "5.7.0"
+			}
+		},
+		"node_modules/ethjs-unit": {
+			"version": "0.1.6",
+			"resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+			"integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
+			"dependencies": {
+				"bn.js": "4.11.6",
+				"number-to-bn": "1.7.0"
+			},
+			"engines": {
+				"node": ">=6.5.0",
+				"npm": ">=3"
+			}
+		},
+		"node_modules/ethjs-unit/node_modules/bn.js": {
+			"version": "4.11.6",
+			"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+			"integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
+		},
+		"node_modules/eventemitter3": {
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+			"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+		},
+		"node_modules/evp_bytestokey": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+			"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+			"dependencies": {
+				"md5.js": "^1.3.4",
+				"safe-buffer": "^5.1.1"
+			}
+		},
 		"node_modules/execa": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
@@ -4522,6 +6174,14 @@
 				"node >=0.6.0"
 			]
 		},
+		"node_modules/eyes": {
+			"version": "0.1.8",
+			"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+			"integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==",
+			"engines": {
+				"node": "> 0.1.90"
+			}
+		},
 		"node_modules/fast-deep-equal": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -4566,6 +6226,11 @@
 			"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
 			"dev": true
 		},
+		"node_modules/fast-stable-stringify": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz",
+			"integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="
+		},
 		"node_modules/fastq": {
 			"version": "1.13.0",
 			"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
@@ -4639,6 +6304,11 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/file-uri-to-path": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+			"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+		},
 		"node_modules/filename-reserved-regex": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
@@ -4733,36 +6403,36 @@
 			}
 		},
 		"node_modules/firebase": {
-			"version": "9.9.4",
-			"resolved": "https://registry.npmjs.org/firebase/-/firebase-9.9.4.tgz",
-			"integrity": "sha512-XRfCw54nNGYUYNYi5PLJ6rcERN2M+aS32f6caYEx9GhCp9ndgHHzBL9BpPohUpEpKPtHA75EqYNf8kuR0HQndA==",
-			"dependencies": {
-				"@firebase/analytics": "0.8.0",
-				"@firebase/analytics-compat": "0.1.13",
-				"@firebase/app": "0.7.32",
-				"@firebase/app-check": "0.5.12",
-				"@firebase/app-check-compat": "0.2.12",
-				"@firebase/app-compat": "0.1.33",
-				"@firebase/app-types": "0.7.0",
-				"@firebase/auth": "0.20.6",
-				"@firebase/auth-compat": "0.2.19",
-				"@firebase/database": "0.13.6",
-				"@firebase/database-compat": "0.2.6",
-				"@firebase/firestore": "3.4.15",
-				"@firebase/firestore-compat": "0.1.24",
-				"@firebase/functions": "0.8.4",
-				"@firebase/functions-compat": "0.2.4",
-				"@firebase/installations": "0.5.12",
-				"@firebase/installations-compat": "0.1.12",
-				"@firebase/messaging": "0.9.16",
-				"@firebase/messaging-compat": "0.1.16",
-				"@firebase/performance": "0.5.12",
-				"@firebase/performance-compat": "0.1.12",
-				"@firebase/remote-config": "0.3.11",
-				"@firebase/remote-config-compat": "0.1.12",
-				"@firebase/storage": "0.9.9",
-				"@firebase/storage-compat": "0.1.17",
-				"@firebase/util": "1.6.3"
+			"version": "9.16.0",
+			"resolved": "https://registry.npmjs.org/firebase/-/firebase-9.16.0.tgz",
+			"integrity": "sha512-nNLpDwJvfP3crRc6AjnHH46TAkFzk8zimNVMJfYRCwAf5amOSGyU8duuc3IsJF6dQGiYLSfzfr2tMCsQa+rhKQ==",
+			"dependencies": {
+				"@firebase/analytics": "0.9.1",
+				"@firebase/analytics-compat": "0.2.1",
+				"@firebase/app": "0.9.1",
+				"@firebase/app-check": "0.6.1",
+				"@firebase/app-check-compat": "0.3.1",
+				"@firebase/app-compat": "0.2.1",
+				"@firebase/app-types": "0.9.0",
+				"@firebase/auth": "0.21.1",
+				"@firebase/auth-compat": "0.3.1",
+				"@firebase/database": "0.14.1",
+				"@firebase/database-compat": "0.3.1",
+				"@firebase/firestore": "3.8.1",
+				"@firebase/firestore-compat": "0.3.1",
+				"@firebase/functions": "0.9.1",
+				"@firebase/functions-compat": "0.3.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/installations-compat": "0.2.1",
+				"@firebase/messaging": "0.12.1",
+				"@firebase/messaging-compat": "0.2.1",
+				"@firebase/performance": "0.6.1",
+				"@firebase/performance-compat": "0.2.1",
+				"@firebase/remote-config": "0.4.1",
+				"@firebase/remote-config-compat": "0.2.1",
+				"@firebase/storage": "0.10.1",
+				"@firebase/storage-compat": "0.2.1",
+				"@firebase/util": "1.9.0"
 			}
 		},
 		"node_modules/flat-cache": {
@@ -4784,6 +6454,25 @@
 			"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
 			"dev": true
 		},
+		"node_modules/follow-redirects": {
+			"version": "1.15.2",
+			"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+			"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+			"funding": [
+				{
+					"type": "individual",
+					"url": "https://github.com/sponsors/RubenVerborgh"
+				}
+			],
+			"engines": {
+				"node": ">=4.0"
+			},
+			"peerDependenciesMeta": {
+				"debug": {
+					"optional": true
+				}
+			}
+		},
 		"node_modules/forever-agent": {
 			"version": "0.6.1",
 			"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -5025,6 +6714,7 @@
 			"version": "7.2.3",
 			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
 			"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+			"dev": true,
 			"dependencies": {
 				"fs.realpath": "^1.0.0",
 				"inflight": "^1.0.4",
@@ -5303,11 +6993,75 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
+		"node_modules/hash-base": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+			"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+			"dependencies": {
+				"inherits": "^2.0.4",
+				"readable-stream": "^3.6.0",
+				"safe-buffer": "^5.2.0"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/hash-base/node_modules/readable-stream": {
+			"version": "3.6.0",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+			"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+			"dependencies": {
+				"inherits": "^2.0.3",
+				"string_decoder": "^1.1.1",
+				"util-deprecate": "^1.0.1"
+			},
+			"engines": {
+				"node": ">= 6"
+			}
+		},
+		"node_modules/hash-base/node_modules/safe-buffer": {
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+			"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			]
+		},
+		"node_modules/hash.js": {
+			"version": "1.1.7",
+			"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+			"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+			"dependencies": {
+				"inherits": "^2.0.3",
+				"minimalistic-assert": "^1.0.1"
+			}
+		},
 		"node_modules/heroku-ssl-redirect": {
 			"version": "0.1.1",
 			"resolved": "https://registry.npmjs.org/heroku-ssl-redirect/-/heroku-ssl-redirect-0.1.1.tgz",
 			"integrity": "sha512-kL/DvLR2J53iB3TXasQlo5JwF/j2L2zkala6Ddk9o6JwIPeDvbTGT9Aty8WElxcF389ObICCeyf2m7RKpCg5Bg=="
 		},
+		"node_modules/hmac-drbg": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+			"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+			"dependencies": {
+				"hash.js": "^1.0.3",
+				"minimalistic-assert": "^1.0.0",
+				"minimalistic-crypto-utils": "^1.0.1"
+			}
+		},
 		"node_modules/http-cache-semantics": {
 			"version": "3.8.1",
 			"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
@@ -5357,6 +7111,14 @@
 				"node": ">=8.12.0"
 			}
 		},
+		"node_modules/humanize-ms": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+			"integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+			"dependencies": {
+				"ms": "^2.0.0"
+			}
+		},
 		"node_modules/iconv-lite": {
 			"version": "0.4.24",
 			"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -5377,7 +7139,6 @@
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
 			"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-			"dev": true,
 			"funding": [
 				{
 					"type": "github",
@@ -5455,11 +7216,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/immediate": {
-			"version": "3.0.6",
-			"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
-			"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
-		},
 		"node_modules/import-fresh": {
 			"version": "3.3.0",
 			"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -5690,6 +7446,15 @@
 				"node": ">=0.10.0"
 			}
 		},
+		"node_modules/is-hex-prefixed": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+			"integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
+			"engines": {
+				"node": ">=6.5.0",
+				"npm": ">=3"
+			}
+		},
 		"node_modules/is-natural-number": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
@@ -5858,7 +7623,8 @@
 		"node_modules/isarray": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-			"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+			"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+			"dev": true
 		},
 		"node_modules/isexe": {
 			"version": "2.0.0",
@@ -5866,6 +7632,14 @@
 			"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
 			"dev": true
 		},
+		"node_modules/isomorphic-ws": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
+			"integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
+			"peerDependencies": {
+				"ws": "*"
+			}
+		},
 		"node_modules/isstream": {
 			"version": "0.1.2",
 			"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@@ -5884,11 +7658,81 @@
 				"node": ">= 4"
 			}
 		},
+		"node_modules/jayson": {
+			"version": "3.7.0",
+			"resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz",
+			"integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==",
+			"dependencies": {
+				"@types/connect": "^3.4.33",
+				"@types/node": "^12.12.54",
+				"@types/ws": "^7.4.4",
+				"commander": "^2.20.3",
+				"delay": "^5.0.0",
+				"es6-promisify": "^5.0.0",
+				"eyes": "^0.1.8",
+				"isomorphic-ws": "^4.0.1",
+				"json-stringify-safe": "^5.0.1",
+				"JSONStream": "^1.3.5",
+				"lodash": "^4.17.20",
+				"uuid": "^8.3.2",
+				"ws": "^7.4.5"
+			},
+			"bin": {
+				"jayson": "bin/jayson.js"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/jayson/node_modules/@types/node": {
+			"version": "12.20.55",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+			"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
+		},
+		"node_modules/jayson/node_modules/ws": {
+			"version": "7.5.9",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+			"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+			"engines": {
+				"node": ">=8.3.0"
+			},
+			"peerDependencies": {
+				"bufferutil": "^4.0.1",
+				"utf-8-validate": "^5.0.2"
+			},
+			"peerDependenciesMeta": {
+				"bufferutil": {
+					"optional": true
+				},
+				"utf-8-validate": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/jose": {
+			"version": "4.11.2",
+			"resolved": "https://registry.npmjs.org/jose/-/jose-4.11.2.tgz",
+			"integrity": "sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A==",
+			"funding": {
+				"url": "https://github.com/sponsors/panva"
+			}
+		},
 		"node_modules/jpeg-js": {
 			"version": "0.4.4",
 			"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
 			"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
 		},
+		"node_modules/js-sha3": {
+			"version": "0.8.0",
+			"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+			"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
+		},
+		"node_modules/js-tokens": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+			"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+			"peer": true
+		},
 		"node_modules/js-yaml": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -5945,6 +7789,29 @@
 				"graceful-fs": "^4.1.6"
 			}
 		},
+		"node_modules/jsonparse": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+			"integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+			"engines": [
+				"node >= 0.2.0"
+			]
+		},
+		"node_modules/JSONStream": {
+			"version": "1.3.5",
+			"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+			"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+			"dependencies": {
+				"jsonparse": "^1.2.0",
+				"through": ">=2.2.7 <3"
+			},
+			"bin": {
+				"JSONStream": "bin.js"
+			},
+			"engines": {
+				"node": "*"
+			}
+		},
 		"node_modules/jsprim": {
 			"version": "1.4.2",
 			"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
@@ -5959,17 +7826,6 @@
 				"node": ">=0.6.0"
 			}
 		},
-		"node_modules/jszip": {
-			"version": "3.10.1",
-			"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
-			"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
-			"dependencies": {
-				"lie": "~3.3.0",
-				"pako": "~1.0.2",
-				"readable-stream": "~2.3.6",
-				"setimmediate": "^1.0.5"
-			}
-		},
 		"node_modules/junk": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
@@ -5979,6 +7835,33 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/keccak": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz",
+			"integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==",
+			"hasInstallScript": true,
+			"dependencies": {
+				"node-addon-api": "^2.0.0",
+				"node-gyp-build": "^4.2.0",
+				"readable-stream": "^3.6.0"
+			},
+			"engines": {
+				"node": ">=10.0.0"
+			}
+		},
+		"node_modules/keccak/node_modules/readable-stream": {
+			"version": "3.6.0",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+			"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+			"dependencies": {
+				"inherits": "^2.0.3",
+				"string_decoder": "^1.1.1",
+				"util-deprecate": "^1.0.1"
+			},
+			"engines": {
+				"node": ">= 6"
+			}
+		},
 		"node_modules/keyv": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
@@ -6010,14 +7893,6 @@
 				"node": ">= 0.8.0"
 			}
 		},
-		"node_modules/lie": {
-			"version": "3.3.0",
-			"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
-			"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
-			"dependencies": {
-				"immediate": "~3.0.5"
-			}
-		},
 		"node_modules/locate-path": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -6069,6 +7944,18 @@
 			"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
 			"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
 		},
+		"node_modules/loose-envify": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+			"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+			"peer": true,
+			"dependencies": {
+				"js-tokens": "^3.0.0 || ^4.0.0"
+			},
+			"bin": {
+				"loose-envify": "cli.js"
+			}
+		},
 		"node_modules/lowercase-keys": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
@@ -6133,6 +8020,16 @@
 				"semver": "bin/semver.js"
 			}
 		},
+		"node_modules/md5.js": {
+			"version": "1.3.5",
+			"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+			"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+			"dependencies": {
+				"hash-base": "^3.0.0",
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.1.2"
+			}
+		},
 		"node_modules/mdn-data": {
 			"version": "2.0.4",
 			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
@@ -6246,10 +8143,21 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/minimalistic-assert": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+			"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+		},
+		"node_modules/minimalistic-crypto-utils": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+			"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+		},
 		"node_modules/minimatch": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
 			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+			"dev": true,
 			"dependencies": {
 				"brace-expansion": "^1.1.7"
 			},
@@ -6275,6 +8183,24 @@
 				"mkdirp": "bin/cmd.js"
 			}
 		},
+		"node_modules/moralis": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/moralis/-/moralis-2.11.1.tgz",
+			"integrity": "sha512-VLzj8zLCVbNOQiiatZ7aAPRhqDrxbVnW5uzr/FLFDdDfcSM21hiiM0CEWbqk5vz32nPn/gYRLGGB0ar2yRRnBA==",
+			"dependencies": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/auth": "^2.11.1",
+				"@moralisweb3/common-auth-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1",
+				"@moralisweb3/common-streams-utils": "^2.11.1",
+				"@moralisweb3/evm-api": "^2.11.1",
+				"@moralisweb3/sol-api": "^2.11.1",
+				"@moralisweb3/streams": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6"
+			}
+		},
 		"node_modules/mri": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -6331,7 +8257,6 @@
 			"version": "3.3.4",
 			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
 			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
-			"dev": true,
 			"bin": {
 				"nanoid": "bin/nanoid.cjs"
 			},
@@ -6368,7 +8293,113 @@
 			"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
 			"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
 			"engines": {
-				"node": ">= 0.6"
+				"node": ">= 0.6"
+			}
+		},
+		"node_modules/next": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/next/-/next-13.1.4.tgz",
+			"integrity": "sha512-g0oBUU+tcOPKbXTVdsDO2adc6wd/ggqauHHysPQJxuIKqZ+fwICGJht0C5D5V0A/77eQDF5EFwNdAHkFvBDsog==",
+			"peer": true,
+			"dependencies": {
+				"@next/env": "13.1.4",
+				"@swc/helpers": "0.4.14",
+				"caniuse-lite": "^1.0.30001406",
+				"postcss": "8.4.14",
+				"styled-jsx": "5.1.1"
+			},
+			"bin": {
+				"next": "dist/bin/next"
+			},
+			"engines": {
+				"node": ">=14.6.0"
+			},
+			"optionalDependencies": {
+				"@next/swc-android-arm-eabi": "13.1.4",
+				"@next/swc-android-arm64": "13.1.4",
+				"@next/swc-darwin-arm64": "13.1.4",
+				"@next/swc-darwin-x64": "13.1.4",
+				"@next/swc-freebsd-x64": "13.1.4",
+				"@next/swc-linux-arm-gnueabihf": "13.1.4",
+				"@next/swc-linux-arm64-gnu": "13.1.4",
+				"@next/swc-linux-arm64-musl": "13.1.4",
+				"@next/swc-linux-x64-gnu": "13.1.4",
+				"@next/swc-linux-x64-musl": "13.1.4",
+				"@next/swc-win32-arm64-msvc": "13.1.4",
+				"@next/swc-win32-ia32-msvc": "13.1.4",
+				"@next/swc-win32-x64-msvc": "13.1.4"
+			},
+			"peerDependencies": {
+				"fibers": ">= 3.1.0",
+				"node-sass": "^6.0.0 || ^7.0.0",
+				"react": "^18.2.0",
+				"react-dom": "^18.2.0",
+				"sass": "^1.3.0"
+			},
+			"peerDependenciesMeta": {
+				"fibers": {
+					"optional": true
+				},
+				"node-sass": {
+					"optional": true
+				},
+				"sass": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/next-auth": {
+			"version": "4.18.8",
+			"resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.18.8.tgz",
+			"integrity": "sha512-USP8ihmvB7iCGtkS0+toe2QPrzdbZfkydQZX56JOI9Ft5n/BardOXh3D4wQ2An+vpq/jDKojGlgfv21wVElW7A==",
+			"dependencies": {
+				"@babel/runtime": "^7.16.3",
+				"@panva/hkdf": "^1.0.1",
+				"cookie": "^0.5.0",
+				"jose": "^4.9.3",
+				"oauth": "^0.9.15",
+				"openid-client": "^5.1.0",
+				"preact": "^10.6.3",
+				"preact-render-to-string": "^5.1.19",
+				"uuid": "^8.3.2"
+			},
+			"engines": {
+				"node": "^12.19.0 || ^14.15.0 || ^16.13.0 || ^18.12.0"
+			},
+			"peerDependencies": {
+				"next": "^12.2.5 || ^13",
+				"nodemailer": "^6.6.5",
+				"react": "^17.0.2 || ^18",
+				"react-dom": "^17.0.2 || ^18"
+			},
+			"peerDependenciesMeta": {
+				"nodemailer": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/next/node_modules/postcss": {
+			"version": "8.4.14",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+			"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/postcss/"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/postcss"
+				}
+			],
+			"peer": true,
+			"dependencies": {
+				"nanoid": "^3.3.4",
+				"picocolors": "^1.0.0",
+				"source-map-js": "^1.0.2"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14"
 			}
 		},
 		"node_modules/nice-try": {
@@ -6377,6 +8408,11 @@
 			"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
 			"dev": true
 		},
+		"node_modules/node-addon-api": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+			"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
+		},
 		"node_modules/node-bitmap": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz",
@@ -6431,6 +8467,16 @@
 				"node": ">= 12"
 			}
 		},
+		"node_modules/node-gyp-build": {
+			"version": "4.6.0",
+			"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+			"integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
+			"bin": {
+				"node-gyp-build": "bin.js",
+				"node-gyp-build-optional": "optional.js",
+				"node-gyp-build-test": "build-test.js"
+			}
+		},
 		"node_modules/node-gyp-build-optional-packages": {
 			"version": "5.0.3",
 			"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz",
@@ -6529,6 +8575,29 @@
 				"boolbase": "~1.0.0"
 			}
 		},
+		"node_modules/number-to-bn": {
+			"version": "1.7.0",
+			"resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+			"integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
+			"dependencies": {
+				"bn.js": "4.11.6",
+				"strip-hex-prefix": "1.0.0"
+			},
+			"engines": {
+				"node": ">=6.5.0",
+				"npm": ">=3"
+			}
+		},
+		"node_modules/number-to-bn/node_modules/bn.js": {
+			"version": "4.11.6",
+			"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+			"integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
+		},
+		"node_modules/oauth": {
+			"version": "0.9.15",
+			"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+			"integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
+		},
 		"node_modules/oauth-sign": {
 			"version": "0.9.0",
 			"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
@@ -6546,6 +8615,14 @@
 				"node": ">=0.10.0"
 			}
 		},
+		"node_modules/object-hash": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+			"integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
+			"engines": {
+				"node": ">= 6"
+			}
+		},
 		"node_modules/object-inspect": {
 			"version": "1.12.2",
 			"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
@@ -6616,6 +8693,14 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
+		"node_modules/oidc-token-hash": {
+			"version": "5.0.1",
+			"resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz",
+			"integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==",
+			"engines": {
+				"node": "^10.13.0 || >=12.0.0"
+			}
+		},
 		"node_modules/omggif": {
 			"version": "1.0.10",
 			"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
@@ -6663,6 +8748,20 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/openid-client": {
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.3.2.tgz",
+			"integrity": "sha512-nXXt+cna0XHOw+WqjMZOmuXw/YZEMwfWD2lD7tCsFtsBjMQGVXA+NZABA3upYBET1suhIsmfd7GnxG4jCAnvYQ==",
+			"dependencies": {
+				"jose": "^4.10.0",
+				"lru-cache": "^6.0.0",
+				"object-hash": "^2.0.1",
+				"oidc-token-hash": "^5.0.1"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/panva"
+			}
+		},
 		"node_modules/optionator": {
 			"version": "0.9.1",
 			"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -6851,11 +8950,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/pako": {
-			"version": "1.0.11",
-			"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
-			"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
-		},
 		"node_modules/parent-module": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -6897,6 +8991,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
 			"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+			"dev": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -6930,6 +9025,21 @@
 				"node": ">=8"
 			}
 		},
+		"node_modules/pbkdf2": {
+			"version": "3.1.2",
+			"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+			"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+			"dependencies": {
+				"create-hash": "^1.1.2",
+				"create-hmac": "^1.1.4",
+				"ripemd160": "^2.0.1",
+				"safe-buffer": "^5.0.1",
+				"sha.js": "^2.4.8"
+			},
+			"engines": {
+				"node": ">=0.12"
+			}
+		},
 		"node_modules/pend": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -6944,8 +9054,7 @@
 		"node_modules/picocolors": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
-			"dev": true
+			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
 		},
 		"node_modules/picomatch": {
 			"version": "2.3.1",
@@ -7039,6 +9148,26 @@
 				"node": "^10 || ^12 || >=14"
 			}
 		},
+		"node_modules/preact": {
+			"version": "10.11.3",
+			"resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz",
+			"integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==",
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/preact"
+			}
+		},
+		"node_modules/preact-render-to-string": {
+			"version": "5.2.6",
+			"resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz",
+			"integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==",
+			"dependencies": {
+				"pretty-format": "^3.8.0"
+			},
+			"peerDependencies": {
+				"preact": ">=10"
+			}
+		},
 		"node_modules/prelude-ls": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -7082,10 +9211,16 @@
 				"svelte": "^3.2.0"
 			}
 		},
+		"node_modules/pretty-format": {
+			"version": "3.8.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+			"integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
+		},
 		"node_modules/process-nextick-args": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
-			"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+			"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+			"dev": true
 		},
 		"node_modules/progress": {
 			"version": "2.0.3",
@@ -7139,6 +9274,11 @@
 				"node": ">= 0.10"
 			}
 		},
+		"node_modules/proxy-from-env": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+			"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+		},
 		"node_modules/pseudomap": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -7231,6 +9371,14 @@
 				}
 			]
 		},
+		"node_modules/randombytes": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+			"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+			"dependencies": {
+				"safe-buffer": "^5.1.0"
+			}
+		},
 		"node_modules/range-parser": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -7276,10 +9424,36 @@
 			"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
 			"dev": true
 		},
+		"node_modules/react": {
+			"version": "18.2.0",
+			"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+			"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+			"peer": true,
+			"dependencies": {
+				"loose-envify": "^1.1.0"
+			},
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/react-dom": {
+			"version": "18.2.0",
+			"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+			"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+			"peer": true,
+			"dependencies": {
+				"loose-envify": "^1.1.0",
+				"scheduler": "^0.23.0"
+			},
+			"peerDependencies": {
+				"react": "^18.2.0"
+			}
+		},
 		"node_modules/readable-stream": {
 			"version": "2.3.7",
 			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
 			"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+			"dev": true,
 			"dependencies": {
 				"core-util-is": "~1.0.0",
 				"inherits": "~2.0.3",
@@ -7344,6 +9518,11 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/regenerator-runtime": {
+			"version": "0.13.11",
+			"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+			"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+		},
 		"node_modules/regexp.prototype.flags": {
 			"version": "1.4.3",
 			"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
@@ -7505,6 +9684,7 @@
 			"version": "3.0.2",
 			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
 			"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+			"dev": true,
 			"dependencies": {
 				"glob": "^7.1.3"
 			},
@@ -7515,6 +9695,26 @@
 				"url": "https://github.com/sponsors/isaacs"
 			}
 		},
+		"node_modules/ripemd160": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+			"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+			"dependencies": {
+				"hash-base": "^3.0.0",
+				"inherits": "^2.0.1"
+			}
+		},
+		"node_modules/rlp": {
+			"version": "2.2.7",
+			"resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
+			"integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
+			"dependencies": {
+				"bn.js": "^5.2.0"
+			},
+			"bin": {
+				"rlp": "bin/rlp"
+			}
+		},
 		"node_modules/rollup": {
 			"version": "2.78.1",
 			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz",
@@ -7530,6 +9730,25 @@
 				"fsevents": "~2.3.2"
 			}
 		},
+		"node_modules/rpc-websockets": {
+			"version": "7.5.0",
+			"resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz",
+			"integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==",
+			"dependencies": {
+				"@babel/runtime": "^7.17.2",
+				"eventemitter3": "^4.0.7",
+				"uuid": "^8.3.2",
+				"ws": "^8.5.0"
+			},
+			"funding": {
+				"type": "paypal",
+				"url": "https://paypal.me/kozjak"
+			},
+			"optionalDependencies": {
+				"bufferutil": "^4.0.1",
+				"utf-8-validate": "^5.0.2"
+			}
+		},
 		"node_modules/run-parallel": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -7553,6 +9772,15 @@
 				"queue-microtask": "^1.2.2"
 			}
 		},
+		"node_modules/rxjs": {
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+			"integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
+			"optional": true,
+			"dependencies": {
+				"tslib": "^2.1.0"
+			}
+		},
 		"node_modules/sade": {
 			"version": "1.8.1",
 			"resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
@@ -7604,6 +9832,15 @@
 			"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
 			"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
 		},
+		"node_modules/scheduler": {
+			"version": "0.23.0",
+			"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+			"integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+			"peer": true,
+			"dependencies": {
+				"loose-envify": "^1.1.0"
+			}
+		},
 		"node_modules/schema-dts": {
 			"version": "0.8.3",
 			"resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-0.8.3.tgz",
@@ -7613,6 +9850,25 @@
 				"typescript": ">=3.4.0"
 			}
 		},
+		"node_modules/scrypt-js": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+			"integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
+		},
+		"node_modules/secp256k1": {
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+			"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
+			"hasInstallScript": true,
+			"dependencies": {
+				"elliptic": "^6.5.4",
+				"node-addon-api": "^2.0.0",
+				"node-gyp-build": "^4.2.0"
+			},
+			"engines": {
+				"node": ">=10.0.0"
+			}
+		},
 		"node_modules/seek-bzip": {
 			"version": "1.0.6",
 			"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
@@ -7626,19 +9882,6 @@
 				"seek-table": "bin/seek-bzip-table"
 			}
 		},
-		"node_modules/selenium-webdriver": {
-			"version": "4.1.2",
-			"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.1.2.tgz",
-			"integrity": "sha512-e4Ap8vQvhipgBB8Ry9zBiKGkU6kHKyNnWiavGGLKkrdW81Zv7NVMtFOL/j3yX0G8QScM7XIXijKssNd4EUxSOw==",
-			"dependencies": {
-				"jszip": "^3.6.0",
-				"tmp": "^0.2.1",
-				"ws": ">=7.4.6"
-			},
-			"engines": {
-				"node": ">= 10.15.0"
-			}
-		},
 		"node_modules/semver": {
 			"version": "7.3.7",
 			"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
@@ -7765,6 +10008,18 @@
 			"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
 			"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
 		},
+		"node_modules/sha.js": {
+			"version": "2.4.11",
+			"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+			"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+			"dependencies": {
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.0.1"
+			},
+			"bin": {
+				"sha.js": "bin.js"
+			}
+		},
 		"node_modules/shebang-command": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -7903,7 +10158,6 @@
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
 			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
-			"dev": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -8060,6 +10314,18 @@
 				"node": ">=6"
 			}
 		},
+		"node_modules/strip-hex-prefix": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+			"integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
+			"dependencies": {
+				"is-hex-prefixed": "1.0.0"
+			},
+			"engines": {
+				"node": ">=6.5.0",
+				"npm": ">=3"
+			}
+		},
 		"node_modules/strip-indent": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
@@ -8105,6 +10371,34 @@
 				"node": ">=0.8.0"
 			}
 		},
+		"node_modules/styled-jsx": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
+			"integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
+			"peer": true,
+			"dependencies": {
+				"client-only": "0.0.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"peerDependencies": {
+				"react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+			},
+			"peerDependenciesMeta": {
+				"@babel/core": {
+					"optional": true
+				},
+				"babel-plugin-macros": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/superstruct": {
+			"version": "0.14.2",
+			"resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz",
+			"integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ=="
+		},
 		"node_modules/supports-color": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -8377,6 +10671,14 @@
 				"node": ">=4"
 			}
 		},
+		"node_modules/swr": {
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz",
+			"integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==",
+			"peerDependencies": {
+				"react": "^16.11.0 || ^17.0.0 || ^18.0.0"
+			}
+		},
 		"node_modules/tar-stream": {
 			"version": "1.6.2",
 			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
@@ -8427,6 +10729,11 @@
 				"uuid": "bin/uuid"
 			}
 		},
+		"node_modules/text-encoding-utf-8": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
+			"integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="
+		},
 		"node_modules/text-table": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -8457,17 +10764,6 @@
 				"globrex": "^0.1.2"
 			}
 		},
-		"node_modules/tmp": {
-			"version": "0.2.1",
-			"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
-			"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
-			"dependencies": {
-				"rimraf": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=8.17.0"
-			}
-		},
 		"node_modules/to-buffer": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
@@ -8619,6 +10915,14 @@
 				"node": ">= 0.6"
 			}
 		},
+		"node_modules/typed-emitter": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz",
+			"integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==",
+			"optionalDependencies": {
+				"rxjs": "*"
+			}
+		},
 		"node_modules/typescript": {
 			"version": "4.8.2",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
@@ -8723,6 +11027,24 @@
 				"node": ">= 4"
 			}
 		},
+		"node_modules/utf-8-validate": {
+			"version": "5.0.10",
+			"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
+			"integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
+			"hasInstallScript": true,
+			"optional": true,
+			"dependencies": {
+				"node-gyp-build": "^4.3.0"
+			},
+			"engines": {
+				"node": ">=6.14.2"
+			}
+		},
+		"node_modules/utf8": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+			"integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
+		},
 		"node_modules/util-deprecate": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -9270,6 +11592,35 @@
 				"node": ">= 8"
 			}
 		},
+		"node_modules/web3-eth-abi": {
+			"version": "1.8.1",
+			"resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz",
+			"integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==",
+			"dependencies": {
+				"@ethersproject/abi": "^5.6.3",
+				"web3-utils": "1.8.1"
+			},
+			"engines": {
+				"node": ">=8.0.0"
+			}
+		},
+		"node_modules/web3-utils": {
+			"version": "1.8.1",
+			"resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz",
+			"integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==",
+			"dependencies": {
+				"bn.js": "^5.2.1",
+				"ethereum-bloom-filters": "^1.0.6",
+				"ethereumjs-util": "^7.1.0",
+				"ethjs-unit": "0.1.6",
+				"number-to-bn": "1.7.0",
+				"randombytes": "^2.1.0",
+				"utf8": "3.0.0"
+			},
+			"engines": {
+				"node": ">=8.0.0"
+			}
+		},
 		"node_modules/webidl-conversions": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -9485,6 +11836,14 @@
 		}
 	},
 	"dependencies": {
+		"@babel/runtime": {
+			"version": "7.20.13",
+			"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
+			"integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
+			"requires": {
+				"regenerator-runtime": "^0.13.11"
+			}
+		},
 		"@cush/relative": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/@cush/relative/-/relative-1.0.0.tgz",
@@ -9515,108 +11874,486 @@
 				"strip-json-comments": "^3.1.1"
 			}
 		},
+		"@ethersproject/abi": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
+			"integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
+			"requires": {
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"@ethersproject/abstract-provider": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
+			"integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
+			"requires": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/networks": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/web": "^5.7.0"
+			}
+		},
+		"@ethersproject/abstract-signer": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
+			"integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
+			"requires": {
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0"
+			}
+		},
+		"@ethersproject/address": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
+			"integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
+			"requires": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/rlp": "^5.7.0"
+			}
+		},
+		"@ethersproject/base64": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
+			"integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0"
+			}
+		},
+		"@ethersproject/basex": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
+			"integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0"
+			}
+		},
+		"@ethersproject/bignumber": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
+			"integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"bn.js": "^5.2.1"
+			}
+		},
+		"@ethersproject/bytes": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
+			"integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
+			"requires": {
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/constants": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
+			"integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
+			"requires": {
+				"@ethersproject/bignumber": "^5.7.0"
+			}
+		},
+		"@ethersproject/contracts": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
+			"integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
+			"requires": {
+				"@ethersproject/abi": "^5.7.0",
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0"
+			}
+		},
+		"@ethersproject/hash": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
+			"integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
+			"requires": {
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/base64": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"@ethersproject/hdnode": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
+			"integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
+			"requires": {
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/basex": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/pbkdf2": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0",
+				"@ethersproject/signing-key": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/wordlists": "^5.7.0"
+			}
+		},
+		"@ethersproject/json-wallets": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
+			"integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
+			"requires": {
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/hdnode": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/pbkdf2": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/random": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"aes-js": "3.0.0",
+				"scrypt-js": "3.0.1"
+			}
+		},
+		"@ethersproject/keccak256": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
+			"integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"js-sha3": "0.8.0"
+			}
+		},
+		"@ethersproject/logger": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
+			"integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig=="
+		},
+		"@ethersproject/networks": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
+			"integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
+			"requires": {
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/pbkdf2": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
+			"integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0"
+			}
+		},
+		"@ethersproject/properties": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
+			"integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
+			"requires": {
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/providers": {
+			"version": "5.7.2",
+			"resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz",
+			"integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==",
+			"requires": {
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/base64": "^5.7.0",
+				"@ethersproject/basex": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/networks": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/random": "^5.7.0",
+				"@ethersproject/rlp": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/web": "^5.7.0",
+				"bech32": "1.1.4",
+				"ws": "7.4.6"
+			},
+			"dependencies": {
+				"ws": {
+					"version": "7.4.6",
+					"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+					"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+					"requires": {}
+				}
+			}
+		},
+		"@ethersproject/random": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
+			"integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/rlp": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
+			"integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/sha2": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
+			"integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"hash.js": "1.1.7"
+			}
+		},
+		"@ethersproject/signing-key": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
+			"integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"bn.js": "^5.2.1",
+				"elliptic": "6.5.4",
+				"hash.js": "1.1.7"
+			}
+		},
+		"@ethersproject/solidity": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
+			"integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
+			"requires": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/sha2": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"@ethersproject/strings": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
+			"integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/transactions": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
+			"integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
+			"requires": {
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/rlp": "^5.7.0",
+				"@ethersproject/signing-key": "^5.7.0"
+			}
+		},
+		"@ethersproject/units": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
+			"integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
+			"requires": {
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/constants": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0"
+			}
+		},
+		"@ethersproject/wallet": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
+			"integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
+			"requires": {
+				"@ethersproject/abstract-provider": "^5.7.0",
+				"@ethersproject/abstract-signer": "^5.7.0",
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bignumber": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/hdnode": "^5.7.0",
+				"@ethersproject/json-wallets": "^5.7.0",
+				"@ethersproject/keccak256": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/random": "^5.7.0",
+				"@ethersproject/signing-key": "^5.7.0",
+				"@ethersproject/transactions": "^5.7.0",
+				"@ethersproject/wordlists": "^5.7.0"
+			}
+		},
+		"@ethersproject/web": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
+			"integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
+			"requires": {
+				"@ethersproject/base64": "^5.7.0",
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
+		"@ethersproject/wordlists": {
+			"version": "5.7.0",
+			"resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
+			"integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
+			"requires": {
+				"@ethersproject/bytes": "^5.7.0",
+				"@ethersproject/hash": "^5.7.0",
+				"@ethersproject/logger": "^5.7.0",
+				"@ethersproject/properties": "^5.7.0",
+				"@ethersproject/strings": "^5.7.0"
+			}
+		},
 		"@firebase/analytics": {
-			"version": "0.8.0",
-			"resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.8.0.tgz",
-			"integrity": "sha512-wkcwainNm8Cu2xkJpDSHfhBSdDJn86Q1TZNmLWc67VrhZUHXIKXxIqb65/tNUVE+I8+sFiDDNwA+9R3MqTQTaA==",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.1.tgz",
+			"integrity": "sha512-ARXtNHDrjDhVrs5MqmFDpr5yyCw89r1eHLd+Dw9fotAufxL1WTmo6O9bJqKb7QulIJaA84vsFokA3NaO2DNCnQ==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/analytics-compat": {
-			"version": "0.1.13",
-			"resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.1.13.tgz",
-			"integrity": "sha512-QC1DH/Dwc8fBihn0H+jocBWyE17GF1fOCpCrpAiQ2u16F/NqsVDVG4LjIqdhq963DXaXneNY7oDwa25Up682AA==",
-			"requires": {
-				"@firebase/analytics": "0.8.0",
-				"@firebase/analytics-types": "0.7.0",
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.1.tgz",
+			"integrity": "sha512-qfFAGS4YFsBbmZwVa7xaDnGh7k9BKF4o/piyjySAv0lxRYd74/tSrm3kMk1YM7GCti7PdbgKvl6oSR70zMFQjw==",
+			"requires": {
+				"@firebase/analytics": "0.9.1",
+				"@firebase/analytics-types": "0.8.0",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/analytics-types": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.7.0.tgz",
-			"integrity": "sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ=="
+			"version": "0.8.0",
+			"resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz",
+			"integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw=="
 		},
 		"@firebase/app": {
-			"version": "0.7.32",
-			"resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.7.32.tgz",
-			"integrity": "sha512-FUqDHgCkr6oVTTpastIlquYsMtkd8Tg4SR8+z4sCJ1C1pbPavazN9qeYIqHQjviqLV/OflCrACCZj/s2zlh0ww==",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.1.tgz",
+			"integrity": "sha512-Z8wOSol+pvp4CFyY1mW+aqdZlrwhW/ha2YXQ6/avJ56c5Hnvt4k6GktZE6o5NyzvfJTgNHryhMtnEJMIuLaT4w==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"idb": "7.0.1",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/app-check": {
-			"version": "0.5.12",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.5.12.tgz",
-			"integrity": "sha512-l+MmvupSGT/F+I5ei7XjhEfpoL4hLVJr0vUwcG5NEf2hAkQnySli9fnbl9fZu1BJaQ2kthrMmtg1gcbcM9BUCQ==",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.1.tgz",
+			"integrity": "sha512-gDG4Gr4n3MnBZAAwLMynU9u/b+f1y87lCezfwlmN1gUxD85mJcvp4hLf87fACTyRkdVfe8hqSXm+MOYn2bMGLg==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/app-check-compat": {
-			"version": "0.2.12",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.2.12.tgz",
-			"integrity": "sha512-GFppNLlUyMN9Iq31ME/+GkjRVKlc+MeanzUKQ9UaR73ZsYH3oX3Ja+xjoYgixaVJDDG+ofBYR7ZXTkkQdSR/pw==",
-			"requires": {
-				"@firebase/app-check": "0.5.12",
-				"@firebase/app-check-types": "0.4.0",
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.1.tgz",
+			"integrity": "sha512-IaSYdmaoQgWUrN6rjAYJs1TGXj38Wl9damtrDEyJBf7+rrvKshPAP/CP6e2bd89XOMZKbvy8rKoe1CqX1K3ZjQ==",
+			"requires": {
+				"@firebase/app-check": "0.6.1",
+				"@firebase/app-check-types": "0.5.0",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/app-check-interop-types": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz",
-			"integrity": "sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA=="
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz",
+			"integrity": "sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ=="
 		},
 		"@firebase/app-check-types": {
-			"version": "0.4.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.4.0.tgz",
-			"integrity": "sha512-SsWafqMABIOu7zLgWbmwvHGOeQQVQlwm42kwwubsmfLmL4Sf5uGpBfDhQ0CAkpi7bkJ/NwNFKafNDL9prRNP0Q=="
+			"version": "0.5.0",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz",
+			"integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ=="
 		},
 		"@firebase/app-compat": {
-			"version": "0.1.33",
-			"resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.1.33.tgz",
-			"integrity": "sha512-PLCwOpduJOOkw2v0ygBPpYBRobbnxJjZVaj2xjc5IPakHWx9sLHHX3KoZnl+7ZonY1xJ2lCQaLQrwqX2hi0FXg==",
-			"requires": {
-				"@firebase/app": "0.7.32",
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.1.tgz",
+			"integrity": "sha512-UgPy2ZO0li0j4hAkaZKY9P1TuJEx5RylhUWPzCb8DZhBm+uHdfsFI9Yr+wMlu6qQH2sWoweFtYU6ljGzxwdctw==",
+			"requires": {
+				"@firebase/app": "0.9.1",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/app-types": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz",
-			"integrity": "sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg=="
+			"version": "0.9.0",
+			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz",
+			"integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q=="
 		},
 		"@firebase/auth": {
-			"version": "0.20.6",
-			"resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.20.6.tgz",
-			"integrity": "sha512-99R3bY7aQ2zFh5BdqLEgI/qN87l3bPBLIse2eDVcSRwChaM6FTdIKoKk15L1M4ry8utatMtYFt1vRCol7QDsLg==",
+			"version": "0.21.1",
+			"resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.1.tgz",
+			"integrity": "sha512-/ap7eT9X7kZTD4Fn2m+nJyC1a9DfFo0H4euoJDN8U+JCMN+GOqkPbkMWCey7wV510WNoPCZQ05+nsAqKkbEVJw==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
-				"selenium-webdriver": "4.1.2",
 				"tslib": "^2.1.0"
 			},
 			"dependencies": {
@@ -9631,16 +12368,15 @@
 			}
 		},
 		"@firebase/auth-compat": {
-			"version": "0.2.19",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.2.19.tgz",
-			"integrity": "sha512-gB9fnPZM2mnNrGR7n6Y+xDC/4cSouDVfdwPYL7GuLv7b48iW1u24DC9Trv10gNUUGq6iGEyqgJgCSrVmlTkX7Q==",
-			"requires": {
-				"@firebase/auth": "0.20.6",
-				"@firebase/auth-types": "0.11.0",
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.1.tgz",
+			"integrity": "sha512-Ndcaam+IL1TuJ6hZ0EcQ+v261cK3kPm4mvUtouoTfl3FNinm9XvhccN8ojuaRtIV9TiY18mzGjONKF5ZCXLIZw==",
+			"requires": {
+				"@firebase/auth": "0.21.1",
+				"@firebase/auth-types": "0.12.0",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
-				"selenium-webdriver": "4.1.2",
 				"tslib": "^2.1.0"
 			},
 			"dependencies": {
@@ -9655,71 +12391,70 @@
 			}
 		},
 		"@firebase/auth-interop-types": {
-			"version": "0.1.6",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz",
-			"integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==",
-			"requires": {}
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz",
+			"integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg=="
 		},
 		"@firebase/auth-types": {
-			"version": "0.11.0",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.11.0.tgz",
-			"integrity": "sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==",
+			"version": "0.12.0",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz",
+			"integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==",
 			"requires": {}
 		},
 		"@firebase/component": {
-			"version": "0.5.17",
-			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.17.tgz",
-			"integrity": "sha512-mTM5CBSIlmI+i76qU4+DhuExnWtzcPS3cVgObA3VAjliPPr3GrUlTaaa8KBGfxsD27juQxMsYA0TvCR5X+GQ3Q==",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.1.tgz",
+			"integrity": "sha512-yvKthG0InjFx9aOPnh6gk0lVNfNVEtyq3LwXgZr+hOwD0x/CtXq33XCpqv0sQj5CA4FdMy8OO+y9edI+ZUw8LA==",
 			"requires": {
-				"@firebase/util": "1.6.3",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/database": {
-			"version": "0.13.6",
-			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.13.6.tgz",
-			"integrity": "sha512-5IZIBw2LT50Z8mwmKYmdX37p+Gg2HgeJsrruZmRyOSVgbfoY4Pg87n1uFx6qWqDmfL6HwQgwcrrQfVIXE3C5SA==",
-			"requires": {
-				"@firebase/auth-interop-types": "0.1.6",
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.14.1",
+			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.1.tgz",
+			"integrity": "sha512-iX6/p7hoxUMbYAGZD+D97L05xQgpkslF2+uJLZl46EdaEfjVMEwAdy7RS/grF96kcFZFg502LwPYTXoIdrZqOA==",
+			"requires": {
+				"@firebase/auth-interop-types": "0.2.1",
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"faye-websocket": "0.11.4",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/database-compat": {
-			"version": "0.2.6",
-			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.2.6.tgz",
-			"integrity": "sha512-Ls1BAODaiDYgeJljrIgSuC7JkFIY/HNhhNYebzZSoGQU62RuvnaO3Qgp2EH6h2LzHyRnycNadfh1suROtPaUIA==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/database": "0.13.6",
-				"@firebase/database-types": "0.9.13",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.1.tgz",
+			"integrity": "sha512-sI7LNh0C8PCq9uUKjrBKLbZvqHTSjsf2LeZRxin+rHVegomjsOAYk9OzYwxETWh3URhpMkCM8KcTl7RVwAldog==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/database": "0.14.1",
+				"@firebase/database-types": "0.10.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/database-types": {
-			"version": "0.9.13",
-			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.13.tgz",
-			"integrity": "sha512-dIJ1zGe3EHMhwcvukTOPzYlFYFIG1Et5Znl7s7y/ZTN2/toARRNnsv1qCKvqevIMYKvIrRsYOYfOXDS8l1YIJA==",
+			"version": "0.10.1",
+			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.1.tgz",
+			"integrity": "sha512-UgUx9VakTHbP2WrVUdYrUT2ofTFVfWjGW2O1fwuvvMyo6WSnuSyO5nB1u0cyoMPvO25dfMIUVerfK7qFfwGL3Q==",
 			"requires": {
-				"@firebase/app-types": "0.7.0",
-				"@firebase/util": "1.6.3"
+				"@firebase/app-types": "0.9.0",
+				"@firebase/util": "1.9.0"
 			}
 		},
 		"@firebase/firestore": {
-			"version": "3.4.15",
-			"resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.4.15.tgz",
-			"integrity": "sha512-1kal1/0UC1p9x99f0iXwWbmBL/RClksdkqLSd8HVQVawAMTR3zCVKE95omNGl0egRRlDN6c/i8XBEfkwj3SHxw==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
-				"@firebase/webchannel-wrapper": "0.6.2",
-				"@grpc/grpc-js": "^1.3.2",
+			"version": "3.8.1",
+			"resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.1.tgz",
+			"integrity": "sha512-oc2HMkUnq/zF+g9o974tp5RVCdXCnrU8e5S98ajfWG/hGV+8pr4i6vIa4z0yEXKWGi4X0FguxrC69z1dxEJbNg==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
+				"@firebase/webchannel-wrapper": "0.9.0",
+				"@grpc/grpc-js": "~1.7.0",
 				"@grpc/proto-loader": "^0.6.13",
 				"node-fetch": "2.6.7",
 				"tslib": "^2.1.0"
@@ -9736,33 +12471,33 @@
 			}
 		},
 		"@firebase/firestore-compat": {
-			"version": "0.1.24",
-			"resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.1.24.tgz",
-			"integrity": "sha512-wy9AerWLyg/RcbjKE9I73TyBW7FMVfxblGUbcRRHi5tSSrjp+JT1jsGriF6NjAij4byboaGVm8Hgrki7Oqf2kw==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/firestore": "3.4.15",
-				"@firebase/firestore-types": "2.5.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.1.tgz",
+			"integrity": "sha512-7eE4O2ASyy5X2h4a+KCRt0ZpliUAKo2jrKxKl1ZVCnOOjSCkXXeRVRG9eNZRqBwukhdwskJTM9acs0WxmKOYLA==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/firestore": "3.8.1",
+				"@firebase/firestore-types": "2.5.1",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/firestore-types": {
-			"version": "2.5.0",
-			"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.0.tgz",
-			"integrity": "sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA==",
+			"version": "2.5.1",
+			"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz",
+			"integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==",
 			"requires": {}
 		},
 		"@firebase/functions": {
-			"version": "0.8.4",
-			"resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.8.4.tgz",
-			"integrity": "sha512-o1bB0xMyQKe+b246zGnjwHj4R6BH4mU2ZrSaa/3QvTpahUQ3hqYfkZPLOXCU7+vEFxHb3Hd4UUjkFhxoAcPqLA==",
-			"requires": {
-				"@firebase/app-check-interop-types": "0.1.0",
-				"@firebase/auth-interop-types": "0.1.6",
-				"@firebase/component": "0.5.17",
-				"@firebase/messaging-interop-types": "0.1.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.9.1",
+			"resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.1.tgz",
+			"integrity": "sha512-xCSSU4aVSqYU+lCqhn9o5jJcE1KLUOOKyJfCTdCSCyTn2J3vl9Vk4TDm3JSb1Eu6XsNWtxeMW188F/GYxuMWcw==",
+			"requires": {
+				"@firebase/app-check-interop-types": "0.2.0",
+				"@firebase/auth-interop-types": "0.2.1",
+				"@firebase/component": "0.6.1",
+				"@firebase/messaging-interop-types": "0.2.0",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
 				"tslib": "^2.1.0"
 			},
@@ -9778,155 +12513,155 @@
 			}
 		},
 		"@firebase/functions-compat": {
-			"version": "0.2.4",
-			"resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.2.4.tgz",
-			"integrity": "sha512-Crfn6il1yXGuXkjSd8nKrqR4XxPvuP19g64bXpM6Ix67qOkQg676kyOuww0FF17xN0NSXHfG8Pyf+CUrx8wJ5g==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/functions": "0.8.4",
-				"@firebase/functions-types": "0.5.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.1.tgz",
+			"integrity": "sha512-f2D2XoRN+QCziCrUL7UrLaBEoG3v2iAeyNwbbOQ3vv0rI0mtku2/yeB2OINz5/iI6oIrBPUMNLr5fitofj7FpQ==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/functions": "0.9.1",
+				"@firebase/functions-types": "0.6.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/functions-types": {
-			"version": "0.5.0",
-			"resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.5.0.tgz",
-			"integrity": "sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA=="
+			"version": "0.6.0",
+			"resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz",
+			"integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw=="
 		},
 		"@firebase/installations": {
-			"version": "0.5.12",
-			"resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.5.12.tgz",
-			"integrity": "sha512-Zq43fCE0PB5tGJ3ojzx5RNQzKdej1188qgAk22rwjuhP7npaG/PlJqDG1/V0ZjTLRePZ1xGrfXSPlA17c/vtNw==",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.1.tgz",
+			"integrity": "sha512-gpobP09LLLakBfNCL04fyblfyb3oX1pn+iNmELygrcAkXTO13IAMuOzThI+Xk4NHQZMX1p5GFSAiGbG4yfsSUQ==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"idb": "7.0.1",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/installations-compat": {
-			"version": "0.1.12",
-			"resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.1.12.tgz",
-			"integrity": "sha512-BIhFpWIn/GkuOa+jnXkp3SDJT2RLYJF6MWpinHIBKFJs7MfrgYZ3zQ1AlhobDEql+bkD1dK4dB5sNcET2T+EyA==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/installations-types": "0.4.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.1.tgz",
+			"integrity": "sha512-X4IBVKajEeaE45zWX0Y1q8ey39aPFLa+BsUoYzsduMzCxcMBIPZd5/lV1EVGt8SN3+unnC2J75flYkxXVlhBoQ==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/installations-types": "0.5.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/installations-types": {
-			"version": "0.4.0",
-			"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.4.0.tgz",
-			"integrity": "sha512-nXxWKQDvBGctuvsizbUEJKfxXU9WAaDhon+j0jpjIfOJkvkj3YHqlLB/HeYjpUn85Pb22BjplpTnDn4Gm9pc3A==",
+			"version": "0.5.0",
+			"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz",
+			"integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==",
 			"requires": {}
 		},
 		"@firebase/logger": {
-			"version": "0.3.3",
-			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.3.3.tgz",
-			"integrity": "sha512-POTJl07jOKTOevLXrTvJD/VZ0M6PnJXflbAh5J9VGkmtXPXNG6MdZ9fmRgqYhXKTaDId6AQenQ262uwgpdtO0Q==",
+			"version": "0.4.0",
+			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz",
+			"integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==",
 			"requires": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/messaging": {
-			"version": "0.9.16",
-			"resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.9.16.tgz",
-			"integrity": "sha512-Yl9gGrAvJF6C1gg3+Cr2HxlL6APsDEkrorkFafmSP1l+rg1epZKoOAcKJbSF02Vtb50wfb9FqGGy8tzodgETxg==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/messaging-interop-types": "0.1.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.12.1",
+			"resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.1.tgz",
+			"integrity": "sha512-/F+2OWarR8TcJJVlQS6zBoHHfXMgfgR0/ukQ3h7Ow3WZ3WZ9+Sj/gvxzothXZm+WtBylfXuhiANFgHEDFL0J0w==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/messaging-interop-types": "0.2.0",
+				"@firebase/util": "1.9.0",
 				"idb": "7.0.1",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/messaging-compat": {
-			"version": "0.1.16",
-			"resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.1.16.tgz",
-			"integrity": "sha512-uG7rWcXJzU8vvlEBFpwG1ndw/GURrrmKcwsHopEWbsPGjMRaVWa7XrdKbvIR7IZohqPzcC/V9L8EeqF4Q4lz8w==",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.1.tgz",
+			"integrity": "sha512-BykvXtAWOs0W4Ik79lNfMKSxaUCtOJ47PJ9Vw2ySHZ14vFFNuDAtRTOBOlAFhUpsHqRoQFvFCkBGsRIQYq8hzw==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/messaging": "0.9.16",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/messaging": "0.12.1",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/messaging-interop-types": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz",
-			"integrity": "sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ=="
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz",
+			"integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ=="
 		},
 		"@firebase/performance": {
-			"version": "0.5.12",
-			"resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.5.12.tgz",
-			"integrity": "sha512-MPVTkOkGrm2SMQgI1FPNBm85y2pPqlPb6VDjIMCWkVpAr6G1IZzUT24yEMySRcIlK/Hh7/Qu1Nu5ASRzRuX6+Q==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.1.tgz",
+			"integrity": "sha512-mT/CWz3CLgyn/a3sO/TJgrTt+RA3DfuvWwGXY9zmIiuBZY2bDi1M2uMefJdJKc9sBUPRajNF6RL10nGYq3BAuQ==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/performance-compat": {
-			"version": "0.1.12",
-			"resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.1.12.tgz",
-			"integrity": "sha512-IBORzUeGY1MGdZnsix9Mu5z4+C3WHIwalu0usxvygL0EZKHztGG8bppYPGH/b5vvg8QyHs9U+Pn1Ot2jZhffQQ==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/performance": "0.5.12",
-				"@firebase/performance-types": "0.1.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.1.tgz",
+			"integrity": "sha512-4mn6eS7r2r+ZAHvU0OHE+3ZO+x6gOVhf2ypBoijuDNaRNjSn9GcvA8udD4IbJ8FNv/k7mbbtA9AdxVb701Lr1g==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/performance": "0.6.1",
+				"@firebase/performance-types": "0.2.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/performance-types": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.1.0.tgz",
-			"integrity": "sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w=="
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz",
+			"integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA=="
 		},
 		"@firebase/remote-config": {
-			"version": "0.3.11",
-			"resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.3.11.tgz",
-			"integrity": "sha512-qA84dstrvVpO7rWT/sb2CLv1kjHVmz59SRFPKohJJYFBcPOGK4Pe4FWWhKAE9yg1Gnl0qYAGkahOwNawq3vE0g==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/installations": "0.5.12",
-				"@firebase/logger": "0.3.3",
-				"@firebase/util": "1.6.3",
+			"version": "0.4.1",
+			"resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.1.tgz",
+			"integrity": "sha512-RCzBH3FjAPRSP3M1T7jdxLYBesIdLtNIQ0fR9ywJpGSSa0kIXEJ9iSZMTP+9pJtaCxz8db07FvjEqg7Y+lgjzg==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/remote-config-compat": {
-			"version": "0.1.12",
-			"resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.1.12.tgz",
-			"integrity": "sha512-Yz7Gtb2rLa7ykXZX9DnSTId8CXd++jFFLW3foUImrYwJEtWgLJc7gwkRfd1M73IlKGNuQAY+DpUNF0n1dLbecA==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/logger": "0.3.3",
-				"@firebase/remote-config": "0.3.11",
-				"@firebase/remote-config-types": "0.2.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.1.tgz",
+			"integrity": "sha512-RPCj7c2Q3QxMgJH3YCt0iD57KppFApghxAGETzlr6Jm6vT7k0vqvk2KgRBgKa4koJBsgwlUtRn2roaCqUEadyg==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/logger": "0.4.0",
+				"@firebase/remote-config": "0.4.1",
+				"@firebase/remote-config-types": "0.3.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/remote-config-types": {
-			"version": "0.2.0",
-			"resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz",
-			"integrity": "sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw=="
+			"version": "0.3.0",
+			"resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz",
+			"integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA=="
 		},
 		"@firebase/storage": {
-			"version": "0.9.9",
-			"resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.9.9.tgz",
-			"integrity": "sha512-Zch7srLT2SIh9y2nCVv/4Kne0HULn7OPkmreY70BJTUJ+g5WLRjggBq6x9fV5ls9V38iqMWfn4prxzX8yIc08A==",
+			"version": "0.10.1",
+			"resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.10.1.tgz",
+			"integrity": "sha512-eN4ME+TFCh5KfyG9uo8PhE6cgKjK5Rb9eucQg1XEyLHMiaZiUv2xSuWehJn0FaL+UdteoaWKuRUZ4WXRDskXrA==",
 			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/util": "1.6.3",
+				"@firebase/component": "0.6.1",
+				"@firebase/util": "1.9.0",
 				"node-fetch": "2.6.7",
 				"tslib": "^2.1.0"
 			},
@@ -9942,35 +12677,35 @@
 			}
 		},
 		"@firebase/storage-compat": {
-			"version": "0.1.17",
-			"resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.1.17.tgz",
-			"integrity": "sha512-nOYmnpI0gwoz5nROseMi9WbmHGf+xumfsOvdPyMZAjy0VqbDnpKIwmTUZQBdR+bLuB5oIkHQsvw9nbb1SH+PzQ==",
-			"requires": {
-				"@firebase/component": "0.5.17",
-				"@firebase/storage": "0.9.9",
-				"@firebase/storage-types": "0.6.0",
-				"@firebase/util": "1.6.3",
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.2.1.tgz",
+			"integrity": "sha512-H0oFdYsMn2Z6tP9tlVERBkJiZsCbFAcl3Li1dnpvDg9g323egdjCnUUgH/tJODRR/Y84iZSNRkg4FvHDVI/o7Q==",
+			"requires": {
+				"@firebase/component": "0.6.1",
+				"@firebase/storage": "0.10.1",
+				"@firebase/storage-types": "0.7.0",
+				"@firebase/util": "1.9.0",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/storage-types": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.6.0.tgz",
-			"integrity": "sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA==",
+			"version": "0.7.0",
+			"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.7.0.tgz",
+			"integrity": "sha512-n/8pYd82hc9XItV3Pa2KGpnuJ/2h/n/oTAaBberhe6GeyWQPnsmwwRK94W3GxUwBA/ZsszBAYZd7w7tTE+6XXA==",
 			"requires": {}
 		},
 		"@firebase/util": {
-			"version": "1.6.3",
-			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.6.3.tgz",
-			"integrity": "sha512-FujteO6Zjv6v8A4HS+t7c+PjU0Kaxj+rOnka0BsI/twUaCC9t8EQPmXpWZdk7XfszfahJn2pqsflUWUhtUkRlg==",
+			"version": "1.9.0",
+			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.0.tgz",
+			"integrity": "sha512-oeoq/6Sr9btbwUQs5HPfeww97bf7qgBbkknbDTXpRaph2LZ23O9XLCE5tJy856SBmGQfO4xBZP8dyryLLM2nSQ==",
 			"requires": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/webchannel-wrapper": {
-			"version": "0.6.2",
-			"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.6.2.tgz",
-			"integrity": "sha512-zThUKcqIU6utWzM93uEvhlh8qj8A5LMPFJPvk/ODb+8GSSif19xM2Lw1M2ijyBy8+6skSkQBbavPzOU5Oh/8tQ=="
+			"version": "0.9.0",
+			"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz",
+			"integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg=="
 		},
 		"@graphql-typed-document-node/core": {
 			"version": "3.1.1",
@@ -9979,18 +12714,18 @@
 			"requires": {}
 		},
 		"@grpc/grpc-js": {
-			"version": "1.6.12",
-			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz",
-			"integrity": "sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==",
+			"version": "1.7.3",
+			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz",
+			"integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==",
 			"requires": {
 				"@grpc/proto-loader": "^0.7.0",
 				"@types/node": ">=12.12.47"
 			},
 			"dependencies": {
 				"@grpc/proto-loader": {
-					"version": "0.7.2",
-					"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.2.tgz",
-					"integrity": "sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA==",
+					"version": "0.7.4",
+					"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz",
+					"integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==",
 					"requires": {
 						"@types/long": "^4.0.1",
 						"lodash.camelcase": "^4.3.0",
@@ -10000,9 +12735,9 @@
 					}
 				},
 				"protobufjs": {
-					"version": "7.1.0",
-					"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.0.tgz",
-					"integrity": "sha512-rCuxKlh0UQKSMjrpIcTLbR5TtGQ52cgs1a5nUoPBAKOccdPblN67BJtjrbtudUJK6HmBvUdsmymyYOzO7lxZEA==",
+					"version": "7.1.2",
+					"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz",
+					"integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==",
 					"requires": {
 						"@protobufjs/aspromise": "^1.1.2",
 						"@protobufjs/base64": "^1.1.2",
@@ -10019,9 +12754,9 @@
 					},
 					"dependencies": {
 						"long": {
-							"version": "5.2.0",
-							"resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz",
-							"integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w=="
+							"version": "5.2.1",
+							"resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz",
+							"integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A=="
 						}
 					}
 				}
@@ -10108,6 +12843,162 @@
 				"@lukeed/csprng": "^1.0.0"
 			}
 		},
+		"@metamask/detect-provider": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/@metamask/detect-provider/-/detect-provider-1.2.0.tgz",
+			"integrity": "sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ=="
+		},
+		"@moralisweb3/api-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/api-utils/-/api-utils-2.11.1.tgz",
+			"integrity": "sha512-79p6OG/fT5DY6rlkhnyUf2bSFscKOt4Y9KWF0QpwpDbfBRgjBE3RO+KhoWeV/r3auWQegpXjSHxA3C7wpeAihA==",
+			"requires": {
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"axios": "^1.2.1"
+			}
+		},
+		"@moralisweb3/auth": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/auth/-/auth-2.11.1.tgz",
+			"integrity": "sha512-me6c4mFAiW246fAU8XrWGeaQWtsfB4g+WEc/Dnbu0+rFF0n52Fl73jI0YXlrFZUwZ/oj4gD9IhNg7DNc1S2R9w==",
+			"requires": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-auth-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1"
+			}
+		},
+		"@moralisweb3/client-firebase-auth-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/client-firebase-auth-utils/-/client-firebase-auth-utils-2.11.1.tgz",
+			"integrity": "sha512-61UHyxGRtnEa8UqT/gPX0krR/ADq1YZe2lRlAr7plOysgEVYg1dhnUJESE6llh4OSJLXXTIunrbA2LbG6LljAg==",
+			"requires": {
+				"firebase": "^9.15.0"
+			}
+		},
+		"@moralisweb3/client-firebase-evm-auth": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/client-firebase-evm-auth/-/client-firebase-evm-auth-2.11.1.tgz",
+			"integrity": "sha512-cHJyGW9nbPVHS4U3KztF/vERg21ajbrKP7WyNAno3+ZCKiHWv+9ivnyRBE8hL0euodL5JFu/3M+BqRQMqKE5Nw==",
+			"requires": {
+				"@ethersproject/providers": "^5.7.1",
+				"@metamask/detect-provider": "^1.2.0",
+				"@moralisweb3/client-firebase-auth-utils": "^2.11.1",
+				"firebase": "^9.15.0"
+			}
+		},
+		"@moralisweb3/common-auth-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-auth-utils/-/common-auth-utils-2.11.1.tgz",
+			"integrity": "sha512-ZqRJK59OOvsdtHkg96wZik1eT1QVxC2J1oI96NZcsdHv3vz5oGrffssqM9BQfOQ6H8copztJbDADlV6O1Htk7A==",
+			"requires": {
+				"@ethersproject/abi": "^5.7.0",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6"
+			}
+		},
+		"@moralisweb3/common-core": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-core/-/common-core-2.11.1.tgz",
+			"integrity": "sha512-xDIGfd+XU7UAl54ylJ9cJr2ZhYFoUWiMykt+IqYbJfxC17jZ6S1ZM2+1aHS1ENyIk10ARNIKPJWUlN30eIqWJA==",
+			"requires": {
+				"axios": "^1.2.1",
+				"eventemitter3": "^4.0.7",
+				"typed-emitter": "^2.1.0"
+			}
+		},
+		"@moralisweb3/common-evm-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-evm-utils/-/common-evm-utils-2.11.1.tgz",
+			"integrity": "sha512-gFzRDbwgR6y8K7JwQaaI8QDopvtMdr3uysl/SUGejJGVMYuo/RTwyfPdiNpsa9t93a1kdsI3CdsDnYDp488R0g==",
+			"requires": {
+				"@ethersproject/address": "^5.7.0",
+				"@ethersproject/bytes": "^5.6.0",
+				"@ethersproject/transactions": "^5.6.0",
+				"@moralisweb3/common-core": "^2.11.1"
+			}
+		},
+		"@moralisweb3/common-sol-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-sol-utils/-/common-sol-utils-2.11.1.tgz",
+			"integrity": "sha512-UaKcFEkq9Ld+B0puUK434+W8Tsw2+Rhiac22IwltFd1wIdpImKWJoQqJz3owm5JmhPEpBsYj4snDQyQK/0363w==",
+			"requires": {
+				"@moralisweb3/common-core": "^2.11.1",
+				"@solana/web3.js": "^1.56.2"
+			}
+		},
+		"@moralisweb3/common-streams-utils": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/common-streams-utils/-/common-streams-utils-2.11.1.tgz",
+			"integrity": "sha512-3tnATXWrX7pw7duRYNIXOpXkW9mWPOae09Yn16VIsFIA3XS/XLbvsScWZ1ZrtMveHkx5icvbwokvuzGz7hXv6Q==",
+			"requires": {
+				"@ethersproject/abi": "^5.7.0",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6"
+			}
+		},
+		"@moralisweb3/evm-api": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/evm-api/-/evm-api-2.11.1.tgz",
+			"integrity": "sha512-mLiwlKX5U9wMcKIQ8+yX4DmsFS2Gjv4sjh/o4dx04luhGbR+tLaiLcuuxsjOOKnHAvMOu82pwppzwEWuQBr0lg==",
+			"requires": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1"
+			}
+		},
+		"@moralisweb3/next": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/next/-/next-2.11.1.tgz",
+			"integrity": "sha512-kY/EEiu3axsCwXmFprF5yxCmz1hQjhlku7vE6SRNR7dif29Df4X9M1tZZawaB0LMCFw1MxKdcCx9NHgWcrTKWg==",
+			"requires": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/auth": "^2.11.1",
+				"@moralisweb3/common-auth-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/evm-api": "^2.11.1",
+				"@moralisweb3/sol-api": "^2.11.1",
+				"axios": "^1.2.1",
+				"moralis": "^2.11.1",
+				"swr": "^1.3.0"
+			}
+		},
+		"@moralisweb3/sol-api": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/sol-api/-/sol-api-2.11.1.tgz",
+			"integrity": "sha512-n6lH4ZhHQJyGZjEvlaf//4sRpMvofNq3Z8O2ldADgm5j5Jay3P7uCG3xANNfaO01rUCl6O9p2o0BI52yvYVsPQ==",
+			"requires": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1"
+			}
+		},
+		"@moralisweb3/streams": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/streams/-/streams-2.11.1.tgz",
+			"integrity": "sha512-Y2ElTE7s5jAN8+/PR8Th/vvpqWo9tnqF00NJmhU+LvUSsw201PZXeRMwYc//FfNliIYN34C9Ac5vQYVk12vW5w==",
+			"requires": {
+				"@ethersproject/abi": "^5.7.0",
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-streams-utils": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6",
+				"ethereumjs-util": "^7.1.0",
+				"ethers": "^5.7.1",
+				"web3-eth-abi": "^1.8.0"
+			}
+		},
+		"@moralisweb3/streams-typings": {
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/@moralisweb3/streams-typings/-/streams-typings-1.0.6.tgz",
+			"integrity": "sha512-+wRVMa795u1EEGovCUKiUnORuDrLDEDW017ElCFtv3hU5xuiFadxBINHqjfwPLY014Hsv3ttlmmcHmAtY2wAIw=="
+		},
 		"@msgpackr-extract/msgpackr-extract-darwin-arm64": {
 			"version": "2.1.2",
 			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.1.2.tgz",
@@ -10144,6 +13035,118 @@
 			"integrity": "sha512-rIZVR48zA8hGkHIK7ED6+ZiXsjRCcAVBJbm8o89OKAMTmEAQ2QvoOxoiu3w2isAaWwzgtQIOFIqHwvZDyLKCvw==",
 			"optional": true
 		},
+		"@next/env": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.4.tgz",
+			"integrity": "sha512-x7ydhMpi9/xX7yVK+Fw33OuwwQWVZUFRxenK3z89fmPzQZyUk35Ynb+b7JkrhfRhDIFFvvqpzVSXeseSlBAw7A==",
+			"peer": true
+		},
+		"@next/swc-android-arm-eabi": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.4.tgz",
+			"integrity": "sha512-5PAchzFst3In6Ml+9APvBj89H29lcPXcUqEYBVv09fWK/V4IuViKc2qOqM9pyPyw7KsqaZPmuqaG595E6jdZLA==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-android-arm64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.4.tgz",
+			"integrity": "sha512-LCLjjRhsQ5fR9ExzR2fqxuyJe/D4Ct/YkdonVfJfqOfkEpFwUTQDOVo5GrQec4LZDk3zY+o6vZYjXbB0nD9VLA==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-darwin-arm64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.4.tgz",
+			"integrity": "sha512-LSc/tF1FQ1y1SwKiCdGg8IIl7+Csk6nuLcLIyQXs24UNYjXg5+7vUQXqE8y66v/Dq8qFDC9rM61QhpM9ZDftbg==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-darwin-x64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.4.tgz",
+			"integrity": "sha512-WoApDo8xfafrNc9+Mz5MwGFKUwbDHsGqLleTGZ8upegwVqDyHsYzqJQudf+loqhV58oGTOqP1eWaHn2J7dijXA==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-freebsd-x64": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.4.tgz",
+			"integrity": "sha512-fqNyeT8G4guN8AHPIoBRhGY2GJg89FyWpuwX4o0Y3vUy/84IGZpNst3paCzaYkQSqQE/AuCpkB7hKxkN7ittXw==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-linux-arm-gnueabihf": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.4.tgz",
+			"integrity": "sha512-MEfm8OC1YR9/tYHUzlQsxcSmiuf8XdO7bqh5VtG4pilScjc5I5t+tQgIDgoDGePfh5W99W23hb3s6oCFrt99rw==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-linux-arm64-gnu": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.4.tgz",
+			"integrity": "sha512-2wgth/KsuODzW/E7jsRoWdhKmE5oZzXcBPvf9RW+ZpBNvYQkEDlzfLA7n8DtxTU8I4oMas0mdEPdCWXrSNnVZw==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-linux-arm64-musl": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.4.tgz",
+			"integrity": "sha512-GdWhCRljsT7rNEElEsdu4RRppd+XaQOX1IJslsh/+HU6LsJGUE8tXpa68yJjCsHZHifkbdZNeCr5SYdsN6CbAA==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-linux-x64-gnu": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.4.tgz",
+			"integrity": "sha512-Rsk/ojwYqMskN2eo5hUSVe7UuMV/aSjmrmJ0BCFGFPfBY9sPgmYj/oXlDDN0y5lJD9acPuiBjknLWgnOnx5JIA==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-linux-x64-musl": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.4.tgz",
+			"integrity": "sha512-gKSVPozedA2gpA+vggYnAqpDuzWFed2oxFeXxHw0aW2ALdAZswAinn1ZwXEQ5fHnVguxjZhH0+2nBxpMdF8p5Q==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-win32-arm64-msvc": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.4.tgz",
+			"integrity": "sha512-+kAXIIVb7Q4LCKmi7dn9qVlG1XUf3Chgj5Rwl0rAP4WBV2TnJIgsOEC24G1Mm3jjif+qXm7SJS9YZ9Yg3Y8sSQ==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-win32-ia32-msvc": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.4.tgz",
+			"integrity": "sha512-EsfzAFBVaw1zg1FzlLMgRaTX/DKY+EnAvJ6mCIJMGeSOPIj4Oy6xF2yEQ3VaRkwFpAafHJH6JNB/CGrdKFCMXw==",
+			"optional": true,
+			"peer": true
+		},
+		"@next/swc-win32-x64-msvc": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.4.tgz",
+			"integrity": "sha512-bygNjmnq+F9NqJXh7OfhJgqu6LGU29GNKQYVyZkxY/h5K0WWUvAE/VL+TdyMwbvQr9KByx5XLwORwetLxXCo4g==",
+			"optional": true,
+			"peer": true
+		},
+		"@noble/ed25519": {
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz",
+			"integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw=="
+		},
+		"@noble/hashes": {
+			"version": "1.1.5",
+			"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz",
+			"integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ=="
+		},
+		"@noble/secp256k1": {
+			"version": "1.7.1",
+			"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
+			"integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw=="
+		},
 		"@nodelib/fs.scandir": {
 			"version": "2.1.5",
 			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -10170,6 +13173,11 @@
 				"fastq": "^1.6.0"
 			}
 		},
+		"@panva/hkdf": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.2.tgz",
+			"integrity": "sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA=="
+		},
 		"@polka/url": {
 			"version": "1.0.0-next.21",
 			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
@@ -10338,6 +13346,67 @@
 			"integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==",
 			"dev": true
 		},
+		"@solana/buffer-layout": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz",
+			"integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==",
+			"requires": {
+				"buffer": "~6.0.3"
+			},
+			"dependencies": {
+				"buffer": {
+					"version": "6.0.3",
+					"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+					"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+					"requires": {
+						"base64-js": "^1.3.1",
+						"ieee754": "^1.2.1"
+					}
+				}
+			}
+		},
+		"@solana/web3.js": {
+			"version": "1.73.0",
+			"resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz",
+			"integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==",
+			"requires": {
+				"@babel/runtime": "^7.12.5",
+				"@noble/ed25519": "^1.7.0",
+				"@noble/hashes": "^1.1.2",
+				"@noble/secp256k1": "^1.6.3",
+				"@solana/buffer-layout": "^4.0.0",
+				"agentkeepalive": "^4.2.1",
+				"bigint-buffer": "^1.1.5",
+				"bn.js": "^5.0.0",
+				"borsh": "^0.7.0",
+				"bs58": "^4.0.1",
+				"buffer": "6.0.1",
+				"fast-stable-stringify": "^1.0.0",
+				"jayson": "^3.4.4",
+				"node-fetch": "2",
+				"rpc-websockets": "^7.5.0",
+				"superstruct": "^0.14.2"
+			},
+			"dependencies": {
+				"buffer": {
+					"version": "6.0.1",
+					"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz",
+					"integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==",
+					"requires": {
+						"base64-js": "^1.3.1",
+						"ieee754": "^1.2.1"
+					}
+				},
+				"node-fetch": {
+					"version": "2.6.8",
+					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz",
+					"integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==",
+					"requires": {
+						"whatwg-url": "^5.0.0"
+					}
+				}
+			}
+		},
 		"@sveltejs/adapter-node": {
 			"version": "1.0.0-next.88",
 			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.88.tgz",
@@ -10381,6 +13450,23 @@
 				"svelte-hmr": "^0.14.12"
 			}
 		},
+		"@swc/helpers": {
+			"version": "0.4.14",
+			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
+			"integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
+			"peer": true,
+			"requires": {
+				"tslib": "^2.4.0"
+			}
+		},
+		"@types/bn.js": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz",
+			"integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==",
+			"requires": {
+				"@types/node": "*"
+			}
+		},
 		"@types/bull": {
 			"version": "3.15.9",
 			"resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.15.9.tgz",
@@ -10391,6 +13477,14 @@
 				"@types/redis": "^2.8.0"
 			}
 		},
+		"@types/connect": {
+			"version": "3.4.35",
+			"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
+			"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+			"requires": {
+				"@types/node": "*"
+			}
+		},
 		"@types/glob": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
@@ -10432,6 +13526,14 @@
 			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.16.tgz",
 			"integrity": "sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg=="
 		},
+		"@types/pbkdf2": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
+			"integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
+			"requires": {
+				"@types/node": "*"
+			}
+		},
 		"@types/pug": {
 			"version": "2.0.6",
 			"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
@@ -10470,12 +13572,28 @@
 				"@types/node": "*"
 			}
 		},
+		"@types/secp256k1": {
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz",
+			"integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==",
+			"requires": {
+				"@types/node": "*"
+			}
+		},
 		"@types/svgo": {
 			"version": "1.3.6",
 			"resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz",
 			"integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==",
 			"dev": true
 		},
+		"@types/ws": {
+			"version": "7.4.7",
+			"resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
+			"integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
+			"requires": {
+				"@types/node": "*"
+			}
+		},
 		"@typescript-eslint/eslint-plugin": {
 			"version": "5.36.2",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz",
@@ -10594,6 +13712,28 @@
 			"dev": true,
 			"requires": {}
 		},
+		"aes-js": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+			"integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
+		},
+		"agentkeepalive": {
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
+			"integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
+			"requires": {
+				"debug": "^4.1.0",
+				"depd": "^1.1.2",
+				"humanize-ms": "^1.2.1"
+			},
+			"dependencies": {
+				"depd": {
+					"version": "1.1.2",
+					"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+					"integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+				}
+			}
+		},
 		"ajv": {
 			"version": "6.12.6",
 			"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -10714,16 +13854,45 @@
 			"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
 			"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
 		},
+		"axios": {
+			"version": "1.2.3",
+			"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz",
+			"integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==",
+			"requires": {
+				"follow-redirects": "^1.15.0",
+				"form-data": "^4.0.0",
+				"proxy-from-env": "^1.1.0"
+			},
+			"dependencies": {
+				"form-data": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+					"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+					"requires": {
+						"asynckit": "^0.4.0",
+						"combined-stream": "^1.0.8",
+						"mime-types": "^2.1.12"
+					}
+				}
+			}
+		},
 		"balanced-match": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
 		},
+		"base-x": {
+			"version": "3.0.9",
+			"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+			"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+			"requires": {
+				"safe-buffer": "^5.0.1"
+			}
+		},
 		"base64-js": {
 			"version": "1.5.1",
 			"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
-			"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-			"dev": true
+			"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
 		},
 		"bcrypt-pbkdf": {
 			"version": "1.0.2",
@@ -10733,6 +13902,19 @@
 				"tweetnacl": "^0.14.3"
 			}
 		},
+		"bech32": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+			"integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
+		},
+		"bigint-buffer": {
+			"version": "1.1.5",
+			"resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz",
+			"integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==",
+			"requires": {
+				"bindings": "^1.3.0"
+			}
+		},
 		"bin-build": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
@@ -11216,6 +14398,14 @@
 			"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
 			"dev": true
 		},
+		"bindings": {
+			"version": "1.5.0",
+			"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+			"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+			"requires": {
+				"file-uri-to-path": "1.0.0"
+			}
+		},
 		"bl": {
 			"version": "1.2.3",
 			"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
@@ -11226,6 +14416,16 @@
 				"safe-buffer": "^5.1.1"
 			}
 		},
+		"blakejs": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+			"integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
+		},
+		"bn.js": {
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+			"integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+		},
 		"body-parser": {
 			"version": "1.20.0",
 			"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
@@ -11271,10 +14471,21 @@
 			"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
 			"dev": true
 		},
+		"borsh": {
+			"version": "0.7.0",
+			"resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz",
+			"integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==",
+			"requires": {
+				"bn.js": "^5.2.0",
+				"bs58": "^4.0.0",
+				"text-encoding-utf-8": "^1.0.2"
+			}
+		},
 		"brace-expansion": {
 			"version": "1.1.11",
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 			"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+			"dev": true,
 			"requires": {
 				"balanced-match": "^1.0.0",
 				"concat-map": "0.0.1"
@@ -11289,6 +14500,42 @@
 				"fill-range": "^7.0.1"
 			}
 		},
+		"brorand": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+			"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+		},
+		"browserify-aes": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+			"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+			"requires": {
+				"buffer-xor": "^1.0.3",
+				"cipher-base": "^1.0.0",
+				"create-hash": "^1.1.0",
+				"evp_bytestokey": "^1.0.3",
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.0.1"
+			}
+		},
+		"bs58": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+			"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+			"requires": {
+				"base-x": "^3.0.2"
+			}
+		},
+		"bs58check": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+			"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+			"requires": {
+				"bs58": "^4.0.0",
+				"create-hash": "^1.1.0",
+				"safe-buffer": "^5.1.2"
+			}
+		},
 		"buffer": {
 			"version": "5.7.1",
 			"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -11327,6 +14574,20 @@
 			"integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
 			"dev": true
 		},
+		"buffer-xor": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+			"integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
+		},
+		"bufferutil": {
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
+			"integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
+			"optional": true,
+			"requires": {
+				"node-gyp-build": "^4.3.0"
+			}
+		},
 		"bull": {
 			"version": "4.9.0",
 			"resolved": "https://registry.npmjs.org/bull/-/bull-4.9.0.tgz",
@@ -11467,6 +14728,12 @@
 			"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
 			"dev": true
 		},
+		"caniuse-lite": {
+			"version": "1.0.30001446",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz",
+			"integrity": "sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==",
+			"peer": true
+		},
 		"caseless": {
 			"version": "0.12.0",
 			"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -11521,6 +14788,21 @@
 				}
 			}
 		},
+		"cipher-base": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+			"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+			"requires": {
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.0.1"
+			}
+		},
+		"client-only": {
+			"version": "0.0.1",
+			"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+			"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+			"peer": true
+		},
 		"cliui": {
 			"version": "7.0.4",
 			"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -11647,8 +14929,7 @@
 		"commander": {
 			"version": "2.20.3",
 			"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-			"dev": true
+			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
 		},
 		"compressible": {
 			"version": "2.0.18",
@@ -11690,7 +14971,8 @@
 		"concat-map": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+			"dev": true
 		},
 		"config-chain": {
 			"version": "1.1.13",
@@ -11735,7 +15017,33 @@
 		"core-util-is": {
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
-			"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+			"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+			"dev": true
+		},
+		"create-hash": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+			"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+			"requires": {
+				"cipher-base": "^1.0.1",
+				"inherits": "^2.0.1",
+				"md5.js": "^1.3.4",
+				"ripemd160": "^2.0.1",
+				"sha.js": "^2.4.0"
+			}
+		},
+		"create-hmac": {
+			"version": "1.1.7",
+			"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+			"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+			"requires": {
+				"cipher-base": "^1.0.3",
+				"create-hash": "^1.1.0",
+				"inherits": "^2.0.1",
+				"ripemd160": "^2.0.0",
+				"safe-buffer": "^5.0.1",
+				"sha.js": "^2.4.8"
+			}
 		},
 		"cron-parser": {
 			"version": "4.6.0",
@@ -12069,6 +15377,11 @@
 				"object-keys": "^1.1.1"
 			}
 		},
+		"delay": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
+			"integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="
+		},
 		"delayed-stream": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -12221,6 +15534,27 @@
 			"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
 			"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
 		},
+		"elliptic": {
+			"version": "6.5.4",
+			"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+			"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+			"requires": {
+				"bn.js": "^4.11.9",
+				"brorand": "^1.1.0",
+				"hash.js": "^1.0.0",
+				"hmac-drbg": "^1.0.1",
+				"inherits": "^2.0.4",
+				"minimalistic-assert": "^1.0.1",
+				"minimalistic-crypto-utils": "^1.0.1"
+			},
+			"dependencies": {
+				"bn.js": {
+					"version": "4.12.0",
+					"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+					"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+				}
+			}
+		},
 		"emoji-regex": {
 			"version": "8.0.0",
 			"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -12306,6 +15640,21 @@
 			"integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
 			"dev": true
 		},
+		"es6-promisify": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+			"integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
+			"requires": {
+				"es6-promise": "^4.0.3"
+			},
+			"dependencies": {
+				"es6-promise": {
+					"version": "4.2.8",
+					"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+					"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+				}
+			}
+		},
 		"esbuild": {
 			"version": "0.14.54",
 			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz",
@@ -12677,6 +16026,115 @@
 			"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
 			"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
 		},
+		"ethereum-bloom-filters": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz",
+			"integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==",
+			"requires": {
+				"js-sha3": "^0.8.0"
+			}
+		},
+		"ethereum-cryptography": {
+			"version": "0.1.3",
+			"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+			"integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+			"requires": {
+				"@types/pbkdf2": "^3.0.0",
+				"@types/secp256k1": "^4.0.1",
+				"blakejs": "^1.1.0",
+				"browserify-aes": "^1.2.0",
+				"bs58check": "^2.1.2",
+				"create-hash": "^1.2.0",
+				"create-hmac": "^1.1.7",
+				"hash.js": "^1.1.7",
+				"keccak": "^3.0.0",
+				"pbkdf2": "^3.0.17",
+				"randombytes": "^2.1.0",
+				"safe-buffer": "^5.1.2",
+				"scrypt-js": "^3.0.0",
+				"secp256k1": "^4.0.1",
+				"setimmediate": "^1.0.5"
+			}
+		},
+		"ethereumjs-util": {
+			"version": "7.1.5",
+			"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+			"integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
+			"requires": {
+				"@types/bn.js": "^5.1.0",
+				"bn.js": "^5.1.2",
+				"create-hash": "^1.1.2",
+				"ethereum-cryptography": "^0.1.3",
+				"rlp": "^2.2.4"
+			}
+		},
+		"ethers": {
+			"version": "5.7.2",
+			"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
+			"integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==",
+			"requires": {
+				"@ethersproject/abi": "5.7.0",
+				"@ethersproject/abstract-provider": "5.7.0",
+				"@ethersproject/abstract-signer": "5.7.0",
+				"@ethersproject/address": "5.7.0",
+				"@ethersproject/base64": "5.7.0",
+				"@ethersproject/basex": "5.7.0",
+				"@ethersproject/bignumber": "5.7.0",
+				"@ethersproject/bytes": "5.7.0",
+				"@ethersproject/constants": "5.7.0",
+				"@ethersproject/contracts": "5.7.0",
+				"@ethersproject/hash": "5.7.0",
+				"@ethersproject/hdnode": "5.7.0",
+				"@ethersproject/json-wallets": "5.7.0",
+				"@ethersproject/keccak256": "5.7.0",
+				"@ethersproject/logger": "5.7.0",
+				"@ethersproject/networks": "5.7.1",
+				"@ethersproject/pbkdf2": "5.7.0",
+				"@ethersproject/properties": "5.7.0",
+				"@ethersproject/providers": "5.7.2",
+				"@ethersproject/random": "5.7.0",
+				"@ethersproject/rlp": "5.7.0",
+				"@ethersproject/sha2": "5.7.0",
+				"@ethersproject/signing-key": "5.7.0",
+				"@ethersproject/solidity": "5.7.0",
+				"@ethersproject/strings": "5.7.0",
+				"@ethersproject/transactions": "5.7.0",
+				"@ethersproject/units": "5.7.0",
+				"@ethersproject/wallet": "5.7.0",
+				"@ethersproject/web": "5.7.1",
+				"@ethersproject/wordlists": "5.7.0"
+			}
+		},
+		"ethjs-unit": {
+			"version": "0.1.6",
+			"resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+			"integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
+			"requires": {
+				"bn.js": "4.11.6",
+				"number-to-bn": "1.7.0"
+			},
+			"dependencies": {
+				"bn.js": {
+					"version": "4.11.6",
+					"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+					"integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
+				}
+			}
+		},
+		"eventemitter3": {
+			"version": "4.0.7",
+			"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+			"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+		},
+		"evp_bytestokey": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+			"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+			"requires": {
+				"md5.js": "^1.3.4",
+				"safe-buffer": "^5.1.1"
+			}
+		},
 		"execa": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
@@ -12808,6 +16266,11 @@
 			"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
 			"integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
 		},
+		"eyes": {
+			"version": "0.1.8",
+			"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+			"integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="
+		},
 		"fast-deep-equal": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -12848,6 +16311,11 @@
 			"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
 			"dev": true
 		},
+		"fast-stable-stringify": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz",
+			"integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="
+		},
 		"fastq": {
 			"version": "1.13.0",
 			"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
@@ -12899,6 +16367,11 @@
 			"integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==",
 			"dev": true
 		},
+		"file-uri-to-path": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+			"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+		},
 		"filename-reserved-regex": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
@@ -12974,36 +16447,36 @@
 			}
 		},
 		"firebase": {
-			"version": "9.9.4",
-			"resolved": "https://registry.npmjs.org/firebase/-/firebase-9.9.4.tgz",
-			"integrity": "sha512-XRfCw54nNGYUYNYi5PLJ6rcERN2M+aS32f6caYEx9GhCp9ndgHHzBL9BpPohUpEpKPtHA75EqYNf8kuR0HQndA==",
-			"requires": {
-				"@firebase/analytics": "0.8.0",
-				"@firebase/analytics-compat": "0.1.13",
-				"@firebase/app": "0.7.32",
-				"@firebase/app-check": "0.5.12",
-				"@firebase/app-check-compat": "0.2.12",
-				"@firebase/app-compat": "0.1.33",
-				"@firebase/app-types": "0.7.0",
-				"@firebase/auth": "0.20.6",
-				"@firebase/auth-compat": "0.2.19",
-				"@firebase/database": "0.13.6",
-				"@firebase/database-compat": "0.2.6",
-				"@firebase/firestore": "3.4.15",
-				"@firebase/firestore-compat": "0.1.24",
-				"@firebase/functions": "0.8.4",
-				"@firebase/functions-compat": "0.2.4",
-				"@firebase/installations": "0.5.12",
-				"@firebase/installations-compat": "0.1.12",
-				"@firebase/messaging": "0.9.16",
-				"@firebase/messaging-compat": "0.1.16",
-				"@firebase/performance": "0.5.12",
-				"@firebase/performance-compat": "0.1.12",
-				"@firebase/remote-config": "0.3.11",
-				"@firebase/remote-config-compat": "0.1.12",
-				"@firebase/storage": "0.9.9",
-				"@firebase/storage-compat": "0.1.17",
-				"@firebase/util": "1.6.3"
+			"version": "9.16.0",
+			"resolved": "https://registry.npmjs.org/firebase/-/firebase-9.16.0.tgz",
+			"integrity": "sha512-nNLpDwJvfP3crRc6AjnHH46TAkFzk8zimNVMJfYRCwAf5amOSGyU8duuc3IsJF6dQGiYLSfzfr2tMCsQa+rhKQ==",
+			"requires": {
+				"@firebase/analytics": "0.9.1",
+				"@firebase/analytics-compat": "0.2.1",
+				"@firebase/app": "0.9.1",
+				"@firebase/app-check": "0.6.1",
+				"@firebase/app-check-compat": "0.3.1",
+				"@firebase/app-compat": "0.2.1",
+				"@firebase/app-types": "0.9.0",
+				"@firebase/auth": "0.21.1",
+				"@firebase/auth-compat": "0.3.1",
+				"@firebase/database": "0.14.1",
+				"@firebase/database-compat": "0.3.1",
+				"@firebase/firestore": "3.8.1",
+				"@firebase/firestore-compat": "0.3.1",
+				"@firebase/functions": "0.9.1",
+				"@firebase/functions-compat": "0.3.1",
+				"@firebase/installations": "0.6.1",
+				"@firebase/installations-compat": "0.2.1",
+				"@firebase/messaging": "0.12.1",
+				"@firebase/messaging-compat": "0.2.1",
+				"@firebase/performance": "0.6.1",
+				"@firebase/performance-compat": "0.2.1",
+				"@firebase/remote-config": "0.4.1",
+				"@firebase/remote-config-compat": "0.2.1",
+				"@firebase/storage": "0.10.1",
+				"@firebase/storage-compat": "0.2.1",
+				"@firebase/util": "1.9.0"
 			}
 		},
 		"flat-cache": {
@@ -13022,6 +16495,11 @@
 			"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
 			"dev": true
 		},
+		"follow-redirects": {
+			"version": "1.15.2",
+			"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+			"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
+		},
 		"forever-agent": {
 			"version": "0.6.1",
 			"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -13202,6 +16680,7 @@
 			"version": "7.2.3",
 			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
 			"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+			"dev": true,
 			"requires": {
 				"fs.realpath": "^1.0.0",
 				"inflight": "^1.0.4",
@@ -13406,11 +16885,57 @@
 				"has-symbols": "^1.0.2"
 			}
 		},
+		"hash-base": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+			"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+			"requires": {
+				"inherits": "^2.0.4",
+				"readable-stream": "^3.6.0",
+				"safe-buffer": "^5.2.0"
+			},
+			"dependencies": {
+				"readable-stream": {
+					"version": "3.6.0",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+					"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+					"requires": {
+						"inherits": "^2.0.3",
+						"string_decoder": "^1.1.1",
+						"util-deprecate": "^1.0.1"
+					}
+				},
+				"safe-buffer": {
+					"version": "5.2.1",
+					"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+					"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+				}
+			}
+		},
+		"hash.js": {
+			"version": "1.1.7",
+			"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+			"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+			"requires": {
+				"inherits": "^2.0.3",
+				"minimalistic-assert": "^1.0.1"
+			}
+		},
 		"heroku-ssl-redirect": {
 			"version": "0.1.1",
 			"resolved": "https://registry.npmjs.org/heroku-ssl-redirect/-/heroku-ssl-redirect-0.1.1.tgz",
 			"integrity": "sha512-kL/DvLR2J53iB3TXasQlo5JwF/j2L2zkala6Ddk9o6JwIPeDvbTGT9Aty8WElxcF389ObICCeyf2m7RKpCg5Bg=="
 		},
+		"hmac-drbg": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+			"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+			"requires": {
+				"hash.js": "^1.0.3",
+				"minimalistic-assert": "^1.0.0",
+				"minimalistic-crypto-utils": "^1.0.1"
+			}
+		},
 		"http-cache-semantics": {
 			"version": "3.8.1",
 			"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
@@ -13450,6 +16975,14 @@
 			"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
 			"dev": true
 		},
+		"humanize-ms": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+			"integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+			"requires": {
+				"ms": "^2.0.0"
+			}
+		},
 		"iconv-lite": {
 			"version": "0.4.24",
 			"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -13466,8 +16999,7 @@
 		"ieee754": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-			"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-			"dev": true
+			"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
 		},
 		"ignore": {
 			"version": "5.2.0",
@@ -13521,11 +17053,6 @@
 				"pngquant-bin": "^6.0.0"
 			}
 		},
-		"immediate": {
-			"version": "3.0.6",
-			"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
-			"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
-		},
 		"import-fresh": {
 			"version": "3.3.0",
 			"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -13692,6 +17219,11 @@
 				"is-extglob": "^2.1.1"
 			}
 		},
+		"is-hex-prefixed": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+			"integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA=="
+		},
 		"is-natural-number": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
@@ -13803,7 +17335,8 @@
 		"isarray": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-			"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+			"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+			"dev": true
 		},
 		"isexe": {
 			"version": "2.0.0",
@@ -13811,6 +17344,12 @@
 			"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
 			"dev": true
 		},
+		"isomorphic-ws": {
+			"version": "4.0.1",
+			"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
+			"integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
+			"requires": {}
+		},
 		"isstream": {
 			"version": "0.1.2",
 			"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@@ -13826,11 +17365,60 @@
 				"is-object": "^1.0.1"
 			}
 		},
+		"jayson": {
+			"version": "3.7.0",
+			"resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz",
+			"integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==",
+			"requires": {
+				"@types/connect": "^3.4.33",
+				"@types/node": "^12.12.54",
+				"@types/ws": "^7.4.4",
+				"commander": "^2.20.3",
+				"delay": "^5.0.0",
+				"es6-promisify": "^5.0.0",
+				"eyes": "^0.1.8",
+				"isomorphic-ws": "^4.0.1",
+				"json-stringify-safe": "^5.0.1",
+				"JSONStream": "^1.3.5",
+				"lodash": "^4.17.20",
+				"uuid": "^8.3.2",
+				"ws": "^7.4.5"
+			},
+			"dependencies": {
+				"@types/node": {
+					"version": "12.20.55",
+					"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+					"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
+				},
+				"ws": {
+					"version": "7.5.9",
+					"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+					"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+					"requires": {}
+				}
+			}
+		},
+		"jose": {
+			"version": "4.11.2",
+			"resolved": "https://registry.npmjs.org/jose/-/jose-4.11.2.tgz",
+			"integrity": "sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A=="
+		},
 		"jpeg-js": {
 			"version": "0.4.4",
 			"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
 			"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
 		},
+		"js-sha3": {
+			"version": "0.8.0",
+			"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+			"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
+		},
+		"js-tokens": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+			"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+			"peer": true
+		},
 		"js-yaml": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -13882,6 +17470,20 @@
 				"universalify": "^2.0.0"
 			}
 		},
+		"jsonparse": {
+			"version": "1.3.1",
+			"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+			"integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="
+		},
+		"JSONStream": {
+			"version": "1.3.5",
+			"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+			"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+			"requires": {
+				"jsonparse": "^1.2.0",
+				"through": ">=2.2.7 <3"
+			}
+		},
 		"jsprim": {
 			"version": "1.4.2",
 			"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
@@ -13893,23 +17495,34 @@
 				"verror": "1.10.0"
 			}
 		},
-		"jszip": {
-			"version": "3.10.1",
-			"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
-			"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
-			"requires": {
-				"lie": "~3.3.0",
-				"pako": "~1.0.2",
-				"readable-stream": "~2.3.6",
-				"setimmediate": "^1.0.5"
-			}
-		},
 		"junk": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
 			"integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==",
 			"dev": true
 		},
+		"keccak": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz",
+			"integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==",
+			"requires": {
+				"node-addon-api": "^2.0.0",
+				"node-gyp-build": "^4.2.0",
+				"readable-stream": "^3.6.0"
+			},
+			"dependencies": {
+				"readable-stream": {
+					"version": "3.6.0",
+					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+					"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+					"requires": {
+						"inherits": "^2.0.3",
+						"string_decoder": "^1.1.1",
+						"util-deprecate": "^1.0.1"
+					}
+				}
+			}
+		},
 		"keyv": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
@@ -13935,14 +17548,6 @@
 				"type-check": "~0.4.0"
 			}
 		},
-		"lie": {
-			"version": "3.3.0",
-			"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
-			"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
-			"requires": {
-				"immediate": "~3.0.5"
-			}
-		},
 		"locate-path": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -13988,6 +17593,15 @@
 			"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
 			"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
 		},
+		"loose-envify": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+			"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+			"peer": true,
+			"requires": {
+				"js-tokens": "^3.0.0 || ^4.0.0"
+			}
+		},
 		"lowercase-keys": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
@@ -14033,6 +17647,16 @@
 				}
 			}
 		},
+		"md5.js": {
+			"version": "1.3.5",
+			"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+			"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+			"requires": {
+				"hash-base": "^3.0.0",
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.1.2"
+			}
+		},
 		"mdn-data": {
 			"version": "2.0.4",
 			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
@@ -14113,10 +17737,21 @@
 			"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
 			"dev": true
 		},
+		"minimalistic-assert": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+			"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+		},
+		"minimalistic-crypto-utils": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+			"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+		},
 		"minimatch": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
 			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+			"dev": true,
 			"requires": {
 				"brace-expansion": "^1.1.7"
 			}
@@ -14136,6 +17771,24 @@
 				"minimist": "^1.2.6"
 			}
 		},
+		"moralis": {
+			"version": "2.11.1",
+			"resolved": "https://registry.npmjs.org/moralis/-/moralis-2.11.1.tgz",
+			"integrity": "sha512-VLzj8zLCVbNOQiiatZ7aAPRhqDrxbVnW5uzr/FLFDdDfcSM21hiiM0CEWbqk5vz32nPn/gYRLGGB0ar2yRRnBA==",
+			"requires": {
+				"@moralisweb3/api-utils": "^2.11.1",
+				"@moralisweb3/auth": "^2.11.1",
+				"@moralisweb3/common-auth-utils": "^2.11.1",
+				"@moralisweb3/common-core": "^2.11.1",
+				"@moralisweb3/common-evm-utils": "^2.11.1",
+				"@moralisweb3/common-sol-utils": "^2.11.1",
+				"@moralisweb3/common-streams-utils": "^2.11.1",
+				"@moralisweb3/evm-api": "^2.11.1",
+				"@moralisweb3/sol-api": "^2.11.1",
+				"@moralisweb3/streams": "^2.11.1",
+				"@moralisweb3/streams-typings": "^1.0.6"
+			}
+		},
 		"mri": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -14179,8 +17832,7 @@
 		"nanoid": {
 			"version": "3.3.4",
 			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
-			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
-			"dev": true
+			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
 		},
 		"natural-compare": {
 			"version": "1.4.0",
@@ -14211,12 +17863,72 @@
 			"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
 			"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
 		},
+		"next": {
+			"version": "13.1.4",
+			"resolved": "https://registry.npmjs.org/next/-/next-13.1.4.tgz",
+			"integrity": "sha512-g0oBUU+tcOPKbXTVdsDO2adc6wd/ggqauHHysPQJxuIKqZ+fwICGJht0C5D5V0A/77eQDF5EFwNdAHkFvBDsog==",
+			"peer": true,
+			"requires": {
+				"@next/env": "13.1.4",
+				"@next/swc-android-arm-eabi": "13.1.4",
+				"@next/swc-android-arm64": "13.1.4",
+				"@next/swc-darwin-arm64": "13.1.4",
+				"@next/swc-darwin-x64": "13.1.4",
+				"@next/swc-freebsd-x64": "13.1.4",
+				"@next/swc-linux-arm-gnueabihf": "13.1.4",
+				"@next/swc-linux-arm64-gnu": "13.1.4",
+				"@next/swc-linux-arm64-musl": "13.1.4",
+				"@next/swc-linux-x64-gnu": "13.1.4",
+				"@next/swc-linux-x64-musl": "13.1.4",
+				"@next/swc-win32-arm64-msvc": "13.1.4",
+				"@next/swc-win32-ia32-msvc": "13.1.4",
+				"@next/swc-win32-x64-msvc": "13.1.4",
+				"@swc/helpers": "0.4.14",
+				"caniuse-lite": "^1.0.30001406",
+				"postcss": "8.4.14",
+				"styled-jsx": "5.1.1"
+			},
+			"dependencies": {
+				"postcss": {
+					"version": "8.4.14",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+					"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
+					"peer": true,
+					"requires": {
+						"nanoid": "^3.3.4",
+						"picocolors": "^1.0.0",
+						"source-map-js": "^1.0.2"
+					}
+				}
+			}
+		},
+		"next-auth": {
+			"version": "4.18.8",
+			"resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.18.8.tgz",
+			"integrity": "sha512-USP8ihmvB7iCGtkS0+toe2QPrzdbZfkydQZX56JOI9Ft5n/BardOXh3D4wQ2An+vpq/jDKojGlgfv21wVElW7A==",
+			"requires": {
+				"@babel/runtime": "^7.16.3",
+				"@panva/hkdf": "^1.0.1",
+				"cookie": "^0.5.0",
+				"jose": "^4.9.3",
+				"oauth": "^0.9.15",
+				"openid-client": "^5.1.0",
+				"preact": "^10.6.3",
+				"preact-render-to-string": "^5.1.19",
+				"uuid": "^8.3.2"
+			}
+		},
 		"nice-try": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
 			"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
 			"dev": true
 		},
+		"node-addon-api": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+			"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
+		},
 		"node-bitmap": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz",
@@ -14247,6 +17959,11 @@
 				}
 			}
 		},
+		"node-gyp-build": {
+			"version": "4.6.0",
+			"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+			"integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ=="
+		},
 		"node-gyp-build-optional-packages": {
 			"version": "5.0.3",
 			"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz",
@@ -14323,6 +18040,27 @@
 				"boolbase": "~1.0.0"
 			}
 		},
+		"number-to-bn": {
+			"version": "1.7.0",
+			"resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+			"integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
+			"requires": {
+				"bn.js": "4.11.6",
+				"strip-hex-prefix": "1.0.0"
+			},
+			"dependencies": {
+				"bn.js": {
+					"version": "4.11.6",
+					"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+					"integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
+				}
+			}
+		},
+		"oauth": {
+			"version": "0.9.15",
+			"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+			"integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
+		},
 		"oauth-sign": {
 			"version": "0.9.0",
 			"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
@@ -14334,6 +18072,11 @@
 			"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
 			"dev": true
 		},
+		"object-hash": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+			"integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
+		},
 		"object-inspect": {
 			"version": "1.12.2",
 			"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
@@ -14380,6 +18123,11 @@
 				"es-abstract": "^1.19.1"
 			}
 		},
+		"oidc-token-hash": {
+			"version": "5.0.1",
+			"resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz",
+			"integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ=="
+		},
 		"omggif": {
 			"version": "1.0.10",
 			"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
@@ -14415,6 +18163,17 @@
 				"mimic-fn": "^2.1.0"
 			}
 		},
+		"openid-client": {
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.3.2.tgz",
+			"integrity": "sha512-nXXt+cna0XHOw+WqjMZOmuXw/YZEMwfWD2lD7tCsFtsBjMQGVXA+NZABA3upYBET1suhIsmfd7GnxG4jCAnvYQ==",
+			"requires": {
+				"jose": "^4.10.0",
+				"lru-cache": "^6.0.0",
+				"object-hash": "^2.0.1",
+				"oidc-token-hash": "^5.0.1"
+			}
+		},
 		"optionator": {
 			"version": "0.9.1",
 			"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -14544,11 +18303,6 @@
 				"p-finally": "^1.0.0"
 			}
 		},
-		"pako": {
-			"version": "1.0.11",
-			"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
-			"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
-		},
 		"parent-module": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -14580,7 +18334,8 @@
 		"path-is-absolute": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-			"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+			"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+			"dev": true
 		},
 		"path-key": {
 			"version": "3.1.1",
@@ -14605,6 +18360,18 @@
 			"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
 			"dev": true
 		},
+		"pbkdf2": {
+			"version": "3.1.2",
+			"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+			"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+			"requires": {
+				"create-hash": "^1.1.2",
+				"create-hmac": "^1.1.4",
+				"ripemd160": "^2.0.1",
+				"safe-buffer": "^5.0.1",
+				"sha.js": "^2.4.8"
+			}
+		},
 		"pend": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -14619,8 +18386,7 @@
 		"picocolors": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
-			"dev": true
+			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
 		},
 		"picomatch": {
 			"version": "2.3.1",
@@ -14676,6 +18442,19 @@
 				"source-map-js": "^1.0.2"
 			}
 		},
+		"preact": {
+			"version": "10.11.3",
+			"resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz",
+			"integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg=="
+		},
+		"preact-render-to-string": {
+			"version": "5.2.6",
+			"resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz",
+			"integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==",
+			"requires": {
+				"pretty-format": "^3.8.0"
+			}
+		},
 		"prelude-ls": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -14701,10 +18480,16 @@
 			"dev": true,
 			"requires": {}
 		},
+		"pretty-format": {
+			"version": "3.8.0",
+			"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+			"integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
+		},
 		"process-nextick-args": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
-			"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+			"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+			"dev": true
 		},
 		"progress": {
 			"version": "2.0.3",
@@ -14747,6 +18532,11 @@
 				"ipaddr.js": "1.9.1"
 			}
 		},
+		"proxy-from-env": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+			"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+		},
 		"pseudomap": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -14808,6 +18598,14 @@
 			"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
 			"dev": true
 		},
+		"randombytes": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+			"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+			"requires": {
+				"safe-buffer": "^5.1.0"
+			}
+		},
 		"range-parser": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -14848,10 +18646,30 @@
 				}
 			}
 		},
+		"react": {
+			"version": "18.2.0",
+			"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+			"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+			"peer": true,
+			"requires": {
+				"loose-envify": "^1.1.0"
+			}
+		},
+		"react-dom": {
+			"version": "18.2.0",
+			"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+			"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+			"peer": true,
+			"requires": {
+				"loose-envify": "^1.1.0",
+				"scheduler": "^0.23.0"
+			}
+		},
 		"readable-stream": {
 			"version": "2.3.7",
 			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
 			"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+			"dev": true,
 			"requires": {
 				"core-util-is": "~1.0.0",
 				"inherits": "~2.0.3",
@@ -14909,6 +18727,11 @@
 				"redis-errors": "^1.0.0"
 			}
 		},
+		"regenerator-runtime": {
+			"version": "0.13.11",
+			"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+			"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+		},
 		"regexp.prototype.flags": {
 			"version": "1.4.3",
 			"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
@@ -15027,10 +18850,28 @@
 			"version": "3.0.2",
 			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
 			"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+			"dev": true,
 			"requires": {
 				"glob": "^7.1.3"
 			}
 		},
+		"ripemd160": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+			"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+			"requires": {
+				"hash-base": "^3.0.0",
+				"inherits": "^2.0.1"
+			}
+		},
+		"rlp": {
+			"version": "2.2.7",
+			"resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
+			"integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
+			"requires": {
+				"bn.js": "^5.2.0"
+			}
+		},
 		"rollup": {
 			"version": "2.78.1",
 			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz",
@@ -15040,6 +18881,19 @@
 				"fsevents": "~2.3.2"
 			}
 		},
+		"rpc-websockets": {
+			"version": "7.5.0",
+			"resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz",
+			"integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==",
+			"requires": {
+				"@babel/runtime": "^7.17.2",
+				"bufferutil": "^4.0.1",
+				"eventemitter3": "^4.0.7",
+				"utf-8-validate": "^5.0.2",
+				"uuid": "^8.3.2",
+				"ws": "^8.5.0"
+			}
+		},
 		"run-parallel": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -15049,6 +18903,15 @@
 				"queue-microtask": "^1.2.2"
 			}
 		},
+		"rxjs": {
+			"version": "7.8.0",
+			"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+			"integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
+			"optional": true,
+			"requires": {
+				"tslib": "^2.1.0"
+			}
+		},
 		"sade": {
 			"version": "1.8.1",
 			"resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
@@ -15096,6 +18959,15 @@
 			"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
 			"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
 		},
+		"scheduler": {
+			"version": "0.23.0",
+			"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+			"integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+			"peer": true,
+			"requires": {
+				"loose-envify": "^1.1.0"
+			}
+		},
 		"schema-dts": {
 			"version": "0.8.3",
 			"resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-0.8.3.tgz",
@@ -15103,6 +18975,21 @@
 			"dev": true,
 			"requires": {}
 		},
+		"scrypt-js": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+			"integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
+		},
+		"secp256k1": {
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+			"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
+			"requires": {
+				"elliptic": "^6.5.4",
+				"node-addon-api": "^2.0.0",
+				"node-gyp-build": "^4.2.0"
+			}
+		},
 		"seek-bzip": {
 			"version": "1.0.6",
 			"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
@@ -15112,16 +18999,6 @@
 				"commander": "^2.8.1"
 			}
 		},
-		"selenium-webdriver": {
-			"version": "4.1.2",
-			"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.1.2.tgz",
-			"integrity": "sha512-e4Ap8vQvhipgBB8Ry9zBiKGkU6kHKyNnWiavGGLKkrdW81Zv7NVMtFOL/j3yX0G8QScM7XIXijKssNd4EUxSOw==",
-			"requires": {
-				"jszip": "^3.6.0",
-				"tmp": "^0.2.1",
-				"ws": ">=7.4.6"
-			}
-		},
 		"semver": {
 			"version": "7.3.7",
 			"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
@@ -15227,6 +19104,15 @@
 			"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
 			"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
 		},
+		"sha.js": {
+			"version": "2.4.11",
+			"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+			"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+			"requires": {
+				"inherits": "^2.0.1",
+				"safe-buffer": "^5.0.1"
+			}
+		},
 		"shebang-command": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -15332,8 +19218,7 @@
 		"source-map-js": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
-			"dev": true
+			"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
 		},
 		"sourcemap-codec": {
 			"version": "1.4.8",
@@ -15454,6 +19339,14 @@
 			"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
 			"dev": true
 		},
+		"strip-hex-prefix": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+			"integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
+			"requires": {
+				"is-hex-prefixed": "1.0.0"
+			}
+		},
 		"strip-indent": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
@@ -15486,6 +19379,20 @@
 				}
 			}
 		},
+		"styled-jsx": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
+			"integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
+			"peer": true,
+			"requires": {
+				"client-only": "0.0.1"
+			}
+		},
+		"superstruct": {
+			"version": "0.14.2",
+			"resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz",
+			"integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ=="
+		},
 		"supports-color": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -15662,6 +19569,12 @@
 				}
 			}
 		},
+		"swr": {
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz",
+			"integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==",
+			"requires": {}
+		},
 		"tar-stream": {
 			"version": "1.6.2",
 			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
@@ -15701,6 +19614,11 @@
 				}
 			}
 		},
+		"text-encoding-utf-8": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
+			"integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="
+		},
 		"text-table": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -15728,14 +19646,6 @@
 				"globrex": "^0.1.2"
 			}
 		},
-		"tmp": {
-			"version": "0.2.1",
-			"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
-			"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
-			"requires": {
-				"rimraf": "^3.0.0"
-			}
-		},
 		"to-buffer": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
@@ -15852,6 +19762,14 @@
 				"mime-types": "~2.1.24"
 			}
 		},
+		"typed-emitter": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz",
+			"integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==",
+			"requires": {
+				"rxjs": "*"
+			}
+		},
 		"typescript": {
 			"version": "4.8.2",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
@@ -15931,6 +19849,20 @@
 			"integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
 			"dev": true
 		},
+		"utf-8-validate": {
+			"version": "5.0.10",
+			"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
+			"integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
+			"optional": true,
+			"requires": {
+				"node-gyp-build": "^4.3.0"
+			}
+		},
+		"utf8": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+			"integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
+		},
 		"util-deprecate": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -16224,6 +20156,29 @@
 			"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
 			"dev": true
 		},
+		"web3-eth-abi": {
+			"version": "1.8.1",
+			"resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz",
+			"integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==",
+			"requires": {
+				"@ethersproject/abi": "^5.6.3",
+				"web3-utils": "1.8.1"
+			}
+		},
+		"web3-utils": {
+			"version": "1.8.1",
+			"resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz",
+			"integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==",
+			"requires": {
+				"bn.js": "^5.2.1",
+				"ethereum-bloom-filters": "^1.0.6",
+				"ethereumjs-util": "^7.1.0",
+				"ethjs-unit": "0.1.6",
+				"number-to-bn": "1.7.0",
+				"randombytes": "^2.1.0",
+				"utf8": "3.0.0"
+			}
+		},
 		"webidl-conversions": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
diff --git a/package.json b/package.json
index 2d3e318e3..7fbcb38f7 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,8 @@
 		"debug-preview": "cross-env NODE_OPTIONS='--inspect' vite preview --host --port 5000",
 		"debug-bull": "cross-env NODE_DEBUG='bull' vite preview --host --port 5000",
 		"dev": "vite dev --host --port 3050",
+    "dev-docker": "vite dev --host --port 5055",
+    "docker-dev-up": "docker-compose -f docker-compose.dev.yml up",
 		"build": "vite build",
 		"staging": "npm run dev -- --mode staging",
 		"start": "node my-server.js",
@@ -48,6 +50,9 @@
 	"type": "module",
 	"dependencies": {
 		"@lukeed/uuid": "^2.0.0",
+		"@moralisweb3/client-firebase-auth-utils": "^2.11.1",
+		"@moralisweb3/client-firebase-evm-auth": "^2.11.1",
+		"@moralisweb3/next": "^2.11.1",
 		"@sentry/browser": "^7.12.1",
 		"@sentry/tracing": "^7.12.1",
 		"bull": "^4.9.0",
@@ -62,6 +67,8 @@
 		"graphql-request": "^5.0.0",
 		"heroku-ssl-redirect": "^0.1.1",
 		"ioredis": "^5.2.3",
+		"moralis": "^2.11.1",
+		"next-auth": "^4.18.8",
 		"request-ip": "^3.3.0",
 		"sitemap": "^7.1.1",
 		"svelte-seo": "^1.3.1",
diff --git a/src/global.d.ts b/src/global.d.ts
index df2dde75e..6dd6bf078 100644
--- a/src/global.d.ts
+++ b/src/global.d.ts
@@ -1,6 +1,13 @@
 /// <reference types="@sveltejs/kit" />
 
+interface Web3_Providers 
+extends import('ethers').providers.ExternalProvider {
+  isCoinbaseWallet:   boolean;
+  isCoinbaseBrowser:  boolean;
+}
+
 interface Window { 
   // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  gtag: unknown;
+  gtag:     unknown;
+  ethereum: unknown;
 }
\ No newline at end of file
diff --git a/src/lib/components/_main_/auth/Auth_Widget.svelte b/src/lib/components/_main_/auth/Auth_Widget.svelte
new file mode 100644
index 000000000..5551bcc92
--- /dev/null
+++ b/src/lib/components/_main_/auth/Auth_Widget.svelte
@@ -0,0 +1,1386 @@
+<!-- ===============
+COMPONENT JS (w/ TS)
+=================-->
+
+<script lang="ts">
+  import { browser, dev } from '$app/environment';
+  import { goto } from '$app/navigation';
+  import { page } from '$app/stores';
+  import { onMount } from 'svelte';
+  import { fade } from 'svelte/transition';
+
+  import { app_m, auth } from '$lib/firebase/init';
+  import { sessionStore } from '$lib/store/session';
+  import { userBetarenaSettings, type Scores_User } from '$lib/store/user-settings';
+  import { getMoralisAuth } from '@moralisweb3/client-firebase-auth-utils';
+  import { signInWithMoralis } from '@moralisweb3/client-firebase-evm-auth';
+  import { fetchSignInMethodsForEmail, GithubAuthProvider, GoogleAuthProvider, isSignInWithEmailLink, sendSignInLinkToEmail, signInWithCustomToken, signInWithEmailLink, signInWithPopup, type User } from "firebase/auth";
+
+  import discord_icon from './assets/discord.svg';
+  import email_verify from './assets/email-verify.svg';
+  import error_icon from './assets/error-alert.svg';
+  import github_dark_icon from './assets/github-dark.svg';
+  import github_icon from './assets/github.svg';
+  import google_icon from './assets/google.svg';
+  import loader_animation from './assets/lodaer-anim-2.svg';
+  import logo from './assets/logo-auth.svg';
+  import logo_dark from './assets/logo-dark.svg';
+  import metamask_icon from './assets/metamask.svg';
+  import success_icon from './assets/success-alert.svg';
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  //  COMPONENT VARIABLES
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+  // NOTE: NO WIDGET SPECIFIC SEO or 
+  // NOTE: PRE-LOAD DATA REQUIRED
+
+  let email_input: string
+  let processing: boolean = false;
+  let email_verify_process: boolean = false;
+  let email_sent_process: boolean = false;
+  let allow_resend: boolean = false;
+  let sent_email_date: Date = undefined
+  let dateObjDif: number
+  let auth_view: boolean = true;
+  let auth_type: 'login' | 'register' = 'login';
+  let success_auth: boolean = false;
+  let error_auth: boolean = false;
+  let email_error_format: boolean = false;
+  let email_already_in_use: boolean = false;
+
+  $: actionCodeSettings.url = `${$page.url?.origin}${$page.url?.pathname}?auth_type=${auth_type}`
+
+  let actionCodeSettings = {
+    // [ℹ] URL / DOMAIN you want to redirect back to.
+    // [ℹ] URL must be in the authorized domains list in the Firebase Console.
+    url: `${$page.url?.origin}${$page.url?.pathname}?auth_type=${auth_type}`,
+    handleCodeInApp: true, // [ℹ] This must be set true
+    // dynamicLinkDomain: 'http://localhost:3050/auth'
+    // iOS: {
+    //   bundleId: 'com.example.ios'
+    // },
+    // android: {
+    //   packageName: 'com.example.android',
+    //   installApp: true,
+    //   minimumVersion: '12'
+    // },
+  };
+
+  // [🐞]
+  let enable_logs:       boolean = true;
+  let dev_console_tag:   string = "_main_ | authentication [DEV]";
+  if (dev) email_input = 'migbashdev@gmail.com'
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  //  COMPONENT METHODS
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+  /*
+  function close_widget() {
+		dispatch('close_widget');
+	}
+  */
+
+  async function login_with_google () {
+    // DOC: https://firebase.google.com/docs/auth/web/google-signin
+    try {
+      processing = true
+      const provider = new GoogleAuthProvider();
+      await signInWithPopup(auth, provider)
+      .then((result) => {
+        // [ℹ] This gives you a Google Access Token & Google API
+        // const credential = GoogleAuthProvider.credentialFromResult(result);
+        // const token = credential.accessToken;
+        // [ℹ] user info
+        const user = result?.user;
+        success_auth_wrap(user)
+      })
+      .catch((error) => {
+        processing = false
+        // TODO: Error Authetication Handle
+        // [ℹ] handle errors
+        const errorCode = error.code;
+        const errorMessage = error.message;
+        const email = error.customData.email; // The email of the user's account used.
+        // [ℹ] AuthCredential used
+        // const credential = GoogleAuthProvider.credentialFromError(error);
+        // [🐞]
+        if (dev) console.log('errorCode', errorCode)
+        if (dev) console.log('errorMessage', errorMessage)
+      });
+    } catch (error) {
+      console.log(`❌ Google auth error: ${error}`)
+      processing = false
+    }
+  }
+
+  async function login_with_email_link () {
+    // DOC: https://firebase.google.com/docs/auth/web/email-link-auth?hl=en&authuser=0
+    try {
+      email_error_format = false 
+      processing = true
+      // [🐞]
+      if (dev) console.log('email_input', email_input)
+      await fetchSignInMethodsForEmail(
+        auth, 
+        email_input
+      )
+      .then((signInMethods) => {
+        if (signInMethods.length) {
+          // [ℹ] The email already exists in the Auth database. You can check the
+          // [ℹ] sign-in methods associated with it by checking signInMethods array.
+          // [ℹ] Show the option to sign in with that sign-in method.
+          email_already_in_use = true;
+        } else {
+          // [ℹ] User does not exist. Ask user to sign up.
+          email_already_in_use = false;
+        }
+      })
+      .catch((error) => { 
+        // Some error occurred.
+      });
+      // [ℹ] validation
+      // if (email_already_in_use) {
+      //   if (dev) console.log('🟠 Exit MagicLink')
+      //   processing = false
+      //   error_auth = true
+      //   setTimeout(() => {
+      //     error_auth = false
+      //   }, 1500)
+      //   return
+      // }
+      // [ℹ] cont. send email
+      await sendSignInLinkToEmail(
+        auth, 
+        email_input, 
+        actionCodeSettings
+      )
+      .then(() => {
+        // [ℹ] The link was successfully sent - (custom) UI update
+        processing = false
+        auth_view = false
+        if (email_already_in_use) {
+          email_sent_process = true
+          sent_email_date = new Date()
+          sent_email_date.setMinutes(sent_email_date.getMinutes() + 5) // [ℹ] add 5 min.
+        } else {
+          email_verify_process = true
+        }
+        // [ℹ] store target email in localStroage() for retrival on same device
+        window.localStorage.setItem('emailForSignIn', email_input);
+        // NOTE: listen for email deep link continued
+      })
+      .catch((error) => {
+        // TODO: Error Authetication Handle
+        const errorCode = error.code;
+        const errorMessage = error.message;
+      });
+    } catch (e) {
+      console.log(e);
+    }
+  }
+
+  $: if (sent_email_date != undefined) {
+    dateObjDif =
+      sent_email_date.getTime() - Date.parse(new Date().toString());
+    setInterval(() => {
+			dateObjDif =
+        sent_email_date.getTime() - Date.parse(new Date().toString());
+		}, 1000);
+  }
+
+  $: countD_sec = Math.floor((dateObjDif / 1000) % 60).toString();
+	$: if (parseInt(countD_sec) < 10) {
+		countD_sec = '0' + countD_sec;
+	}
+	$: countD_min = Math.floor((dateObjDif / 1000 / 60) % 60).toString();
+	$: if (parseInt(countD_min) < 10) {
+		countD_min = '0' + countD_min;
+	}
+  
+  $: if (countD_sec.includes('-')) {
+    // sent_email_date = undefined
+    allow_resend = true
+  } else {
+    allow_resend = false
+  }
+
+  // [ℹ] DeepLink listener EmailLink Cont. [END]
+  $: if (browser) {
+    if (isSignInWithEmailLink(auth, window.location.href)) {
+      // [🐞]
+      if (dev) console.log("🔵 EmailLink OAuth2")
+      // NOTE: apiKey, oobCode, mode, lang query param(s) passed in URL query params
+      // NOTE: Additional state parameters can also be passed via URL.
+      // NOTE: This can be used to continue the user's intended action before triggering
+      // NOTE: the sign-in operation.
+      // NOTE: Get the email if available. This should be available if the user completes
+      // NOTE: the flow on the same device where they started it.
+      let email = window.localStorage.getItem('emailForSignIn');
+      // [🐞]
+      if (dev) console.log('email', email)
+      if (!email) {
+        // User opened the link on a different device. To prevent session fixation
+        // attacks, ask the user to provide the associated email again. For example:
+        email = window.prompt('Please provide your email for confirmation');
+      }
+      // The client SDK will parse the code from the link for you.
+      signInWithEmailLink(auth, email, window.location.href)
+      .then((result) => {
+        auth_type = $page?.url?.searchParams?.get('auth_type')?.toString() as 'login' | 'register'
+        const revert_url = `${$page?.url?.origin}${$page?.url?.pathname}`
+        // [🐞]
+        if (dev) console.log("🟢 EmailLink Auth")
+        // NOTE: Clear email from storage.
+        window.localStorage.removeItem('emailForSignIn');
+        // NOTE: You can access the new user via result.user
+        // NOTE: Additional user info profile not available via:
+        // result.additionalUserInfo.profile == null
+        // NOTE: You can check if the user is new or existing:
+        // result.additionalUserInfo.isNewUser
+          // [🐞]
+        if (dev) console.log('displayName', result?.user?.displayName)
+        if (dev) console.log('email', result?.user?.email)
+        success_auth_wrap(result?.user)
+        goto(revert_url, { replaceState: true });
+      })
+      .catch((error) => {
+        // Some error occurred, you can inspect the code: error.code
+        // Common errors could be invalid email and invalid or expired OTPs.
+        console.log(error);
+      });
+    }
+  }
+
+  // NOTE: Apple Login Discontinued - instead for GitHub
+  async function login_with_github () {
+    try {
+      processing = true
+      const provider = new GithubAuthProvider();
+      await signInWithPopup(auth, provider)
+      .then((result) => {
+        // [ℹ] this gives you a GitHub Access Token. 
+        // const credential = GithubAuthProvider.credentialFromResult(result);
+        // const token = credential.accessToken;
+        // [ℹ] user info
+        const user = result.user;
+        success_auth_wrap(user)
+      }).catch((error) => {
+        processing = false
+        // [ℹ] handle errors
+        const errorCode = error.code;
+        const errorMessage = error.message;
+        // [🐞]
+        console.log('errorCode', errorCode)
+        console.log('errorMessage', errorMessage)
+        // [ℹ] the email used
+        const email = error.customData.email;
+        // [ℹ] AuthCredential used
+        const credential = GithubAuthProvider.credentialFromError(error);
+        // [🐞]
+        if (dev) console.log('credential', credential)
+        if (dev) console.log('email', email)
+        // TODO: error user-sign in
+        // signInWithCredential(auth, credential)
+        // .then(user => {
+        //   // You can now link the pending credential from the first
+        //   // error.
+        //   linkWithCredential(error.credential)
+        // })
+        // .catch(error => log(error))
+      });
+    } catch (e) {
+      console.log(e);
+    }
+  }
+
+  async function login_with_discord () {
+    // DOC: https://www.reddit.com/r/Firebase/comments/n4uv1o/sign_in_with_discord/
+    // DOC: https://github.com/luizkc/firebase-discord-oauth2-example
+    // DOC: https://stackoverflow.com/questions/70171124/discord-oauth2-with-firebase-functions
+    // DOC: https://stackoverflow.com/questions/53992730/how-would-i-authorize-users-using-discord-oauth2-0-for-firebase-authentication-o
+    try {
+      processing = true
+      const callback_auth_url = $page?.url?.origin
+      // [🐞]
+      if (dev) console.log('callback_auth_url', callback_auth_url)
+      const discord_outh_url = import.meta.env.VITE_DISCORD_OAUTH_URL
+      const final_url_nav = `${discord_outh_url}?redirect_url=${callback_auth_url}`
+      // [ℹ] initiate discord OAuth2
+      goto(final_url_nav)
+    } catch (e) {
+      processing = false
+      console.log(e);
+    }
+  }
+  // [ℹ] DeepLink listener Discord Cont. [END]
+  $: if (browser) {
+    // [🐞]
+    if (dev) console.log("Testing for Discord Link!")
+    const f_uid = $page.url.searchParams.get('f_uid')
+    const oauth2 = $page.url.searchParams.get('oauth2')
+    const revert_url = `${$page?.url?.origin}${$page?.url?.pathname}`
+    // [ℹ] validate user is attempting Discord OAuth2
+    if (oauth2 == 'discord' 
+      && f_uid != null) {
+      // [🐞]
+      if (dev) console.log("🔵 Discrod OAuth2")
+      goto(revert_url, { replaceState: true });
+      signInWithCustomToken(auth, f_uid)
+      .then((userCredential) => {
+        // [ℹ] successful sign-in / login
+        // [🐞]
+        if (dev) console.log("🟢 Discrod OAuth2")
+        const user = userCredential.user;
+        success_auth_wrap(user)
+      })
+      .catch((error) => {
+        // TODO: complete authetication error handle
+        const errorCode = error.code;
+        const errorMessage = error.message;
+        // [🐞]
+        if (dev) console.error('errorMessage', errorMessage)
+        if (dev) console.error('errorCode', errorCode)
+      });
+    }
+  }
+
+  async function login_with_metamask () {
+    // DOC: https://moralis.io/create-a-web3-firebase-login-with-metamask/
+    // DOC: https://docs.moralis.io/authentication-api/integrations/firebase-nodejs
+    // DOC: https://moralis.io/web3-firebase-authentication-create-a-web3-sign-in-with-moralis/
+    // DOC: https://moralisweb3.github.io/firebase-extensions/service-account-converter/
+    // DOC: OTHER => https://moralisweb3.github.io/Moralis-JS-SDK/demos/firebase-auth-ext/
+    // DOC: https://admin.moralis.io/users
+    // IMPORTANT: betarena-ios "usage" project-id
+    try {
+      processing = true
+      // [ℹ] restrict only to MetaMask (original)
+      if (!provider('isMetaMask')[0]) {
+        alert('Please install the MetaMask Wallet Extension!')
+        processing = false
+        return
+      }
+      // [ℹ] create Moralis instance
+      const moralisAuth = getMoralisAuth(app_m);
+      // [🐞]
+      // if (dev) console.log(moralisAuth) 
+      // NOTE: default sign-in opt. is Metamask
+      const moralis_auth = await signInWithMoralis(moralisAuth);
+      // [🐞]
+      // if (dev) console.log(moralis_auth)
+      if (dev) console.log("🟢 Moralis Auth")
+      success_auth_wrap(null, moralis_auth?.credentials?.user?.displayName)
+    } catch (error) {
+      // [🐞]
+      console.error(`❌ Moralis auth error: ${error}`)
+      processing = false;
+    }
+  }
+
+  function success_auth_wrap (
+    user?: User, 
+    web3_wallet_addr?: string
+  ) {
+    // NOTE: complete authetication
+    let user_obj: Scores_User = user
+    // [ℹ] initiate stores
+    if (user != undefined) {
+      user_obj.web3_wallet_addr = undefined
+    }
+    if (web3_wallet_addr != undefined) {
+      user_obj = {
+        phoneNumber: undefined,
+        photoURL: undefined,
+        providerId: undefined,
+        uid: undefined,
+        reload: undefined,
+        toJSON: undefined,
+        displayName: undefined,
+        email: undefined,
+        tenantId: undefined,
+        delete: undefined,
+        getIdToken: undefined,
+        getIdTokenResult: undefined,
+        refreshToken: undefined,
+        providerData: undefined,
+        metadata: undefined,
+        isAnonymous: undefined,
+        emailVerified: undefined,
+        web3_wallet_addr: undefined
+      }
+      user_obj.web3_wallet_addr = web3_wallet_addr
+    }
+    userBetarenaSettings.signInUser(user_obj)
+    // [ℹ] default UI/UX triggers
+    $sessionStore.auth_show = false
+    processing = false;
+    email_input = undefined;
+    success_auth = true;
+    setTimeout(() => {
+      success_auth = false;
+      auth_type = 'login'
+    }, 1500)
+  }
+
+  function wrong_email_format () {
+    email_error_format = true 
+    error_auth = true
+    setTimeout(() => {
+      error_auth = false
+    }, 1500)
+  }
+
+  $: if (!$sessionStore.auth_show) {
+    auth_view = true
+    email_input = undefined
+    email_verify_process = false
+    email_sent_process = false
+    email_already_in_use = false
+    email_error_format = false
+  }
+
+  // $: if (browser) {
+  //   console.log(provider('isCoinbaseWallet'))
+  // }
+
+  /**
+   * Validates what Web3 wallet extension
+   * is being used for the platform
+   * @param walletType
+   */
+  function provider (
+    walletType: 'isMetaMask' | 'isCoinbaseWallet' | 'isBraveWallet'
+  ): [boolean, any] {
+    // [ℹ] no ethereum wallet present
+    if (!window.ethereum) { 
+      return [false, null];
+      // throw new Error("No injected ethereum object."); 
+    }
+
+    // [ℹ] default provider (single) assign
+    let target_wallet = undefined
+
+    // [ℹ] multiple provider(s) check true
+    if (Array.isArray(window.ethereum.providers)) {
+      if (walletType == 'isMetaMask') { 
+        target_wallet = window.ethereum.providers.find((provider) => provider[walletType] && provider?.isBraveWallet == undefined)
+      }
+      // [ℹ] alternative
+      // else {
+      //   target_wallet = window.ethereum.providers.find((provider) => provider[walletType])
+      // }
+      if (dev) console.log(`🔵 More than 1 provider identified!`, window.ethereum.providers.length)
+      if (dev) console.log('target_wallet', target_wallet)
+      if (dev) console.log('window.ethereum.providers', window.ethereum.providers)
+    }
+    else {
+      if (walletType == 'isMetaMask'
+        && window.ethereum?.isBraveWallet == undefined
+        && window.ethereum?.isMetaMask != undefined
+        && window.ethereum?.isMetaMask) { 
+        target_wallet = window.ethereum[walletType]
+      }
+      // [ℹ] alternative
+      // else {
+      //   target_wallet = window.ethereum[walletType]
+      // }
+      if (dev) console.log(`🔵 1 provider identified!`, window.ethereum)
+      if (dev) console.log('target_wallet', target_wallet)
+      if (dev) console.log('window.ethereum', window.ethereum)
+    }
+
+    // [ℹ] TARGET (THIS) single provider check true
+    if (target_wallet != undefined) {
+      if (dev) console.log(`🟢 ${walletType} identified`)
+      // DOC: https://stackoverflow.com/questions/69377437/metamask-conflicting-with-coinbase-wallet
+      // DOC: https://stackoverflow.com/questions/72613011/whenever-i-click-on-connect-metamask-button-why-it-connects-the-coinbase-wallet
+      // NOTE: conflicting use of CoinBaseWallet & MetaMask
+      // NOTE: setting MetaMask as main wallet
+      target_wallet.request({ method: 'eth_requestAccounts' });
+      return [true, target_wallet]
+    }
+    else {
+      console.log(`🔴 no target wallet (${walletType}) identified`)
+      return [false, null]
+    }
+  }
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  // VIEWPORT CHANGES
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+  let tabletView = 1160;
+  let mobileView = 725;
+  let mobileExclusive: boolean = false;
+  let tabletExclusive: boolean = false;
+
+	onMount(async () => {
+		var wInit = document.documentElement.clientWidth;
+		if (wInit >= tabletView) {
+			tabletExclusive = false;
+		} else {
+			tabletExclusive = true;
+		}
+		if (wInit <= mobileView) {
+			mobileExclusive = true;
+		} else {
+			mobileExclusive = false;
+		}
+		window.addEventListener('resize', function () {
+			var w = document.documentElement.clientWidth;
+      if (w >= tabletView) {
+				tabletExclusive = false;
+			} else {
+				tabletExclusive = true;
+			}
+			if (w <= mobileView) {
+				mobileExclusive = true;
+			} else {
+				mobileExclusive = false;
+			}
+		});
+  });
+
+  // ~~~~~~~~~~~~~~~~~~~~~
+  // REACTIVE LANG SVELTE
+  // [! CRITICAL !]
+  // ~~~~~~~~~~~~~~~~~~~~~
+
+  let server_side_language: string = 'en';
+  $: if ($page.routeId != null
+    && !$page.error
+  ) {
+    if ($page.routeId.includes("[lang=lang]")) {
+		  server_side_language = $page.params.lang;
+    }
+    else {
+      server_side_language = 'en';
+    }
+	  }
+  else {
+    server_side_language = 'en';
+  }
+
+</script>
+
+<!-- ===============
+COMPONENT HTML 
+=================-->
+
+<!-- 
+[ℹ] background backdrop fade
+-->
+{#if $sessionStore.auth_show}
+  <div
+    id='background-modal-blur'
+    on:click={() => $sessionStore.auth_show = false}
+    in:fade 
+  />
+{/if}
+
+<!-- 
+[ℹ] auth message show box [success]
+-->
+{#if success_auth}
+  <div
+    id="auth-alert-box"
+    class="row-space-start"
+    transition:fade>
+    <img 
+      src={success_icon}
+      alt="Success Icon"
+      title="Success Icon"
+    />
+    <p
+      class="w-500">
+      Success! User
+      {#if auth_type == 'login'}
+        logged in
+      {:else}
+        signed up
+      {/if}
+    </p>
+  </div>
+{/if}
+
+<!-- 
+[ℹ] auth message show box [error]
+-->
+{#if error_auth}
+  <div
+    id="auth-alert-box"
+    class="row-space-start"
+    transition:fade>
+    <img 
+      src={error_icon}
+      alt="Error Icon"
+      title="Error Icon"
+    />
+    <p
+      class="w-500">
+      Uh-oh! There has been an error
+    </p>
+  </div>
+{/if}
+
+<!-- 
+[ℹ] main auth widget component
+-->
+{#if $sessionStore.auth_show}
+  <div
+    id='widget-outer'
+    class:dark-background-1={$userBetarenaSettings.theme == 'Dark'}
+    in:fade>
+
+    <!-- 
+    [ℹ] processing view box
+    [ℹ] HIDDEN by DEFAULT
+    -->
+    {#if processing}
+      <div
+        id="processing-auth-box">
+        <div
+          id="inner-processing-box">
+          <img 
+            src={loader_animation}
+            alt="Loader Vector"
+            title="Processing..."
+          />
+          <p
+            class="
+              color-grey
+            ">
+            Processing
+          </p>
+        </div>
+      </div>
+    {/if}
+
+    <!-- 
+    [ℹ] email verification view box
+    [ℹ] HIDDEN by DEFAULT
+    -->
+    {#if email_verify_process}
+      <div
+        id="email-auth-verify-box">
+        <!-- 
+        [ℹ] close icon logo
+        -->
+        <img 
+          id='close-vector'
+          class='cursor-pointer'
+          src="/assets/svg/close.svg" 
+          alt="close-svg"
+          on:click={() => $sessionStore.auth_show = false}
+        />
+
+        <!-- 
+        [ℹ] verify text
+        -->
+        <p
+          class="
+            w-500
+            color-black-2
+          "
+          style="font-size: 20px;">
+          Verification
+        </p>
+        <!-- 
+        [ℹ] verify email
+        -->
+        <p
+          class="color-grey">
+          Please verify your email
+        </p>
+        <!-- 
+        [ℹ] verify email icon
+        -->
+        <img 
+          id="email-verify-icon"
+          src={email_verify}
+          alt="Email Vector"
+          title="Email Vector"
+        />
+        <!-- 
+        [ℹ] verify email text
+        -->
+        <p
+          class="color-grey">
+          An email has been sent to
+          <br>
+          <span
+            class="color-black-2">
+            {email_input}
+          </span>
+          <br>
+          Please verify your email to continue.
+        </p>
+        <!-- 
+        [ℹ] verify email to my inbox
+        -->
+        <p
+          class="
+            color-primary
+            cursor-pointer
+          "
+          style="margin-top: 8px;"
+          on:click={() => window.open('mailto:')}>
+          Go to my inbox
+        </p>
+        <!-- 
+        [ℹ] verify no email text
+        -->
+        <p
+          class="color-grey"
+          style="margin-top: 24px;">
+          Did not get the email? 
+          <span
+            class="
+              color-primary
+              cursor-pointer
+            "
+            on:click={() => login_with_email_link()}>
+            Resend email
+          </span>
+        </p>
+      </div>
+    {/if}
+
+    <!-- 
+    [ℹ] email sent view box
+    [ℹ] HIDDEN by DEFAULT
+    -->
+    {#if email_sent_process}
+      <div
+        id="email-auth-verify-box">
+        <!-- 
+        [ℹ] close icon logo
+        -->
+        <img 
+          id='close-vector'
+          class='cursor-pointer'
+          src="/assets/svg/close.svg" 
+          alt="close-svg"
+          on:click={() => $sessionStore.auth_show = false}
+        />
+
+        <!-- 
+        [ℹ] verify text
+        -->
+        <p
+          class="
+            w-500
+            color-black-2
+          "
+          style="font-size: 20px;">
+          Check your email
+        </p>
+        <!-- 
+        [ℹ] verify email
+        -->
+        <p
+          class="color-grey">
+          Please follow the link in your email
+        </p>
+        <!-- 
+        [ℹ] verify email icon
+        -->
+        <img 
+          id="email-verify-icon"
+          src={email_verify}
+          alt="Email Vector"
+          title="Email Vector"
+        />
+        <!-- 
+        [ℹ] verify email text
+        -->
+        <p
+          class="color-grey">
+          An email has been sent to
+          <br>
+          <span
+            class="color-black-2">
+            {email_input}
+          </span>
+          <br>
+          Please follow the link in your email to login.
+        </p>
+        <!-- 
+        [ℹ] verify email to my inbox
+        -->
+        <p
+          class="
+            color-primary
+            cursor-pointer
+          "
+          style="margin-top: 8px;"
+          on:click={() => window.open('mailto:')}>
+          Go to my inbox
+        </p>
+        <!-- 
+        [ℹ] verify no email text
+        -->
+        {#if allow_resend}
+          <p
+            class="color-grey"
+            style="margin-top: 24px;">
+            Did not get the email? 
+            <span
+              class="
+                color-primary
+                cursor-pointer
+              "
+              on:click={() => login_with_email_link()}>
+              Resend email
+            </span>
+          </p>
+        {:else}
+          <p
+            class="color-grey"
+            style="margin-top: 24px;">
+            {countD_min}:{countD_sec} to resend option
+          </p>
+        {/if}
+        
+      </div>
+    {/if}
+
+    <!-- 
+    [ℹ] authetication view
+    [ℹ] SHOWN by DEFAULT
+    -->
+    {#if auth_view}
+      <!-- 
+      [ℹ] close icon logo
+      -->
+      <img 
+        id='close-vector'
+        class='cursor-pointer'
+        src="/assets/svg/close.svg" 
+        alt="close-svg"
+        on:click={() => $sessionStore.auth_show = false}
+      />
+
+      <!-- 
+      [ℹ] auth logo betarena
+      -->
+      <img
+        id="auth-logo"
+        src={$userBetarenaSettings.theme == 'Dark' ? logo_dark : logo}
+        alt="Betarena Logo"
+        title="Betarena Logo"
+        aria-label="Betarena Logo"
+      />
+
+      <!-- 
+      [ℹ] auth login/sign-up text
+      -->
+      <p
+        id="auth-head"
+        class="
+          color-black-2
+          w-500
+        ">
+        {#if auth_type == 'login'}
+          Login
+        {:else}
+          Sign Up
+        {/if}
+      </p>
+
+      <!-- 
+      [ℹ] auth login/sign-up w/email-opt
+      -->
+      <p
+        class="
+          color-grey
+        ">
+        {#if auth_type == 'login'}
+          Enter your email address to login
+        {:else}
+          Enter your email address to sign up
+        {/if}
+      </p>
+      <form 
+        on:submit|preventDefault={() => login_with_email_link()}>
+        <!-- 
+        [ℹ] input email
+        class:error-email={email_error_format || email_already_in_use}
+        -->
+        <input
+          id='email'
+          type="email"
+          placeholder="email@gmail.com"
+          bind:value={email_input}
+          on:invalid={() => wrong_email_format()}
+          autocomplete="off"
+          class:error-email={email_error_format}
+          required
+        />
+        <!-- 
+        [ℹ] error email validation format
+        -->
+        {#if email_error_format}
+          <p
+            class="color-error"
+            style="margin-top: 10px;">
+            Wrong format
+          </p>
+        {/if}
+        <!-- 
+        [ℹ] error email validation exists
+        {#if email_already_in_use}
+          <p
+            class="color-error"
+            style="margin-top: 10px;">
+            Email already in use
+          </p>
+        {/if}
+        -->
+        <!-- 
+        [ℹ] submit email button
+        -->
+        <button
+          id="email-btn"
+          class="
+            btn-primary 
+          "
+          type="submit">
+          <p
+            class="
+              w-500
+            ">
+            Continue with email
+          </p>
+        </button>
+      </form>
+
+      <!-- 
+      [ℹ] auth login/sign-up w/alt. OAuth2 options
+      -->
+      <div
+        id="other-oauth-divider-box"
+        class="row-space-out">
+        <div class="hr-box"/>
+        <p
+          class="
+            color-grey
+          ">
+          Or
+        </p>
+        <div class="hr-box"/>
+      </div>
+      <div
+        id="oauth-box"
+        class="row-space-out">
+        <!-- 
+        [ℹ] GOOGLE 
+        -->
+        <button
+          class="btn-auth-opt"
+          on:click={() => login_with_google()}>
+          <img 
+            src={google_icon}
+            alt="Google Icon"
+            title="Google Icon"
+          />
+        </button>
+        <!-- 
+        [ℹ] DISCROD 
+        -->
+        <button
+          class="btn-auth-opt"
+          on:click={() => login_with_discord()}>
+          <img 
+            src={discord_icon}
+            alt="Discord Icon"
+            title="Discord Icon"
+          />
+        </button>
+        <!-- 
+        [ℹ] GITHUB 
+        -->
+        <button
+          class="btn-auth-opt"
+          on:click={() => login_with_github()}>
+          <img 
+            src={$userBetarenaSettings.theme == 'Dark' ? github_dark_icon : github_icon}
+            alt="Github Icon"
+            title="Github Icon"
+          />
+        </button>
+      </div>
+
+      <!-- 
+      [ℹ] auth login/sign-up w/alt. Web3
+      -->
+      <div
+        id="web3-divider-box"
+        class="row-space-out">
+        <div class="hr-box"/>
+        <p
+          class="
+            color-grey
+          ">
+          {#if auth_type == 'login'}
+            Or login with your crypto wallet
+          {:else}
+            Or sign up with your crypto wallet
+          {/if}
+        </p>
+        <div class="hr-box"/>
+      </div>
+      <button
+        id="metamask"
+        class="
+          row-space-center
+          btn-auth-opt
+        "
+        on:click={() => login_with_metamask()}>
+        <img 
+          src={metamask_icon}
+          alt="Metamask Icon"
+          title="Metamask Icon"
+        />
+        <p
+          class="
+            w-500
+            color-black-2
+          ">
+          MetaMask
+        </p>
+      </button>
+
+      <!-- 
+      [ℹ] auth login/sign-up w/alt. text prompt for account
+      -->
+      <p
+        id="account-onboard-text"
+        class="
+          color-grey
+        ">
+        {#if auth_type == 'login'}
+          Do not have an account?
+          <span
+            class="
+              color-primary
+              cursor-pointer
+            "
+            on:click={() => auth_type = 'register'}>
+            Register
+          </span> 
+        {:else}
+          Already have an account? 
+          <span
+            class="
+              color-primary
+              cursor-pointer
+            "
+            on:click={() => auth_type = 'login'}>
+            Login
+          </span> 
+        {/if}
+      </p>
+    {/if}
+
+  </div>
+{/if}
+
+<!-- ===============
+COMPONENT STYLE
+=================-->
+
+<style>
+  /* 
+  [ℹ] OTHER STYLE / CSS 
+  */
+
+  div#background-modal-blur {
+    position: fixed;
+    top: 0;
+    right: 0;
+    left: 0;
+    z-index: 4000;
+    height: 100%;
+    width: 100%;
+    background: rgba(0, 0, 0, 0.5);
+  }
+
+  div#auth-alert-box {
+    position: fixed;
+    bottom: 20px;
+    width: fit-content;
+    z-index: 4000;
+    left: 0;
+    right: 0;
+    margin: auto;
+    background: rgba(0, 0, 0, 0.8);
+    backdrop-filter: blur(4px);
+    -webkit-backdrop-filter: blur(4px);
+    padding: 14px 18px;
+    border-radius: 6px;
+  } div#auth-alert-box p {
+    color: #FFFFFF;
+    margin-left: 10px;
+  }
+
+  /* [ℹ] SEO WIDGET DATA */
+  
+  /* [ℹ] NO DATA WIDGET STYLE / CSS */
+
+  /*
+  [ℹ] WIDGET MAIN STYLE / CSS 
+  [ℹ] NOTE: [MOBILE-FIRST]
+  [ℹ] NOTE: Media Queires Followed
+  */
+
+  /* 
+  widget-outer-box 
+  */
+  #widget-outer {
+    /* position */
+    position: fixed;
+    z-index: 10000;
+    margin: auto;
+    width: fit-content;
+    width: 92%;
+    right: 0;
+    left: 0;
+    bottom: 0;
+    top: 0;
+    height: fit-content;
+    /* style */
+    background: #ffffff;
+    box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.08);
+    border-radius: 12px;
+    padding: 20px;
+    text-align: -webkit-center;
+    overflow: hidden;
+  }
+
+  /* 
+  widget processing loading style
+  */
+  div#processing-auth-box {
+    position: absolute;
+    backdrop-filter: blur(6px);
+    -webkit-backdrop-filter: blur(6px);
+    width: 100%;
+    height: 100%;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    margin: auto;
+    background: rgba(255, 255, 255, 0.8);
+  } div#processing-auth-box div#inner-processing-box {
+    position: absolute;
+    right: 0;
+    left: 0;
+    margin: auto;
+    width: fit-content;
+    height: fit-content;
+    top: 0;
+    bottom: 0;
+  } div#processing-auth-box div#inner-processing-box img {
+    width: 48px;
+    height: 48px;
+  }
+
+  div#email-auth-verify-box {
+  } div#email-auth-verify-box img#email-verify-icon {
+    margin: 30px 0;
+  }
+
+  img#auth-logo {
+    margin-bottom: 12px;
+  }
+
+  img#close-vector {
+    position: absolute;
+    top: 20px;
+    right: 20px;
+    z-index: 400000002;
+  }
+
+  p#auth-head {
+    font-size: 20px;
+    margin-bottom: 5px;
+  }
+
+  /* 
+  main email auth style box
+  */
+  input#email {
+    /* white theme/white */
+    background: #FFFFFF;
+    /* white theme/gray */
+    border: 1px solid #CCCCCC;;
+    box-sizing: border-box;
+    border-radius: 8px;
+    padding: 12px;
+    width: -webkit-fill-available;
+    width: -moz-available;
+    height: 44px;
+    outline: none;
+    font-size: 14px;
+    margin-top: 12px;
+    color: #000000;
+  } input#email:hover {
+    border: 1px solid #8C8C8C;
+  } input#email:focus {
+    border: 1px solid #4B4B4B;
+  } input#email[placeholder] {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+  } input#email::placeholder {
+    color: #CCCCCC;
+  } input#email.error-email {
+    border: 1px solid #FF3C3C !important;
+  }
+  button#email-btn {
+    height: 40px;
+    width: 100%;
+    background-color: #f5620f;
+    box-shadow: 0px 3px 8px rgba(212, 84, 12, 0.32);
+    border-radius: 8px;
+    padding: 10px 24px;
+    margin-top: 12px;
+  } button#email-btn p {
+    color: #FFFFFF;
+    font-size: 14px;
+  } button#email-btn:hover {
+    background: #F77C42;
+  }
+  
+  /* 
+  alternative OAuth2 style box
+  */
+  div#other-oauth-divider-box {
+    margin: 16px 0;
+  } div#other-oauth-divider-box div.hr-box {
+    height: 1px;
+    width: 100%;
+    background: #CCCCCC;
+  } div#other-oauth-divider-box p {
+    margin: 0 12px;
+  }
+  div#oauth-box button.btn-auth-opt {
+    padding: 12px 32px;
+    background: #FFFFFF;
+    border: 1px solid #E6E6E6 !important;
+    border-radius: 60px;
+    margin-right: 12px;
+  } div#oauth-box button.btn-auth-opt:hover {
+    border: 1px solid #F5620F !important;
+  } div#oauth-box button.btn-auth-opt:last-child {
+    margin-right: unset;
+  }
+
+  /* 
+  alternative Web3 style box
+  */
+  div#web3-divider-box {
+    margin: 16px 0;
+  } div#web3-divider-box div.hr-box {
+    height: 1px;
+    width: 100%;
+    background: #CCCCCC;
+  } div#web3-divider-box p {
+    margin: 0 12px;
+    white-space: nowrap;
+  }
+  button#metamask.btn-auth-opt {
+    padding: 12px 32px;
+    background: #FFFFFF;
+    border: 1px solid #E6E6E6 !important;
+    border-radius: 60px;
+    margin-right: 12px;
+  } button#metamask.btn-auth-opt:hover {
+    border: 1px solid #F5620F !important;
+  } button#metamask p {
+    margin-left: 12px;
+    font-size: 14px;
+  }
+
+  /* 
+  switch login/sign-up options style text
+  */
+  p#account-onboard-text {
+    margin-top: 16px;
+  }
+
+  /* ====================
+    [MAIN] RESPONSIVNESS 
+    [TABLET] [DESKTOP]
+  ==================== */
+
+	/* 
+  NOTE: TABLET [EXCLUSIVE] RESPONSIVNESS (&+) */
+  @media only screen and (min-width: 726px) and (max-width: 1160px)  {
+    /* empty */
+  }
+
+  /* 
+  NOTE: TABLET && DESKTOP [SHARED] RESPONSIVNESS (&+) */
+  @media only screen and (min-width: 726px) {
+    #widget-outer {
+      width: 340px;
+    }
+  }
+
+  @media only screen and (min-width: 726px) and (max-width: 865px) {
+    /* empty */
+  }
+
+  /* 
+  NOTE: DESKTOP [M-L] RESPONSIVNESS (&+) */
+  @media only screen and (min-width: 1160px) {
+    #widget-outer {
+      width: 328px;
+    }
+  }
+
+  /* ====================
+    [MAIN] WIDGET DARK THEME
+  ==================== */
+
+  div#widget-outer.dark-background-1 {
+    background: #4B4B4B;
+  }
+
+  div#widget-outer.dark-background-1 div#processing-auth-box {
+    background: rgba(41, 41, 41, 0.8);
+  }
+
+  div#widget-outer.dark-background-1 input#email {
+    background: #4B4B4B;
+    border: 1px solid #737373;
+  } div#widget-outer.dark-background-1 input#email {
+    color: #FFFFFF;
+  } div#widget-outer.dark-background-1 input#email::placeholder {
+    color: #737373;
+  } div#widget-outer.dark-background-1 input#email:hover {
+    border: 1px solid #8C8C8C;
+  }
+
+  div#widget-outer.dark-background-1 div#other-oauth-divider-box div.hr-box,
+  div#widget-outer.dark-background-1 div#web3-divider-box div.hr-box {
+    background: #737373;
+  }
+
+  div#widget-outer.dark-background-1 div#oauth-box button.btn-auth-opt,
+  div#widget-outer.dark-background-1 button#metamask.btn-auth-opt {
+    border: 1px solid #737373 !important;
+    background: #4B4B4B;
+  }
+
+  div#widget-outer.dark-background-1 div#oauth-box button.btn-auth-opt:hover,
+  div#widget-outer.dark-background-1 button#metamask.btn-auth-opt:hover {
+    border: 1px solid #F5620F !important;
+  }
+
+</style>
\ No newline at end of file
diff --git a/src/lib/components/_main_/auth/assets/apple.svg b/src/lib/components/_main_/auth/assets/apple.svg
new file mode 100644
index 000000000..c5ea6f061
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/apple.svg
@@ -0,0 +1,10 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6687_170)">
+<path d="M21.792 18.7036C21.429 19.542 20.9994 20.3139 20.5016 21.0235C19.8231 21.9909 19.2676 22.6605 18.8395 23.0323C18.1758 23.6427 17.4647 23.9552 16.7032 23.973C16.1566 23.973 15.4973 23.8175 14.73 23.5019C13.9601 23.1879 13.2525 23.0323 12.6056 23.0323C11.9271 23.0323 11.1994 23.1879 10.4211 23.5019C9.64153 23.8175 9.01355 23.9819 8.53342 23.9982C7.80322 24.0293 7.07539 23.7078 6.3489 23.0323C5.88521 22.6279 5.30523 21.9346 4.61043 20.9524C3.86498 19.9035 3.25211 18.6873 2.77198 17.3006C2.25777 15.8029 2 14.3526 2 12.9485C2 11.3401 2.34754 9.95285 3.04367 8.79037C3.59076 7.85662 4.31859 7.12005 5.22953 6.57932C6.14046 6.0386 7.12473 5.76305 8.18469 5.74542C8.76467 5.74542 9.52524 5.92483 10.4704 6.27741C11.4129 6.63117 12.0181 6.81058 12.2834 6.81058C12.4817 6.81058 13.154 6.6008 14.2937 6.18259C15.3714 5.79475 16.281 5.63417 17.0262 5.69742C19.0454 5.86038 20.5624 6.65636 21.5712 8.09039C19.7654 9.18458 18.8721 10.7171 18.8898 12.6831C18.9061 14.2145 19.4617 15.4888 20.5535 16.5007C21.0483 16.9703 21.6009 17.3332 22.2156 17.591C22.0823 17.9776 21.9416 18.348 21.792 18.7036ZM17.161 0.480396C17.161 1.68067 16.7225 2.80136 15.8484 3.83866C14.7937 5.07181 13.5179 5.78438 12.1343 5.67194C12.1167 5.52795 12.1065 5.3764 12.1065 5.21714C12.1065 4.06488 12.6081 2.83173 13.4989 1.82347C13.9436 1.31296 14.5092 0.888487 15.1951 0.549875C15.8796 0.216314 16.5269 0.0318484 17.1358 0.000259399C17.1536 0.160717 17.161 0.321185 17.161 0.480381V0.480396Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_6687_170">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/discord.svg b/src/lib/components/_main_/auth/assets/discord.svg
new file mode 100644
index 000000000..84210d459
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/discord.svg
@@ -0,0 +1,10 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6687_130938)">
+<path d="M20.317 4.1556C18.7873 3.45371 17.147 2.9366 15.4319 2.64043C15.4007 2.63471 15.3695 2.64899 15.3534 2.67756C15.1424 3.05278 14.9087 3.54228 14.7451 3.92702C12.9004 3.65085 11.0652 3.65085 9.25832 3.92702C9.09465 3.53373 8.85248 3.05278 8.64057 2.67756C8.62448 2.64995 8.59328 2.63566 8.56205 2.64043C6.84791 2.93565 5.20756 3.45277 3.67693 4.1556C3.66368 4.16131 3.65233 4.17084 3.64479 4.18321C0.533392 8.83157 -0.31895 13.3657 0.0991801 17.8436C0.101072 17.8655 0.11337 17.8864 0.130398 17.8998C2.18321 19.4073 4.17171 20.3225 6.12328 20.9291C6.15451 20.9387 6.18761 20.9272 6.20748 20.9015C6.66913 20.2711 7.08064 19.6064 7.43348 18.9073C7.4543 18.8664 7.43442 18.8178 7.39186 18.8016C6.73913 18.554 6.1176 18.2521 5.51973 17.9093C5.47244 17.8817 5.46865 17.814 5.51216 17.7816C5.63797 17.6874 5.76382 17.5893 5.88396 17.4902C5.90569 17.4721 5.93598 17.4683 5.96153 17.4798C9.88928 19.273 14.1415 19.273 18.023 17.4798C18.0485 17.4674 18.0788 17.4712 18.1015 17.4893C18.2216 17.5883 18.3475 17.6874 18.4742 17.7816C18.5177 17.814 18.5149 17.8817 18.4676 17.9093C17.8697 18.2588 17.2482 18.554 16.5945 18.8007C16.552 18.8169 16.533 18.8664 16.5538 18.9073C16.9143 19.6054 17.3258 20.2701 17.7789 20.9006C17.7978 20.9272 17.8319 20.9387 17.8631 20.9291C19.8241 20.3225 21.8126 19.4073 23.8654 17.8998C23.8834 17.8864 23.8948 17.8664 23.8967 17.8445C24.3971 12.6676 23.0585 8.17066 20.3482 4.18416C20.3416 4.17084 20.3303 4.16131 20.317 4.1556ZM8.02002 15.117C6.8375 15.117 5.86313 14.0314 5.86313 12.6981C5.86313 11.3648 6.8186 10.2791 8.02002 10.2791C9.23087 10.2791 10.1958 11.3743 10.1769 12.6981C10.1769 14.0314 9.22141 15.117 8.02002 15.117ZM15.9947 15.117C14.8123 15.117 13.8379 14.0314 13.8379 12.6981C13.8379 11.3648 14.7933 10.2791 15.9947 10.2791C17.2056 10.2791 18.1705 11.3743 18.1516 12.6981C18.1516 14.0314 17.2056 15.117 15.9947 15.117Z" fill="#5865F2"/>
+</g>
+<defs>
+<clipPath id="clip0_6687_130938">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/email-verify.svg b/src/lib/components/_main_/auth/assets/email-verify.svg
new file mode 100644
index 000000000..aea88dd73
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/email-verify.svg
@@ -0,0 +1,11 @@
+<svg width="99" height="72" viewBox="0 0 99 72" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M98.5 60.4994C98.5 66.5128 93.6245 71.3883 87.6111 71.3883H11.3889C5.3755 71.3883 0.5 66.5128 0.5 60.4994V11.4994C0.5 5.48599 5.3755 0.610489 11.3889 0.610489H87.6111C93.6245 0.610489 98.5 5.48599 98.5 11.4994V60.4994Z" fill="#CCD6DD"/>
+<path d="M33.0302 35.0085L2.23365 65.805C2.16015 65.8812 2.13292 65.9765 2.07031 66.0527C2.99587 67.6044 4.2862 68.892 5.83787 69.8203C5.91681 69.7577 6.00937 69.7304 6.08287 69.6569L36.8821 38.8577C37.9438 37.7933 37.9438 36.0729 36.8821 35.0085C35.815 33.9441 34.0945 33.9441 33.0302 35.0085ZM96.9289 66.0527C96.8717 65.9765 96.839 65.8812 96.7655 65.8077L65.9718 35.0085C64.9047 33.9441 63.1842 33.9441 62.1198 35.0085C61.0554 36.0729 61.0554 37.7933 62.1198 38.8577L92.9163 69.6569C92.9871 69.7277 93.0851 69.7577 93.1613 69.8203C94.7157 68.8947 96.0033 67.6044 96.9289 66.0527Z" fill="#99AAB5"/>
+<path d="M87.6111 0.610489H11.3889C5.3755 0.610489 0.5 5.48599 0.5 11.4994V14.3033L40.0485 53.7646C45.2043 58.9178 53.6269 58.9178 58.7882 53.7646L98.5 14.2461V11.4994C98.5 5.48599 93.6245 0.610489 87.6111 0.610489Z" fill="#99AAB5"/>
+<path d="M87.6102 0.610489H11.388C7.06506 0.610489 3.36012 3.15305 1.60156 6.80355L41.7979 47.0026C46.05 51.2547 52.9481 51.2547 57.1975 47.0026L97.3966 6.80355C95.638 3.15305 91.9358 0.610489 87.6102 0.610489Z" fill="#E1E8ED"/>
+<path d="M49.5027 10.0712C42.1445 10.0712 36.1836 15.872 36.1836 23.0325C36.1836 30.1931 42.1445 35.9939 49.5027 35.9939C56.8552 35.9939 62.8217 30.1931 62.8217 23.0325C62.8217 15.872 56.8552 10.0712 49.5027 10.0712ZM55.7227 29.0746C55.0579 29.0417 55.041 29.0198 54.3705 28.8279C54.2579 28.795 53.5536 28.4879 53.1479 28.6908C53.1423 28.6963 53.131 28.6963 53.1254 28.7018C52.962 28.8005 52.793 28.8937 52.6183 28.9814C52.5845 28.9978 52.5507 29.0143 52.5225 29.0307C51.6098 29.4694 50.5844 29.7106 49.5027 29.7106C45.7109 29.7106 42.6347 26.7225 42.6347 23.0325C42.6347 19.3426 45.7109 16.349 49.5027 16.349C53.2944 16.349 56.365 19.3426 56.365 23.0325C56.365 24.003 56.1509 24.9241 55.7678 25.7575C55.6551 26.2181 55.7453 26.4593 55.9875 26.8705C56.427 27.6271 56.9622 28.2028 57.7116 28.6744C57.1031 28.932 56.4383 29.113 55.7227 29.0746Z" fill="#F77C42"/>
+<path d="M49.5062 10.1261C44.4074 10.1261 39.9789 12.6756 37.7422 17.0618L46.4582 16.9577L46.7511 16.9028C47.3146 16.5136 48.5541 16.3436 49.5738 16.3436C53.3656 16.3436 56.4024 19.3372 56.4024 23.0271C56.4024 23.9976 56.1714 24.9187 55.7883 25.7521C55.6756 26.2126 55.7545 26.4539 55.9967 26.8706C56.4418 27.6272 56.9714 28.2029 57.7151 28.6744C57.1067 28.9321 56.4362 29.113 55.7207 29.0747C55.5066 29.0637 55.3545 29.0527 55.2305 29.0418C55.5291 30.0177 55.6925 31.0539 55.6925 32.1286C55.6925 33.0058 55.5854 33.8557 55.3826 34.6671C59.7885 32.5562 62.8197 28.17 62.8197 23.0655C62.8253 15.8995 56.8588 10.1261 49.5062 10.1261Z" fill="#D25E27"/>
+<path d="M49.5042 10.0712C49.2845 10.0712 49.0648 10.0767 48.845 10.0877C53.358 12.1876 56.4736 16.6725 56.4736 21.8702C56.4736 22.6049 56.2821 24.0469 56.2652 24.0524C56.175 24.6061 56.0173 25.1434 55.7975 25.6424C55.6398 26.1797 55.7243 26.4264 55.9835 26.876C56.4229 27.6326 56.9582 28.2083 57.7075 28.6798C57.099 28.9375 56.4342 29.1185 55.713 29.0801C55.0482 29.0472 55.0313 29.0253 54.3608 28.8334C54.2594 28.8059 53.6566 28.5428 53.2453 28.6579C51.4142 32.0901 48.3661 34.5684 44.0898 34.8864C45.7406 35.5991 47.5717 35.9994 49.493 35.9994C56.8455 35.9994 62.812 30.1986 62.812 23.038C62.8233 15.872 56.8568 10.0712 49.5042 10.0712Z" fill="#D25E27"/>
+<path d="M40.1297 26.7719C40.1297 20.823 45.0821 16.0036 51.1951 16.0036C57.2518 16.0036 62.1929 20.8285 62.2775 26.7006C62.6775 25.4669 62.8747 24.0634 62.8747 22.6981C62.8803 15.5431 56.9138 9.74228 49.5612 9.74228C42.2031 9.74228 36.2422 15.5431 36.2422 22.7036C36.2422 27.5285 38.9522 31.7338 42.9637 33.9653C41.2058 32.0573 40.1297 29.5352 40.1297 26.7719Z" fill="#F77C42"/>
+<path d="M53.251 28.7128C53.0313 28.806 52.8059 28.8937 52.5805 28.9759C52.5749 28.9759 52.5693 28.9814 52.5636 28.9814C52.5298 28.9979 52.496 29.0143 52.4679 29.0308C51.5551 29.4694 50.5297 29.7106 49.448 29.7106C49.2057 29.7106 48.9634 29.6997 48.7212 29.6722C48.6367 29.6722 48.5578 29.6722 48.4733 29.6722C42.411 29.6722 37.4022 25.297 36.5909 19.6113C36.2923 20.7079 36.1289 21.8483 36.1289 23.0326C36.1289 28.3619 39.4361 32.94 44.1575 34.9303C48.4 34.5903 51.4312 32.1231 53.251 28.7128Z" fill="#E96F35"/>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/error-alert.svg b/src/lib/components/_main_/auth/assets/error-alert.svg
new file mode 100644
index 000000000..404fbe282
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/error-alert.svg
@@ -0,0 +1,3 @@
+<svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M10 11.3091V7.27713M10 14.2976V14.333M15.0399 17.6911H4.96006C3.5832 17.6911 2.42127 16.7709 2.05569 15.5119C1.89964 14.9745 2.09139 14.4148 2.38467 13.9382L7.42461 4.7482C8.60542 2.82937 11.3946 2.82938 12.5754 4.7482L17.6153 13.9382C17.9086 14.4148 18.1004 14.9745 17.9443 15.5119C17.5787 16.7709 16.4168 17.6911 15.0399 17.6911Z" stroke="#FF5959" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/github-dark.svg b/src/lib/components/_main_/auth/assets/github-dark.svg
new file mode 100644
index 000000000..24d6ee371
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/github-dark.svg
@@ -0,0 +1,17 @@
+<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6735_19604)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12.6676 0.5C9.81885 0.501478 7.06349 1.51046 4.89423 3.34652C2.72497 5.18259 1.28326 7.72601 0.826903 10.522C0.370544 13.318 0.929285 16.1842 2.40323 18.6082C3.87717 21.0321 6.1702 22.8558 8.87229 23.753C9.46841 23.8636 9.69296 23.4941 9.69296 23.18C9.69296 22.8658 9.68103 21.955 9.67705 20.9592C6.33875 21.6804 5.63334 19.5505 5.63334 19.5505C5.08888 18.1674 4.302 17.8039 4.302 17.8039C3.21307 17.065 4.38347 17.0788 4.38347 17.0788C5.58963 17.1637 6.22351 18.3097 6.22351 18.3097C7.29257 20.1333 9.03125 19.6058 9.71481 19.2976C9.82211 18.5251 10.1341 17.9995 10.4779 17.7012C7.81119 17.4008 5.0094 16.3774 5.0094 11.8054C4.99287 10.6197 5.43538 9.47305 6.24537 8.60268C6.12217 8.30236 5.71084 7.08923 6.3626 5.44143C6.3626 5.44143 7.37006 5.12136 9.66316 6.66444C11.63 6.12962 13.7052 6.12962 15.6721 6.66444C17.9632 5.12136 18.9687 5.44143 18.9687 5.44143C19.6224 7.08528 19.2111 8.29841 19.0879 8.60268C19.9004 9.47319 20.3439 10.6218 20.3258 11.8094C20.3258 16.3912 17.5181 17.4008 14.8475 17.6952C15.2767 18.0667 15.6602 18.7918 15.6602 19.9061C15.6602 21.5026 15.6463 22.7868 15.6463 23.18C15.6463 23.4981 15.8628 23.8695 16.4709 23.753C19.1733 22.8557 21.4666 21.0317 22.9405 18.6073C24.4144 16.183 24.9728 13.3163 24.516 10.5201C24.0591 7.7238 22.6167 5.18035 20.4467 3.34461C18.2767 1.50886 15.5207 0.500541 12.6716 0.5H12.6676Z" fill="white"/>
+<path d="M8.69434 19.9757C8.69434 20.0725 8.58307 20.1555 8.44 20.1574C8.29693 20.1594 8.17969 20.0804 8.17969 19.9836C8.17969 19.8868 8.29096 19.8038 8.43403 19.8018C8.5771 19.7998 8.69434 19.8769 8.69434 19.9757Z" fill="white"/>
+<path d="M9.61035 19.8229C9.62824 19.9197 9.52888 20.0205 9.38581 20.0442C9.24274 20.0679 9.11755 20.0106 9.09967 19.9158C9.08179 19.8209 9.18512 19.7182 9.32421 19.6925C9.46331 19.6668 9.59247 19.7261 9.61035 19.8229Z" fill="white"/>
+<path d="M7.71414 19.9084C7.68434 20.0012 7.54921 20.0427 7.41409 20.0032C7.27897 19.9637 7.18955 19.8531 7.21538 19.7582C7.24122 19.6634 7.37833 19.6199 7.51543 19.6634C7.65254 19.7069 7.73997 19.8116 7.71414 19.9084Z" fill="white"/>
+<path d="M6.81555 19.5212C6.74998 19.5943 6.61684 19.5746 6.50755 19.4758C6.39826 19.377 6.37243 19.2427 6.438 19.1715C6.50357 19.1004 6.63671 19.1202 6.74997 19.217C6.86324 19.3138 6.8851 19.4501 6.81555 19.5212Z" fill="white"/>
+<path d="M6.17282 18.8568C6.0993 18.9082 5.97411 18.8568 5.90456 18.754C5.88533 18.7356 5.87004 18.7135 5.85959 18.6891C5.84914 18.6646 5.84375 18.6383 5.84375 18.6118C5.84375 18.5852 5.84914 18.5589 5.85959 18.5345C5.87004 18.5101 5.88533 18.488 5.90456 18.4695C5.97808 18.4201 6.10328 18.4695 6.17282 18.5703C6.24237 18.6711 6.24436 18.8054 6.17282 18.8568Z" fill="white"/>
+<path d="M5.6992 18.1711C5.65805 18.1918 5.61097 18.1975 5.56602 18.1874C5.52107 18.1773 5.48105 18.152 5.4528 18.1158C5.3753 18.0328 5.3594 17.9182 5.41901 17.8669C5.47862 17.8155 5.58594 17.8392 5.66343 17.9222C5.74093 18.0052 5.75881 18.1198 5.6992 18.1711Z" fill="white"/>
+<path d="M5.21155 17.6316C5.18572 17.6909 5.09034 17.7087 5.01284 17.6672C4.93535 17.6257 4.87773 17.5487 4.90554 17.4874C4.93336 17.4262 5.02676 17.4104 5.10425 17.4518C5.18175 17.4933 5.24136 17.5724 5.21155 17.6316Z" fill="white"/>
+</g>
+<defs>
+<clipPath id="clip0_6735_19604">
+<rect width="24" height="24" fill="white" transform="translate(0.667969)"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/github.svg b/src/lib/components/_main_/auth/assets/github.svg
new file mode 100644
index 000000000..e20971912
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/github.svg
@@ -0,0 +1,17 @@
+<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6726_167)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12.6676 0.5C9.81885 0.501478 7.06349 1.51046 4.89423 3.34652C2.72497 5.18259 1.28326 7.72601 0.826903 10.522C0.370544 13.318 0.929285 16.1842 2.40323 18.6082C3.87717 21.0321 6.1702 22.8558 8.87229 23.753C9.46841 23.8636 9.69296 23.4941 9.69296 23.18C9.69296 22.8658 9.68103 21.955 9.67705 20.9592C6.33875 21.6804 5.63334 19.5505 5.63334 19.5505C5.08888 18.1674 4.302 17.8039 4.302 17.8039C3.21307 17.065 4.38347 17.0788 4.38347 17.0788C5.58963 17.1637 6.22351 18.3097 6.22351 18.3097C7.29257 20.1333 9.03125 19.6058 9.71481 19.2976C9.82211 18.5251 10.1341 17.9995 10.4779 17.7012C7.81119 17.4008 5.0094 16.3774 5.0094 11.8054C4.99287 10.6197 5.43538 9.47305 6.24537 8.60268C6.12217 8.30236 5.71084 7.08923 6.3626 5.44143C6.3626 5.44143 7.37006 5.12136 9.66316 6.66444C11.63 6.12962 13.7052 6.12962 15.6721 6.66444C17.9632 5.12136 18.9687 5.44143 18.9687 5.44143C19.6224 7.08528 19.2111 8.29841 19.0879 8.60268C19.9004 9.47319 20.3439 10.6218 20.3258 11.8094C20.3258 16.3912 17.5181 17.4008 14.8475 17.6952C15.2767 18.0667 15.6602 18.7918 15.6602 19.9061C15.6602 21.5026 15.6463 22.7868 15.6463 23.18C15.6463 23.4981 15.8628 23.8695 16.4709 23.753C19.1733 22.8557 21.4666 21.0317 22.9405 18.6073C24.4144 16.183 24.9728 13.3163 24.516 10.5201C24.0591 7.7238 22.6167 5.18035 20.4467 3.34461C18.2767 1.50886 15.5207 0.500541 12.6716 0.5H12.6676Z" fill="#191717"/>
+<path d="M8.69434 19.9753C8.69434 20.0721 8.58307 20.1551 8.44 20.157C8.29693 20.159 8.17969 20.08 8.17969 19.9832C8.17969 19.8864 8.29096 19.8034 8.43403 19.8014C8.5771 19.7994 8.69434 19.8765 8.69434 19.9753Z" fill="#191717"/>
+<path d="M9.61035 19.8231C9.62824 19.9199 9.52888 20.0207 9.38581 20.0444C9.24274 20.0681 9.11755 20.0108 9.09967 19.916C9.08179 19.8212 9.18512 19.7184 9.32421 19.6927C9.46331 19.6671 9.59247 19.7263 9.61035 19.8231Z" fill="#191717"/>
+<path d="M7.71414 19.9081C7.68434 20.001 7.54921 20.0424 7.41409 20.0029C7.27897 19.9634 7.18955 19.8528 7.21538 19.7579C7.24122 19.6631 7.37833 19.6196 7.51543 19.6631C7.65254 19.7066 7.73997 19.8113 7.71414 19.9081Z" fill="#191717"/>
+<path d="M6.81555 19.5208C6.74998 19.5939 6.61684 19.5742 6.50755 19.4754C6.39826 19.3766 6.37243 19.2423 6.438 19.1711C6.50357 19.1 6.63671 19.1198 6.74997 19.2166C6.86324 19.3134 6.8851 19.4497 6.81555 19.5208Z" fill="#191717"/>
+<path d="M6.17282 18.857C6.0993 18.9084 5.97411 18.857 5.90456 18.7542C5.88533 18.7358 5.87004 18.7137 5.85959 18.6893C5.84914 18.6648 5.84375 18.6385 5.84375 18.612C5.84375 18.5854 5.84914 18.5591 5.85959 18.5347C5.87004 18.5103 5.88533 18.4882 5.90456 18.4697C5.97808 18.4203 6.10328 18.4697 6.17282 18.5705C6.24237 18.6713 6.24436 18.8056 6.17282 18.857Z" fill="#191717"/>
+<path d="M5.6992 18.1714C5.65805 18.192 5.61097 18.1978 5.56602 18.1877C5.52107 18.1776 5.48105 18.1523 5.4528 18.1161C5.3753 18.0331 5.3594 17.9185 5.41901 17.8671C5.47862 17.8157 5.58594 17.8395 5.66343 17.9224C5.74093 18.0054 5.75881 18.12 5.6992 18.1714Z" fill="#191717"/>
+<path d="M5.21155 17.632C5.18572 17.6913 5.09034 17.7091 5.01284 17.6676C4.93535 17.6261 4.87773 17.549 4.90554 17.4878C4.93336 17.4265 5.02676 17.4107 5.10425 17.4522C5.18175 17.4937 5.24136 17.5727 5.21155 17.632Z" fill="#191717"/>
+</g>
+<defs>
+<clipPath id="clip0_6726_167">
+<rect width="24" height="24" fill="white" transform="translate(0.667969)"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/google.svg b/src/lib/components/_main_/auth/assets/google.svg
new file mode 100644
index 000000000..b6d9673db
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/google.svg
@@ -0,0 +1,13 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6687_130933)">
+<path d="M23.7682 12.2764C23.7682 11.4607 23.7021 10.6406 23.561 9.83806H12.2422V14.459H18.7239C18.455 15.9494 17.5907 17.2678 16.3252 18.1056V21.1039H20.1922C22.463 19.0139 23.7682 15.9273 23.7682 12.2764Z" fill="#4285F4"/>
+<path d="M12.2391 24.0008C15.4756 24.0008 18.205 22.9382 20.1936 21.1039L16.3266 18.1055C15.2507 18.8375 13.8618 19.252 12.2435 19.252C9.11291 19.252 6.45849 17.1399 5.50607 14.3003H1.51562V17.3912C3.55274 21.4434 7.70192 24.0008 12.2391 24.0008Z" fill="#34A853"/>
+<path d="M5.50473 14.3003C5.00206 12.8099 5.00206 11.1961 5.50473 9.70576V6.61482H1.51869C-0.183313 10.0056 -0.183313 14.0005 1.51869 17.3912L5.50473 14.3003Z" fill="#FBBC04"/>
+<path d="M12.2391 4.74966C13.9499 4.7232 15.6034 5.36697 16.8425 6.54867L20.2685 3.12262C18.0991 1.0855 15.2198 -0.034466 12.2391 0.000808666C7.70192 0.000808666 3.55274 2.55822 1.51562 6.61481L5.50166 9.70575C6.44967 6.86173 9.1085 4.74966 12.2391 4.74966Z" fill="#EA4335"/>
+</g>
+<defs>
+<clipPath id="clip0_6687_130933">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/lodaer-anim-2.svg b/src/lib/components/_main_/auth/assets/lodaer-anim-2.svg
new file mode 100644
index 000000000..417135cc2
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/lodaer-anim-2.svg
@@ -0,0 +1,5 @@
+<svg id="eYl9t53jwL21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" shape-rendering="geometricPrecision" text-rendering="geometricPrecision">
+<style><![CDATA[
+#eYl9t53jwL23_tr {animation: eYl9t53jwL23_tr__tr 2000ms linear infinite normal forwards}@keyframes eYl9t53jwL23_tr__tr { 0% {transform: translate(23.99953px,24.69003px) rotate(0deg)} 5% {transform: translate(23.99953px,24.69003px) rotate(0deg)} 25% {transform: translate(23.99953px,24.69003px) rotate(90deg)} 50% {transform: translate(23.99953px,24.69003px) rotate(180deg)} 75% {transform: translate(23.99953px,24.69003px) rotate(270deg)} 100% {transform: translate(23.99953px,24.69003px) rotate(360deg)}}
+]]></style>
+<rect width="48" height="48" rx="0" ry="0" fill="none"/><g id="eYl9t53jwL23_tr" transform="translate(23.99953,24.69003) rotate(0)"><g transform="translate(-23.99953,-24.69003)"><g clip-path="url(#eYl9t53jwL210)"><g><path d="M38.5,24c0-2.7515-.7829-5.4463-2.2572-7.7695-1.4744-2.3232-3.5793-4.1789-6.069-5.3505" opacity="0.05" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M38.5,24c0-3.688-1.4053-7.2375-3.93-9.9259" opacity="0.1" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M38.5,24c0-1.8275-.3455-3.6386-1.0182-5.3378" opacity="0.3" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M37,24c0-.0272-.0001-.0544-.0003-.0817" fill="none" stroke="#f5620f" stroke-width="6" stroke-linecap="round"/></g><clipPath id="eYl9t53jwL210"><rect width="32" height="32" rx="0" ry="0" transform="translate(8 8)" fill="#fff"/></clipPath></g><g clip-path="url(#eYl9t53jwL218)"><g><path d="M16.7491,11.4427c-2.3829,1.3757-4.3252,3.4011-5.6,5.8395-1.27476,2.4385-1.82942,5.1893-1.59918,7.9311" opacity="0.05" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7491,11.4427c-3.194,1.844-5.5652,4.8357-6.6312,8.3664" opacity="0.1" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7491,11.4427c-1.5827.9137-2.9784,2.1184-4.1136,3.5507" opacity="0.3" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M17.4991,12.7417c-.0236.0136-.0472.0273-.0706.0411" fill="none" stroke="#f5620f" stroke-width="6" stroke-linecap="round"/></g><clipPath id="eYl9t53jwL218"><rect width="32" height="32" rx="0" ry="0" transform="matrix(-.5-.866025 0.866025-.5 18.1445 45.8564)" fill="#fff"/></clipPath></g><g clip-path="url(#eYl9t53jwL226)"><g><path d="M16.7509,36.5574c2.3829,1.3758,5.1081,2.0451,7.8572,1.9299s5.4088-1.0103,7.6682-2.5806" opacity="0.05" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7509,36.5574c3.194,1.844,6.9705,2.4017,10.5611,1.5595" opacity="0.1" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7509,36.5574c1.5827.9138,3.3239,1.5201,5.1318,1.7871" opacity="0.3" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M17.5009,35.2584c.0236.0136.0472.0271.0709.0406" fill="none" stroke="#f5620f" stroke-width="6" stroke-linecap="round"/></g><clipPath id="eYl9t53jwL226"><rect width="32" height="32" rx="0" ry="0" transform="matrix(-.5 0.866025-.866025-.5 45.8555 18.1436)" fill="#fff"/></clipPath></g></g></g></svg>
diff --git a/src/lib/components/_main_/auth/assets/lodaer-anim.svg b/src/lib/components/_main_/auth/assets/lodaer-anim.svg
new file mode 100644
index 000000000..50d5fc379
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/lodaer-anim.svg
@@ -0,0 +1,6 @@
+<svg id="e0yVXOkaTlP1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" shape-rendering="geometricPrecision" text-rendering="geometricPrecision"><rect width="48" height="48" rx="0" ry="0" fill="none"/><g id="e0yVXOkaTlP3"><g clip-path="url(#e0yVXOkaTlP10)"><g><path d="M38.5,24c0-2.7515-.7829-5.4463-2.2572-7.7695-1.4744-2.3232-3.5793-4.1789-6.069-5.3505" opacity="0.05" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M38.5,24c0-3.688-1.4053-7.2375-3.93-9.9259" opacity="0.1" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M38.5,24c0-1.8275-.3455-3.6386-1.0182-5.3378" opacity="0.3" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M37,24c0-.0272-.0001-.0544-.0003-.0817" fill="none" stroke="#f5620f" stroke-width="6" stroke-linecap="round"/></g><clipPath id="e0yVXOkaTlP10"><rect width="32" height="32" rx="0" ry="0" transform="translate(8 8)" fill="#fff"/></clipPath></g><g clip-path="url(#e0yVXOkaTlP18)"><g><path d="M16.7491,11.4427c-2.3829,1.3757-4.3252,3.4011-5.6,5.8395-1.27476,2.4385-1.82942,5.1893-1.59918,7.9311" opacity="0.05" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7491,11.4427c-3.194,1.844-5.5652,4.8357-6.6312,8.3664" opacity="0.1" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7491,11.4427c-1.5827.9137-2.9784,2.1184-4.1136,3.5507" opacity="0.3" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M17.4991,12.7417c-.0236.0136-.0472.0273-.0706.0411" fill="none" stroke="#f5620f" stroke-width="6" stroke-linecap="round"/></g><clipPath id="e0yVXOkaTlP18"><rect width="32" height="32" rx="0" ry="0" transform="matrix(-.5-.866025 0.866025-.5 18.1445 45.8564)" fill="#fff"/></clipPath></g><g clip-path="url(#e0yVXOkaTlP26)"><g><path d="M16.7509,36.5574c2.3829,1.3758,5.1081,2.0451,7.8572,1.9299s5.4088-1.0103,7.6682-2.5806" opacity="0.05" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7509,36.5574c3.194,1.844,6.9705,2.4017,10.5611,1.5595" opacity="0.1" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M16.7509,36.5574c1.5827.9138,3.3239,1.5201,5.1318,1.7871" opacity="0.3" fill="none" stroke="#f5620f" stroke-width="3" stroke-linecap="round"/><path d="M17.5009,35.2584c.0236.0136.0472.0271.0709.0406" fill="none" stroke="#f5620f" stroke-width="6" stroke-linecap="round"/></g><clipPath id="e0yVXOkaTlP26"><rect width="32" height="32" rx="0" ry="0" transform="matrix(-.5 0.866025-.866025-.5 45.8555 18.1436)" fill="#fff"/></clipPath></g></g>
+<script><![CDATA[
+!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):((t="undefined"!=typeof globalThis?globalThis:t||self).__SVGATOR_PLAYER__=t.__SVGATOR_PLAYER__||{},t.__SVGATOR_PLAYER__["5c7f360c"]=n())}(this,(function(){"use strict";function t(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function n(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?t(Object(r),!0).forEach((function(t){o(n,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(r,t))}))}return n}function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function i(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function u(t,n,e){return n&&i(t.prototype,n),e&&i(t,e),t}function o(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function a(t){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,n){return(l=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t})(t,n)}function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function f(t,n,e){return(f=s()?Reflect.construct:function(t,n,e){var r=[null];r.push.apply(r,n);var i=new(Function.bind.apply(t,r));return e&&l(i,e.prototype),i}).apply(null,arguments)}function c(t,n){if(n&&("object"==typeof n||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function h(t,n,e){return(h="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,n,e){var r=function(t,n){for(;!Object.prototype.hasOwnProperty.call(t,n)&&null!==(t=a(t)););return t}(t,n);if(r){var i=Object.getOwnPropertyDescriptor(r,n);return i.get?i.get.call(e):i.value}})(t,n,e||t)}function v(t){return function(t){if(Array.isArray(t))return y(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,n){if(!t)return;if("string"==typeof t)return y(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return y(t,n)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}Number.isInteger||(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t}),Number.EPSILON||(Number.EPSILON=2220446049250313e-31);var g=d(Math.pow(10,-6));function d(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6;if(Number.isInteger(t))return t;var e=Math.pow(10,n);return Math.round((+t+Number.EPSILON)*e)/e}function p(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g;return Math.abs(t-n)<e}var m=Math.PI/180;function b(t){return t}function w(t,n,e){var r=1-e;return 3*e*r*(t*r+n*e)+e*e*e}function x(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return t<0||t>1||e<0||e>1?null:p(t,n)&&p(e,r)?b:function(i){if(i<=0)return t>0?i*n/t:0===n&&e>0?i*r/e:0;if(i>=1)return e<1?1+(i-1)*(r-1)/(e-1):1===e&&t<1?1+(i-1)*(n-1)/(t-1):1;for(var u,o=0,a=1;o<a;){var l=w(t,e,u=(o+a)/2);if(p(i,l))break;l<i?o=u:a=u}return w(n,r,u)}}function A(){return 1}function k(t){return 1===t?1:0}function _(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(1===t){if(0===n)return k;if(1===n)return A}var e=1/t;return function(t){return t>=1?1:(t+=n*e)-t%e}}var S=Math.sin,O=Math.cos,j=Math.acos,M=Math.asin,P=Math.tan,E=Math.atan2,I=Math.PI/180,R=180/Math.PI,F=Math.sqrt,N=function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;r(this,t),this.m=[n,e,i,u,o,a],this.i=null,this.w=null,this.s=null}return u(t,[{key:"determinant",get:function(){var t=this.m;return t[0]*t[3]-t[1]*t[2]}},{key:"isIdentity",get:function(){if(null===this.i){var t=this.m;this.i=1===t[0]&&0===t[1]&&0===t[2]&&1===t[3]&&0===t[4]&&0===t[5]}return this.i}},{key:"point",value:function(t,n){var e=this.m;return{x:e[0]*t+e[2]*n+e[4],y:e[1]*t+e[3]*n+e[5]}}},{key:"translateSelf",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t&&!n)return this;var e=this.m;return e[4]+=e[0]*t+e[2]*n,e[5]+=e[1]*t+e[3]*n,this.w=this.s=this.i=null,this}},{key:"rotateSelf",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(t%=360){var n=S(t*=I),e=O(t),r=this.m,i=r[0],u=r[1];r[0]=i*e+r[2]*n,r[1]=u*e+r[3]*n,r[2]=r[2]*e-i*n,r[3]=r[3]*e-u*n,this.w=this.s=this.i=null}return this}},{key:"scaleSelf",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(1!==t||1!==n){var e=this.m;e[0]*=t,e[1]*=t,e[2]*=n,e[3]*=n,this.w=this.s=this.i=null}return this}},{key:"skewSelf",value:function(t,n){if(n%=360,(t%=360)||n){var e=this.m,r=e[0],i=e[1],u=e[2],o=e[3];t&&(t=P(t*I),e[2]+=r*t,e[3]+=i*t),n&&(n=P(n*I),e[0]+=u*n,e[1]+=o*n),this.w=this.s=this.i=null}return this}},{key:"resetSelf",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=this.m;return o[0]=t,o[1]=n,o[2]=e,o[3]=r,o[4]=i,o[5]=u,this.w=this.s=this.i=null,this}},{key:"recomposeSelf",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;return this.isIdentity||this.resetSelf(),t&&(t.x||t.y)&&this.translateSelf(t.x,t.y),n&&this.rotateSelf(n),e&&(e.x&&this.skewSelf(e.x,0),e.y&&this.skewSelf(0,e.y)),!r||1===r.x&&1===r.y||this.scaleSelf(r.x,r.y),i&&(i.x||i.y)&&this.translateSelf(i.x,i.y),this}},{key:"decompose",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,e=this.m,r=e[0]*e[0]+e[1]*e[1],i=[[e[0],e[1]],[e[2],e[3]]],u=F(r);if(0===u)return{origin:{x:d(e[4]),y:d(e[5])},translate:{x:d(t),y:d(n)},scale:{x:0,y:0},skew:{x:0,y:0},rotate:0};i[0][0]/=u,i[0][1]/=u;var o=e[0]*e[3]-e[1]*e[2]<0;o&&(u=-u);var a=i[0][0]*i[1][0]+i[0][1]*i[1][1];i[1][0]-=i[0][0]*a,i[1][1]-=i[0][1]*a;var l=F(i[1][0]*i[1][0]+i[1][1]*i[1][1]);if(0===l)return{origin:{x:d(e[4]),y:d(e[5])},translate:{x:d(t),y:d(n)},scale:{x:d(u),y:0},skew:{x:0,y:0},rotate:0};i[1][0]/=l,i[1][1]/=l,a/=l;var s=0;return i[1][1]<0?(s=j(i[1][1])*R,i[0][1]<0&&(s=360-s)):s=M(i[0][1])*R,o&&(s=-s),a=E(a,F(i[0][0]*i[0][0]+i[0][1]*i[0][1]))*R,o&&(a=-a),{origin:{x:d(e[4]),y:d(e[5])},translate:{x:d(t),y:d(n)},scale:{x:d(u),y:d(l)},skew:{x:d(a),y:0},rotate:d(s)}}},{key:"clone",value:function(){var t=this.m;return new this.constructor(t[0],t[1],t[2],t[3],t[4],t[5])}},{key:"toString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:" ";if(null===this.s){var n=this.m.map((function(t){return d(t)}));1===n[0]&&0===n[1]&&0===n[2]&&1===n[3]?this.s="translate("+n[4]+t+n[5]+")":this.s="matrix("+n.join(t)+")"}return this.s}}],[{key:"create",value:function(t){return t?Array.isArray(t)?f(this,v(t)):t instanceof this?t.clone():(new this).recomposeSelf(t.origin,t.rotate,t.skew,t.scale,t.translate):new this}}]),t}();function T(t,n,e){return t>=.5?e:n}function q(t,n,e){return 0===t||n===e?n:t*(e-n)+n}function B(t,n,e){var r=q(t,n,e);return r<=0?0:r}function L(t,n,e){var r=q(t,n,e);return r<=0?0:r>=1?1:r}function C(t,n,e){return 0===t?n:1===t?e:{x:q(t,n.x,e.x),y:q(t,n.y,e.y)}}function D(t,n,e){var r=function(t,n,e){return Math.round(q(t,n,e))}(t,n,e);return r<=0?0:r>=255?255:r}function z(t,n,e){return 0===t?n:1===t?e:{r:D(t,n.r,e.r),g:D(t,n.g,e.g),b:D(t,n.b,e.b),a:q(t,null==n.a?1:n.a,null==e.a?1:e.a)}}function V(t,n){for(var e=[],r=0;r<t;r++)e.push(n);return e}function G(t,n){if(--n<=0)return t;var e=(t=Object.assign([],t)).length;do{for(var r=0;r<e;r++)t.push(t[r])}while(--n>0);return t}var Y,$=function(){function t(n){r(this,t),this.list=n,this.length=n.length}return u(t,[{key:"setAttribute",value:function(t,n){for(var e=this.list,r=0;r<this.length;r++)e[r].setAttribute(t,n)}},{key:"removeAttribute",value:function(t){for(var n=this.list,e=0;e<this.length;e++)n[e].removeAttribute(t)}},{key:"style",value:function(t,n){for(var e=this.list,r=0;r<this.length;r++)e[r].style[t]=n}}]),t}(),U=/-./g,Q=function(t,n){return n.toUpperCase()};function H(t){return"function"==typeof t?t:T}function J(t){return t?"function"==typeof t?t:Array.isArray(t)?function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;if(!Array.isArray(t))return n;switch(t.length){case 1:return _(t[0])||n;case 2:return _(t[0],t[1])||n;case 4:return x(t[0],t[1],t[2],t[3])||n}return n}(t,null):function(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:b;switch(t){case"linear":return b;case"steps":return _(n.steps||1,n.jump||0)||e;case"bezier":case"cubic-bezier":return x(n.x1||0,n.y1||0,n.x2||0,n.y2||0)||e}return e}(t.type,t.value,null):null}function Z(t,n,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=n.length-1;if(t<=n[0].t)return r?[0,0,n[0].v]:n[0].v;if(t>=n[i].t)return r?[i,1,n[i].v]:n[i].v;var u,o=n[0],a=null;for(u=1;u<=i;u++){if(!(t>n[u].t)){a=n[u];break}o=n[u]}return null==a?r?[i,1,n[i].v]:n[i].v:o.t===a.t?r?[u,1,a.v]:a.v:(t=(t-o.t)/(a.t-o.t),o.e&&(t=o.e(t)),r?[u,t,e(t,o.v,a.v)]:e(t,o.v,a.v))}function K(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return t&&t.length?"function"!=typeof n?null:("function"!=typeof e&&(e=null),function(r){var i=Z(r,t,n);return null!=i&&e&&(i=e(i)),i}):null}function W(t,n){return t.t-n.t}function X(t,n,r,i,u){var o,a="@"===r[0],l="#"===r[0],s=Y[r],f=T;switch(a?(o=r.substr(1),r=o.replace(U,Q)):l&&(r=r.substr(1)),e(s)){case"function":if(f=s(i,u,Z,J,r,a,n,t),l)return f;break;case"string":f=K(i,H(s));break;case"object":if((f=K(i,H(s.i),s.f))&&"function"==typeof s.u)return s.u(n,f,r,a,t)}return f?function(t,n,e){if(arguments.length>3&&void 0!==arguments[3]&&arguments[3])return t instanceof $?function(r){return t.style(n,e(r))}:function(r){return t.style[n]=e(r)};if(Array.isArray(n)){var r=n.length;return function(i){var u=e(i);if(null==u)for(var o=0;o<r;o++)t[o].removeAttribute(n);else for(var a=0;a<r;a++)t[a].setAttribute(n,u)}}return function(r){var i=e(r);null==i?t.removeAttribute(n):t.setAttribute(n,i)}}(n,r,f,a):null}function tt(t,n,r,i){if(!i||"object"!==e(i))return null;var u=null,o=null;return Array.isArray(i)?o=function(t){if(!t||!t.length)return null;for(var n=0;n<t.length;n++)t[n].e&&(t[n].e=J(t[n].e));return t.sort(W)}(i):(o=i.keys,u=i.data||null),o?X(t,n,r,o,u):null}function nt(t,n,e){if(!e)return null;var r=[];for(var i in e)if(e.hasOwnProperty(i)){var u=tt(t,n,i,e[i]);u&&r.push(u)}return r.length?r:null}function et(t,n){if(!n.settings.duration||n.settings.duration<0)return null;var e,r,i,u,o,a=function(t,n){if(!n)return null;var e=[];if(Array.isArray(n))for(var r=n.length,i=0;i<r;i++){var u=n[i];if(2===u.length){var o=null;if("string"==typeof u[0])o=t.getElementById(u[0]);else if(Array.isArray(u[0])){o=[];for(var a=0;a<u[0].length;a++)if("string"==typeof u[0][a]){var l=t.getElementById(u[0][a]);l&&o.push(l)}o=o.length?1===o.length?o[0]:new $(o):null}if(o){var s=nt(t,o,u[1]);s&&(e=e.concat(s))}}}else for(var f in n)if(n.hasOwnProperty(f)){var c=t.getElementById(f);if(c){var h=nt(t,c,n[f]);h&&(e=e.concat(h))}}return e.length?e:null}(t,n.elements);return a?(e=a,r=n.settings,i=r.duration,u=e.length,o=null,function(t,n){var a=r.iterations||1/0,l=(r.alternate&&a%2==0)^r.direction>0?i:0,s=t%i,f=1+(t-s)/i;n*=r.direction,r.alternate&&f%2==0&&(n=-n);var c=!1;if(f>a)s=l,c=!0,-1===r.fill&&(s=r.direction>0?0:i);else if(n<0&&(s=i-s),s===o)return!1;o=s;for(var h=0;h<u;h++)e[h](s);return c}):null}function rt(t,n){if(Y=n,!t||!t.root||!Array.isArray(t.animations))return null;var e=function(t){for(var n=document.getElementsByTagName("svg"),e=0;e<n.length;e++)if(n[e].id===t.root&&!n[e].svgatorAnimation)return n[e].svgatorAnimation=!0,n[e];return null}(t);if(!e)return null;var r=t.animations.map((function(t){return et(e,t)})).filter((function(t){return!!t}));return r.length?{svg:e,animations:r,animationSettings:t.animationSettings,options:t.options||void 0}:null}function it(t){return+("0x"+(t.replace(/[^0-9a-fA-F]+/g,"")||27))}function ut(t,n,e){return!t||!e||n>t.length?t:t.substring(0,n)+ut(t.substring(n+1),e,e)}function ot(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:27;return!t||t%n?t%n:ot(t/n,n)}function at(t,n,e){if(t&&t.length){var r=it(e),i=it(n),u=ot(r)+5,o=ut(t,ot(r,5),u);return o=o.replace(/\x7c$/g,"==").replace(/\x2f$/g,"="),o=function(t,n,e){var r=+("0x"+t.substring(0,4));t=t.substring(4);for(var i=n%r+e%27,u=[],o=0;o<t.length;o+=2)if("|"!==t[o]){var a=+("0x"+t[o]+t[o+1])-i;u.push(a)}else{var l=+("0x"+t.substring(o+1,o+1+4))-i;o+=3,u.push(l)}return String.fromCharCode.apply(String,u)}(o=(o=atob(o)).replace(/[\x41-\x5A]/g,""),i,r),o=JSON.parse(o)}}var lt=[{key:"alternate",def:!1},{key:"fill",def:1},{key:"iterations",def:0},{key:"direction",def:1},{key:"speed",def:1},{key:"fps",def:100}],st=function(){function t(n,e){var i=this,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;r(this,t),this._id=0,this._running=!1,this._rollingBack=!1,this._animations=n,this._settings=e,(!u||u<"2022-05-02")&&delete this._settings.speed,lt.forEach((function(t){i._settings[t.key]=i._settings[t.key]||t.def})),this.duration=e.duration,this.offset=e.offset||0,this.rollbackStartOffset=0}return u(t,[{key:"alternate",get:function(){return this._settings.alternate}},{key:"fill",get:function(){return this._settings.fill}},{key:"iterations",get:function(){return this._settings.iterations}},{key:"direction",get:function(){return this._settings.direction}},{key:"speed",get:function(){return this._settings.speed}},{key:"fps",get:function(){return this._settings.fps}},{key:"maxFiniteDuration",get:function(){return this.iterations>0?this.iterations*this.duration:this.duration}},{key:"_apply",value:function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=this._animations,r=e.length,i=0,u=0;u<r;u++)n[u]?i++:(n[u]=e[u](t,1),n[u]&&i++);return i}},{key:"_rollback",value:function(t){var n=this,e=1/0,r=null;this.rollbackStartOffset=t,this._rollingBack=!0,this._running=!0;this._id=window.requestAnimationFrame((function i(u){if(n._rollingBack){null==r&&(r=u);var o=Math.round(t-(u-r)*n.speed);if(o>n.duration&&e!==1/0){var a=!!n.alternate&&o/n.duration%2>1,l=o%n.duration;o=(l+=a?n.duration:0)||n.duration}var s=(n.fps?1e3/n.fps:0)*n.speed,f=Math.max(0,o);f<=e-s&&(n.offset=f,e=f,n._apply(f));var c=n.iterations>0&&-1===n.fill&&o>=n.maxFiniteDuration;(o<=0||n.offset<o||c)&&n.stop(),n._id=window.requestAnimationFrame(i)}}))}},{key:"_start",value:function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=-1/0,r=null,i={};this._running=!0;var u=function u(o){null==r&&(r=o);var a=Math.round((o-r)*t.speed+n),l=(t.fps?1e3/t.fps:0)*t.speed;if(a>=e+l&&!t._rollingBack&&(t.offset=a,e=a,t._apply(a,i)===t._animations.length))return void t.pause(!0);t._id=window.requestAnimationFrame(u)};this._id=window.requestAnimationFrame(u)}},{key:"_pause",value:function(){this._id&&window.cancelAnimationFrame(this._id),this._running=!1}},{key:"play",value:function(){if(!this._running)return this._rollingBack?this._rollback(this.offset):this._start(this.offset)}},{key:"stop",value:function(){this._pause(),this.offset=0,this.rollbackStartOffset=0,this._rollingBack=!1,this._apply(0)}},{key:"reachedToEnd",value:function(){return this.iterations>0&&this.offset>=this.iterations*this.duration}},{key:"restart",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.stop(t),this.play(t)}},{key:"pause",value:function(){this._pause()}},{key:"reverse",value:function(){this.direction=-this.direction}}],[{key:"build",value:function(t,n){delete t.animationSettings,t.options=at(t.options,t.root,"5c7f360c"),t.animations.map((function(n){n.settings=at(n.s,t.root,"5c7f360c"),delete n.s,t.animationSettings||(t.animationSettings=n.settings)}));var e=t.version;if(!(t=rt(t,n)))return null;var r=t.options||{},i=new this(t.animations,t.animationSettings,e);return{el:t.svg,options:r,player:i}}},{key:"push",value:function(t){return this.build(t)}},{key:"init",value:function(){var t=this,n=window.__SVGATOR_PLAYER__&&window.__SVGATOR_PLAYER__["5c7f360c"];Array.isArray(n)&&n.splice(0).forEach((function(n){return t.build(n)}))}}]),t}();function ft(t){return d(t)+""}function ct(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return t&&t.length?t.map(ft).join(n):""}function ht(t){if(!t)return"transparent";if(null==t.a||t.a>=1){var n=function(t){return 1===(t=parseInt(t).toString(16)).length?"0"+t:t},e=function(t){return t.charAt(0)===t.charAt(1)},r=n(t.r),i=n(t.g),u=n(t.b);return e(r)&&e(i)&&e(u)&&(r=r.charAt(0),i=i.charAt(0),u=u.charAt(0)),"#"+r+i+u}return"rgba("+t.r+","+t.g+","+t.b+","+t.a+")"}function vt(t){return t?"url(#"+t+")":"none"}!function(){for(var t=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n){var e=Date.now(),r=Math.max(0,16-(e-t)),i=window.setTimeout((function(){n(e+r)}),r);return t=e+r,i},window.cancelAnimationFrame=window.clearTimeout)}();var yt={f:null,i:function(t,n,e){return 0===t?n:1===t?e:{x:B(t,n.x,e.x),y:B(t,n.y,e.y)}},u:function(t,n){return function(e){var r=n(e);t.setAttribute("rx",ft(r.x)),t.setAttribute("ry",ft(r.y))}}},gt={f:null,i:function(t,n,e){return 0===t?n:1===t?e:{width:B(t,n.width,e.width),height:B(t,n.height,e.height)}},u:function(t,n){return function(e){var r=n(e);t.setAttribute("width",ft(r.width)),t.setAttribute("height",ft(r.height))}}};Object.freeze({M:2,L:2,Z:0,H:1,V:1,C:6,Q:4,T:2,S:4,A:7});var dt={},pt=null;function mt(t){var n=function(){if(pt)return pt;if("object"!==("undefined"==typeof document?"undefined":e(document))||!document.createElementNS)return{};var t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t&&t.style?(t.style.position="absolute",t.style.opacity="0.01",t.style.zIndex="-9999",t.style.left="-9999px",t.style.width="1px",t.style.height="1px",pt={svg:t}):{}}().svg;if(!n)return function(t){return null};var r=document.createElementNS(n.namespaceURI,"path");r.setAttributeNS(null,"d",t),r.setAttributeNS(null,"fill","none"),r.setAttributeNS(null,"stroke","none"),n.appendChild(r);var i=r.getTotalLength();return function(t){var n=r.getPointAtLength(i*t);return{x:n.x,y:n.y}}}function bt(t){return dt[t]?dt[t]:dt[t]=mt(t)}function wt(t,n,e,r){if(!t||!r)return!1;var i=["M",t.x,t.y];if(n&&e&&(i.push("C"),i.push(n.x),i.push(n.y),i.push(e.x),i.push(e.y)),n?!e:e){var u=n||e;i.push("Q"),i.push(u.x),i.push(u.y)}return n||e||i.push("L"),i.push(r.x),i.push(r.y),i.join(" ")}function xt(t,n,e,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,u=wt(t,n,e,r),o=bt(u);try{return o(i)}catch(t){return null}}function At(t,n,e){return t+(n-t)*e}function kt(t,n,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i={x:At(t.x,n.x,e),y:At(t.y,n.y,e)};return r&&(i.a=_t(t,n)),i}function _t(t,n){return Math.atan2(n.y-t.y,n.x-t.x)}function St(t,n,e,r){var i=1-r;return i*i*t+2*i*r*n+r*r*e}function Ot(t,n,e,r){return 2*(1-r)*(n-t)+2*r*(e-n)}function jt(t,n,e,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],u=xt(t,n,null,e,r);return u||(u={x:St(t.x,n.x,e.x,r),y:St(t.y,n.y,e.y,r)}),i&&(u.a=Mt(t,n,e,r)),u}function Mt(t,n,e,r){return Math.atan2(Ot(t.y,n.y,e.y,r),Ot(t.x,n.x,e.x,r))}function Pt(t,n,e,r,i){var u=i*i;return i*u*(r-t+3*(n-e))+3*u*(t+e-2*n)+3*i*(n-t)+t}function Et(t,n,e,r,i){var u=1-i;return 3*(u*u*(n-t)+2*u*i*(e-n)+i*i*(r-e))}function It(t,n,e,r,i){var u=arguments.length>5&&void 0!==arguments[5]&&arguments[5],o=xt(t,n,e,r,i);return o||(o={x:Pt(t.x,n.x,e.x,r.x,i),y:Pt(t.y,n.y,e.y,r.y,i)}),u&&(o.a=Rt(t,n,e,r,i)),o}function Rt(t,n,e,r,i){return Math.atan2(Et(t.y,n.y,e.y,r.y,i),Et(t.x,n.x,e.x,r.x,i))}function Ft(t,n,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Tt(n)){if(qt(e))return jt(n,e.start,e,t,r)}else if(Tt(e)){if(Bt(n))return jt(n,n.end,e,t,r)}else{if(Bt(n))return qt(e)?It(n,n.end,e.start,e,t,r):jt(n,n.end,e,t,r);if(qt(e))return jt(n,e.start,e,t,r)}return kt(n,e,t,r)}function Nt(t,n,e){var r=Ft(t,n,e,!0);return r.a=function(t){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?t+Math.PI:t}(r.a)/m,r}function Tt(t){return!t.type||"corner"===t.type}function qt(t){return null!=t.start&&!Tt(t)}function Bt(t){return null!=t.end&&!Tt(t)}var Lt=new N;var Ct={f:ft,i:q},Dt={f:ft,i:L};function zt(t,n,e){return t.map((function(t){return function(t,n,e){var r=t.v;if(!r||"g"!==r.t||r.s||!r.v||!r.r)return t;var i=e.getElementById(r.r),u=i&&i.querySelectorAll("stop")||[];return r.s=r.v.map((function(t,n){var e=u[n]&&u[n].getAttribute("offset");return{c:t,o:e=d(parseInt(e)/100)}})),delete r.v,t}(t,0,e)}))}var Vt={gt:"gradientTransform",c:{x:"cx",y:"cy"},rd:"r",f:{x:"x1",y:"y1"},to:{x:"x2",y:"y2"}};function Gt(t,n,r,i,u,o,a,l){return zt(t,0,l),n=function(t,n,e){for(var r,i,u,o=t.length-1,a={},l=0;l<=o;l++)(r=t[l]).e&&(r.e=n(r.e)),r.v&&"g"===(i=r.v).t&&i.r&&(u=e.getElementById(i.r))&&(a[i.r]={e:u,s:u.querySelectorAll("stop")});return a}(t,i,l),function(i){var u=r(i,t,Yt);if(!u)return"none";if("c"===u.t)return ht(u.v);if("g"===u.t){if(!n[u.r])return vt(u.r);var o=n[u.r];return function(t,n){for(var e=t.s,r=e.length;r<n.length;r++){var i=e[e.length-1].cloneNode();i.id=Qt(i.id),t.e.appendChild(i),e=t.s=t.e.querySelectorAll("stop")}for(var u=0,o=e.length,a=n.length-1;u<o;u++)e[u].setAttribute("stop-color",ht(n[Math.min(u,a)].c)),e[u].setAttribute("offset",n[Math.min(u,a)].o)}(o,u.s),Object.keys(Vt).forEach((function(t){if(void 0!==u[t])if("object"!==e(Vt[t])){var n,r="gt"===t?(n=u[t],Array.isArray(n)?"matrix("+n.join(" ")+")":""):u[t],i=Vt[t];o.e.setAttribute(i,r)}else Object.keys(Vt[t]).forEach((function(n){if(void 0!==u[t][n]){var e=u[t][n],r=Vt[t][n];o.e.setAttribute(r,e)}}))})),vt(u.r)}return"none"}}function Yt(t,e,r){if(0===t)return e;if(1===t)return r;if(e&&r){var i=e.t;if(i===r.t)switch(e.t){case"c":return{t:i,v:z(t,e.v,r.v)};case"g":if(e.r===r.r){var u={t:i,s:$t(t,e.s,r.s),r:e.r};return e.gt&&r.gt&&(u.gt=function(t,n,e){var r=n.length;if(r!==e.length)return T(t,n,e);for(var i=new Array(r),u=0;u<r;u++)i[u]=q(t,n[u],e[u]);return i}(t,e.gt,r.gt)),e.c?(u.c=C(t,e.c,r.c),u.rd=B(t,e.rd,r.rd)):e.f&&(u.f=C(t,e.f,r.f),u.to=C(t,e.to,r.to)),u}}if("c"===e.t&&"g"===r.t||"c"===r.t&&"g"===e.t){var o="c"===e.t?e:r,a="g"===e.t?n({},e):n({},r),l=a.s.map((function(t){return{c:o.v,o:t.o}}));return a.s="c"===e.t?$t(t,l,a.s):$t(t,a.s,l),a}}return T(t,e,r)}function $t(t,n,e){if(n.length===e.length)return n.map((function(n,r){return Ut(t,n,e[r])}));for(var r=Math.max(n.length,e.length),i=[],u=0;u<r;u++){var o=Ut(t,n[Math.min(u,n.length-1)],e[Math.min(u,e.length-1)]);i.push(o)}return i}function Ut(t,n,e){return{o:L(t,n.o,e.o||0),c:z(t,n.c,e.c||{})}}function Qt(t){return t.replace(/-fill-([0-9]+)$/,(function(t,n){return"-fill-"+(+n+1)}))}var Ht={fill:Gt,"fill-opacity":Dt,stroke:Gt,"stroke-opacity":Dt,"stroke-width":Ct,"stroke-dashoffset":{f:ft,i:q},"stroke-dasharray":{f:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return t&&t.length>0&&(t=t.map((function(t){return d(t,4)}))),ct(t,n)},i:function(t,n,e){var r,i,u,o=n.length,a=e.length;if(o!==a)if(0===o)n=V(o=a,0);else if(0===a)a=o,e=V(o,0);else{var l=(u=(r=o)*(i=a)/function(t,n){for(var e;n;)e=n,n=t%n,t=e;return t||1}(r,i))<0?-u:u;n=G(n,Math.floor(l/o)),e=G(e,Math.floor(l/a)),o=a=l}for(var s=[],f=0;f<o;f++)s.push(d(B(t,n[f],e[f])));return s}},opacity:Dt,transform:function(t,n,r,i){if(!(t=function(t,n){if(!t||"object"!==e(t))return null;var r=!1;for(var i in t)t.hasOwnProperty(i)&&(t[i]&&t[i].length?(t[i].forEach((function(t){t.e&&(t.e=n(t.e))})),r=!0):delete t[i]);return r?t:null}(t,i)))return null;var u=function(e,i,u){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return t[e]?r(i,t[e],u):n&&n[e]?n[e]:o};return n&&n.a&&t.o?function(n){var e=r(n,t.o,Nt);return Lt.recomposeSelf(e,u("r",n,q,0)+e.a,u("k",n,C),u("s",n,C),u("t",n,C)).toString()}:function(t){return Lt.recomposeSelf(u("o",t,Ft,null),u("r",t,q,0),u("k",t,C),u("s",t,C),u("t",t,C)).toString()}},r:Ct,"#size":gt,"#radius":yt,_:function(t,n){if(Array.isArray(t))for(var e=0;e<t.length;e++)this[t[e]]=n;else this[t]=n}},Jt=function(t){!function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),n&&l(t,n)}(o,t);var n,e,i=(n=o,e=s(),function(){var t,r=a(n);if(e){var i=a(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c(this,t)});function o(){return r(this,o),i.apply(this,arguments)}return u(o,null,[{key:"build",value:function(t){var n=h(a(o),"build",this).call(this,t,Ht);if(!n)return null;n.el,n.options,function(t,n,e){t.play()}(n.player)}}]),o}(st);return Jt.init(),Jt}));
+(function(s,i,o,w,a,b){w[o]=w[o]||{};w[o][s]=w[o][s]||[];w[o][s].push(i);})('5c7f360c',{"root":"e0yVXOkaTlP1","version":"2022-05-04","animations":[{"elements":{"e0yVXOkaTlP3":{"transform":{"data":{"o":{"x":23.99953,"y":24.69003,"type":"corner"},"t":{"x":-23.99953,"y":-24.69003}},"keys":{"r":[{"t":100,"v":0},{"t":500,"v":90},{"t":1000,"v":180},{"t":1500,"v":270},{"t":2000,"v":360}]}}}},"s":"MIDA1ZGE2NGQ4ZmEwOWVRROGM5Zjk0OWE5OTROkNjU1ZDViNWJENWI1DNzRkOGY5NDlkOTA4ZLUU5Zjk0OWE5OTRkNjLU1YzU3NGQ5NDlmOTAT5ZDhjWTlmOTQ5YTk5NOWU0ZDY1NWI1NzRkOHTE5NFY5Nzk3NGQ2NTTVjNTc0ZDhjOTc5ZlQF5MEc5ZEI5OThjOWY5XMDRkNjU5MThjOTc5ZBTkwNTc0ZDllOWI5MDIkwOGZMNGQ2NTVjNTcU0ZDkxOWI5ZTRkUzY1RNWM1YlQ1YmE4"}],"options":"MKDAxMDg4MmY4MDgxNmOU3ZjgxMmY0NzJmNzkP3YzZlNzEyZjhh"},'__SVGATOR_PLAYER__',window)
+]]></script>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/lodaer-static.svg b/src/lib/components/_main_/auth/assets/lodaer-static.svg
new file mode 100644
index 000000000..1ca7ac314
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/lodaer-static.svg
@@ -0,0 +1,36 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect width="48" height="48" fill="url(#pattern0)"/>
+<g clip-path="url(#clip0_6630_518693)">
+<path opacity="0.05" d="M38.5 24C38.5 21.2485 37.7171 18.5537 36.2428 16.2305C34.7684 13.9073 32.6635 12.0516 30.1738 10.88" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path opacity="0.1" d="M38.5 24C38.5 20.312 37.0947 16.7625 34.57 14.0741" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path opacity="0.3" d="M38.5 24C38.5 22.1725 38.1545 20.3614 37.4818 18.6622" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path d="M37 24C37 23.9728 36.9999 23.9456 36.9997 23.9183" stroke="#F5620F" stroke-width="6" stroke-linecap="round"/>
+</g>
+<g clip-path="url(#clip1_6630_518693)">
+<path opacity="0.05" d="M16.7491 11.4427C14.3662 12.8184 12.4239 14.8438 11.1491 17.2822C9.87434 19.7207 9.31968 22.4715 9.54992 25.2133" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path opacity="0.1" d="M16.7491 11.4427C13.5551 13.2867 11.1839 16.2784 10.1179 19.8091" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path opacity="0.3" d="M16.7491 11.4427C15.1664 12.3564 13.7707 13.5611 12.6355 14.9934" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path d="M17.4991 12.7417C17.4755 12.7553 17.4519 12.769 17.4285 12.7828" stroke="#F5620F" stroke-width="6" stroke-linecap="round"/>
+</g>
+<g clip-path="url(#clip2_6630_518693)">
+<path opacity="0.05" d="M16.7509 36.5574C19.1338 37.9332 21.859 38.6025 24.6081 38.4873C27.3573 38.3721 30.0169 37.477 32.2763 35.9067" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path opacity="0.1" d="M16.7509 36.5574C19.9449 38.4014 23.7214 38.9591 27.312 38.1169" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path opacity="0.3" d="M16.7509 36.5574C18.3336 37.4712 20.0748 38.0775 21.8827 38.3445" stroke="#F5620F" stroke-width="3" stroke-linecap="round"/>
+<path d="M17.5009 35.2584C17.5245 35.272 17.5481 35.2855 17.5718 35.299" stroke="#F5620F" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
+<use xlink:href="#image0_6630_518693"/>
+</pattern>
+<clipPath id="clip0_6630_518693">
+<rect width="32" height="32" fill="white" transform="translate(8 8)"/>
+</clipPath>
+<clipPath id="clip1_6630_518693">
+<rect width="32" height="32" fill="white" transform="translate(18.1445 45.8564) rotate(-120)"/>
+</clipPath>
+<clipPath id="clip2_6630_518693">
+<rect width="32" height="32" fill="white" transform="translate(45.8555 18.1436) rotate(120)"/>
+</clipPath>
+<image id="image0_6630_518693" width="1" height="1" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAQSURBVHgBAQUA+v8AAAAAAAAFAAFkeJU4AAAAAElFTkSuQmCC"/>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/logo-auth.svg b/src/lib/components/_main_/auth/assets/logo-auth.svg
new file mode 100644
index 000000000..4b73d5110
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/logo-auth.svg
@@ -0,0 +1,15 @@
+<svg width="138" height="28" viewBox="0 0 138 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M14.2617 0.3508C6.41516 0.3508 0.0585938 6.53664 0.0585938 14.1725C0.0585938 21.8083 6.41516 27.9942 14.2617 27.9942C22.1023 27.9942 28.4649 21.8083 28.4649 14.1725C28.4649 6.53664 22.1023 0.3508 14.2617 0.3508ZM20.8947 20.6156C20.1857 20.5805 20.1677 20.5571 19.4527 20.3525C19.3326 20.3174 18.5816 19.99 18.149 20.2063C18.143 20.2122 18.131 20.2122 18.1249 20.218C17.9507 20.3232 17.7705 20.4226 17.5842 20.5162C17.5482 20.5337 17.5121 20.5513 17.4821 20.5688C16.5088 21.0365 15.4153 21.2938 14.2617 21.2938C10.2183 21.2938 6.93787 18.1073 6.93787 14.1725C6.93787 10.2376 10.2183 7.04531 14.2617 7.04531C18.3052 7.04531 21.5796 10.2376 21.5796 14.1725C21.5796 15.2073 21.3513 16.1896 20.9427 17.0783C20.8226 17.5694 20.9187 17.8267 21.1771 18.2652C21.6457 19.072 22.2165 19.6859 23.0155 20.1888C22.3667 20.4636 21.6577 20.6565 20.8947 20.6156Z" fill="#F77C42"/>
+<path d="M14.2637 0.409302C8.82633 0.409302 4.10397 3.12803 1.71875 7.80542L11.0133 7.69433L11.3257 7.63586C11.9265 7.22075 13.2483 7.0395 14.3358 7.0395C18.3792 7.0395 21.6176 10.2318 21.6176 14.1667C21.6176 15.2015 21.3712 16.1838 20.9627 17.0725C20.8425 17.5636 20.9266 17.8209 21.185 18.2652C21.6596 19.0721 22.2244 19.686 23.0175 20.1888C22.3686 20.4636 21.6536 20.6565 20.8906 20.6156C20.6623 20.6039 20.5001 20.5922 20.3679 20.5805C20.6863 21.6212 20.8606 22.7263 20.8606 23.8722C20.8606 24.8077 20.7464 25.714 20.5301 26.5793C25.2284 24.3283 28.4608 19.6509 28.4608 14.2076C28.4668 6.56591 22.1042 0.409302 14.2637 0.409302Z" fill="#D25E27"/>
+<path d="M14.2621 0.350769C14.0277 0.350769 13.7934 0.356616 13.5591 0.368309C18.3716 2.60761 21.6941 7.39024 21.6941 12.9329C21.6941 13.7164 21.4898 15.2541 21.4718 15.2599C21.3757 15.8505 21.2074 16.4234 20.9731 16.9555C20.8049 17.5285 20.895 17.7916 21.1714 18.271C21.64 19.0779 22.2108 19.6918 23.0099 20.1946C22.361 20.4694 21.652 20.6623 20.883 20.6214C20.174 20.5863 20.156 20.5629 19.441 20.3583C19.3329 20.3291 18.69 20.0484 18.2514 20.1712C16.2988 23.8312 13.0484 26.474 8.48828 26.8131C10.2487 27.5732 12.2013 28 14.25 28C22.0906 28 28.4532 21.8141 28.4532 14.1783C28.4652 6.53661 22.1026 0.350769 14.2621 0.350769Z" fill="#D25E27"/>
+<path d="M4.26668 18.16C4.26668 11.8162 9.5478 6.67697 16.0666 6.67697C22.5253 6.67697 27.7944 11.8221 27.8845 18.0839C28.3111 16.7684 28.5214 15.2717 28.5214 13.8158C28.5274 6.18584 22.1648 0 14.3242 0C6.47766 0 0.121094 6.18584 0.121094 13.8217C0.121094 18.9668 3.01099 23.4512 7.28875 25.8309C5.41423 23.7962 4.26668 21.1067 4.26668 18.16Z" fill="#F77C42"/>
+<path d="M18.2586 20.2297C18.0243 20.3291 17.784 20.4226 17.5436 20.5103C17.5376 20.5103 17.5316 20.5162 17.5256 20.5162C17.4896 20.5337 17.4535 20.5513 17.4235 20.5688C16.4502 21.0365 15.3567 21.2938 14.2031 21.2938C13.9448 21.2938 13.6864 21.2821 13.4281 21.2529C13.338 21.2529 13.2539 21.2529 13.1637 21.2529C6.69903 21.2529 1.35783 16.5872 0.492664 10.5241C0.174235 11.6935 0 12.9096 0 14.1725C0 19.8555 3.52675 24.7375 8.56154 26.8599C13.0856 26.4974 16.318 23.8663 18.2586 20.2297Z" fill="#E96F35"/>
+<path d="M36.6211 18.0021V3.64249H39.9616V8.84023C40.7607 8.69991 41.5177 8.62975 42.2447 8.62975C44.3115 8.62975 45.8976 9.21442 47.0031 10.3838C48.1146 11.5531 48.6673 13.237 48.6673 15.4353C48.6673 16.6456 48.5051 17.7097 48.1807 18.6335C47.8562 19.5573 47.4717 20.2531 47.0331 20.7325C46.5945 21.2061 46.0598 21.5978 45.447 21.896C44.8282 22.1942 44.2934 22.3813 43.8368 22.4514C43.3802 22.5216 42.9236 22.5567 42.461 22.5567C40.4783 22.5567 39.0063 22.1123 38.051 21.2178C37.0957 20.3291 36.6211 19.2591 36.6211 18.0021ZM39.9616 18.3119C39.9616 19.2825 40.7907 19.7678 42.461 19.7678C43.5184 19.7678 44.2634 19.417 44.69 18.7154C45.1165 18.0138 45.3268 16.8619 45.3268 15.2599C45.3268 13.7398 45.0505 12.6757 44.5037 12.0735C43.957 11.4654 43.1639 11.1672 42.1185 11.1672C41.3014 11.1672 40.5804 11.2432 39.9616 11.3953V18.3119Z" fill="#292929"/>
+<path d="M50.8789 15.7394C50.8789 13.5702 51.3776 11.8396 52.3689 10.5416C53.3603 9.24367 54.9344 8.60052 57.0913 8.60052C59.128 8.60052 60.6721 9.23197 61.7175 10.489C62.7629 11.7519 63.2856 13.3013 63.2856 15.143C63.2856 15.9031 63.2676 16.4585 63.2316 16.821H54.2194C54.3095 17.9904 54.67 18.7797 55.3009 19.1714C55.9317 19.569 56.7488 19.7678 57.7522 19.7678C59.3804 19.7678 60.9545 19.4228 62.4805 18.7212V21.3406C60.9425 22.1533 59.2001 22.5567 57.2535 22.5567C56.6347 22.5567 56.0579 22.5099 55.5172 22.4105C54.9764 22.3111 54.4117 22.1123 53.8289 21.8024C53.2461 21.4926 52.7474 21.1008 52.3269 20.6273C51.9063 20.1537 51.5638 19.493 51.2935 18.6511C51.0171 17.8091 50.8789 16.8386 50.8789 15.7394ZM54.2194 14.5759H59.813C59.7228 13.6521 59.4404 12.8686 58.9658 12.2255C58.4912 11.5882 57.8363 11.2666 57.0012 11.2666C56.166 11.2666 55.5172 11.5297 55.0485 12.0443C54.5919 12.5705 54.3095 13.4124 54.2194 14.5759Z" fill="#292929"/>
+<path d="M64.1328 11.6291V8.84023H66.47V4.82938H69.8105V8.83439H73.0969V11.6233H69.8105V18.2827C69.8105 18.8615 69.9366 19.2591 70.183 19.4579C70.4353 19.6625 70.8739 19.7619 71.5108 19.7619C72.1116 19.7619 72.6403 19.6625 73.0969 19.4696V22.1532C72.448 22.4163 71.7331 22.5508 70.964 22.5508C70.94 22.5508 70.916 22.5508 70.8979 22.5508C69.5221 22.5508 68.4406 22.1532 67.6536 21.3639C66.8665 20.5688 66.47 19.4754 66.47 18.0839V11.6291H64.1328Z" fill="#292929"/>
+<path d="M75.1211 18.195C75.1211 17.587 75.2352 17.0432 75.4696 16.5638C75.7039 16.0844 75.9863 15.6926 76.3167 15.3944C76.6532 15.0963 77.0797 14.839 77.5964 14.6285C78.1131 14.418 78.5697 14.2602 78.9663 14.1608C79.3628 14.0614 79.8374 13.9854 80.3842 13.9328C80.9309 13.8801 81.3214 13.8509 81.5498 13.8392C81.7781 13.8334 82.0544 13.8275 82.3729 13.8275L84.6019 13.9561C84.6019 12.7283 84.2594 11.8572 83.5805 11.331C82.8956 10.8048 81.8862 10.5475 80.5524 10.5475C79.0504 10.5475 77.6986 10.7638 76.4909 11.1965V9.30799C77.8608 8.84025 79.2487 8.60638 80.6606 8.60638C82.6072 8.60638 84.0912 9.08582 85.1126 10.0388C86.1339 10.9977 86.6446 12.3951 86.6446 14.2368V18.2944C86.6446 19.1597 86.4403 19.8964 86.0258 20.5103C85.6112 21.1242 85.0825 21.5686 84.4397 21.8375C83.7908 22.1123 83.184 22.2994 82.6192 22.4047C82.0544 22.5099 81.4957 22.5625 80.9429 22.5625C80.5164 22.5625 80.0778 22.5333 79.6332 22.4807C79.1826 22.4281 78.6779 22.3053 78.1071 22.1182C77.5424 21.9252 77.0497 21.6855 76.6351 21.3873C76.2146 21.0892 75.8601 20.6682 75.5657 20.1128C75.2653 19.5573 75.1211 18.92 75.1211 18.195ZM77.1278 18.195C77.1278 19.8789 78.3835 20.7208 80.9009 20.7208C80.9069 20.7208 80.9249 20.7208 80.9429 20.7208C83.4003 20.7208 84.6319 19.9081 84.6319 18.2769V15.6868C84.0191 15.5815 83.196 15.5289 82.1626 15.5289C78.8101 15.5231 77.1278 16.4176 77.1278 18.195Z" fill="#F5620F"/>
+<path d="M89.625 22.3462V9.90438C91.7158 9.05076 93.9628 8.62979 96.3601 8.62979V10.4657C94.846 10.5007 93.2659 10.7346 91.6317 11.1673V22.3462H89.625Z" fill="#F5620F"/>
+<path d="M97.6211 15.7628C97.6211 15.7452 97.6211 15.716 97.6211 15.6692C97.6211 15.6283 97.6211 15.5874 97.6211 15.564C97.6211 10.9217 99.6458 8.60052 103.701 8.60052C104.548 8.60052 105.317 8.72915 106.002 8.99226C106.693 9.24951 107.24 9.55939 107.643 9.91019C108.045 10.261 108.406 10.7229 108.712 11.29C109.018 11.8572 109.235 12.3424 109.367 12.74C109.499 13.1376 109.601 13.617 109.673 14.1783C109.745 14.7221 109.781 15.067 109.781 15.2073V15.7862L109.727 16.7392H99.6338C99.76 18.0956 100.187 19.0837 100.914 19.6918C101.641 20.3057 102.716 20.6097 104.14 20.6097C106.153 20.6097 107.739 20.2764 108.892 19.6041V21.6154C107.558 22.241 105.936 22.5508 104.032 22.5508C104.008 22.5508 103.978 22.5508 103.948 22.5508C103.137 22.5508 102.392 22.4573 101.713 22.2643C101.034 22.0772 100.367 21.7498 99.7179 21.2821C99.063 20.8144 98.5524 20.1127 98.1799 19.1714C97.8073 18.2418 97.6211 17.1017 97.6211 15.7628ZM99.6338 15.0085H107.769C107.769 14.6987 107.733 14.3537 107.655 13.9795C107.577 13.5995 107.426 13.1142 107.192 12.5178C106.958 11.9215 106.543 11.4245 105.942 11.0328C105.342 10.6352 104.59 10.4364 103.701 10.4364C102.325 10.4364 101.322 10.7872 100.703 11.483C100.078 12.1787 99.7239 13.3539 99.6338 15.0085Z" fill="#F5620F"/>
+<path d="M112.547 22.3462V9.92189C114.367 9.03903 116.326 8.60052 118.423 8.60052C120.171 8.60052 121.523 9.03318 122.484 9.8985C123.446 10.7638 123.932 11.9799 123.932 13.5469V22.352H121.92V13.541C121.92 13.161 121.877 12.8277 121.799 12.5295C121.715 12.2372 121.559 11.9215 121.325 11.5824C121.09 11.2491 120.712 10.9918 120.183 10.8106C119.66 10.6293 119 10.5416 118.207 10.5416C117.041 10.5416 115.827 10.7229 114.56 11.0854V22.3462H112.547Z" fill="#F5620F"/>
+<path d="M126.477 18.195C126.477 17.587 126.591 17.0432 126.825 16.5638C127.053 16.0844 127.342 15.6926 127.672 15.3944C128.009 15.0963 128.435 14.839 128.952 14.6285C129.469 14.418 129.925 14.2602 130.322 14.1608C130.718 14.0614 131.193 13.9854 131.74 13.9328C132.286 13.8801 132.677 13.8509 132.905 13.8392C133.134 13.8334 133.41 13.8275 133.728 13.8275L135.957 13.9561C135.957 12.7283 135.615 11.8572 134.936 11.331C134.251 10.8048 133.242 10.5475 131.908 10.5475C130.406 10.5475 129.054 10.7638 127.846 11.1965V9.30799C129.216 8.84025 130.604 8.60638 132.016 8.60638C133.963 8.60638 135.447 9.08582 136.468 10.0388C137.489 10.9977 138 12.3951 138 14.2368V18.2944C138 19.1597 137.796 19.8964 137.381 20.5103C136.967 21.1242 136.438 21.5686 135.795 21.8375C135.146 22.1123 134.539 22.2994 133.975 22.4047C133.41 22.5099 132.851 22.5625 132.298 22.5625C131.872 22.5625 131.433 22.5333 130.989 22.4807C130.538 22.4281 130.033 22.3053 129.463 22.1182C128.898 21.9252 128.405 21.6855 127.985 21.3873C127.57 21.0892 127.21 20.6682 126.915 20.1128C126.627 19.5573 126.477 18.92 126.477 18.195ZM128.489 18.195C128.489 19.8789 129.745 20.7208 132.256 20.7208C132.262 20.7208 132.28 20.7208 132.298 20.7208C134.756 20.7208 135.987 19.9081 135.987 18.2769V15.6868C135.375 15.5815 134.551 15.5289 133.518 15.5289C130.166 15.5231 128.489 16.4176 128.489 18.195Z" fill="#F5620F"/>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/logo-dark.svg b/src/lib/components/_main_/auth/assets/logo-dark.svg
new file mode 100644
index 000000000..bc774c709
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/logo-dark.svg
@@ -0,0 +1,15 @@
+<svg width="138" height="28" viewBox="0 0 138 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M14.2617 0.350586C6.41516 0.350586 0.0585938 6.53643 0.0585938 14.1723C0.0585938 21.8081 6.41516 27.9939 14.2617 27.9939C22.1023 27.9939 28.4649 21.8081 28.4649 14.1723C28.4649 6.53643 22.1023 0.350586 14.2617 0.350586ZM20.8947 20.6154C20.1857 20.5803 20.1677 20.5569 19.4527 20.3523C19.3326 20.3172 18.5816 19.9898 18.149 20.2061C18.143 20.2119 18.131 20.2119 18.1249 20.2178C17.9507 20.323 17.7705 20.4224 17.5842 20.516C17.5482 20.5335 17.5121 20.551 17.4821 20.5686C16.5088 21.0363 15.4153 21.2936 14.2617 21.2936C10.2183 21.2936 6.93787 18.1071 6.93787 14.1723C6.93787 10.2374 10.2183 7.04509 14.2617 7.04509C18.3052 7.04509 21.5796 10.2374 21.5796 14.1723C21.5796 15.2071 21.3513 16.1894 20.9427 17.0781C20.8226 17.5692 20.9187 17.8265 21.1771 18.265C21.6457 19.0718 22.2165 19.6857 23.0155 20.1885C22.3667 20.4633 21.6577 20.6563 20.8947 20.6154Z" fill="#F77C42"/>
+<path d="M14.2637 0.40918C8.82633 0.40918 4.10397 3.12791 1.71875 7.8053L11.0133 7.69421L11.3257 7.63574C11.9265 7.22062 13.2483 7.03937 14.3358 7.03937C18.3792 7.03937 21.6176 10.2317 21.6176 14.1665C21.6176 15.2014 21.3712 16.1837 20.9627 17.0724C20.8425 17.5635 20.9266 17.8207 21.185 18.2651C21.6596 19.0719 22.2244 19.6859 23.0175 20.1887C22.3686 20.4635 21.6536 20.6564 20.8906 20.6155C20.6623 20.6038 20.5001 20.5921 20.3679 20.5804C20.6863 21.6211 20.8606 22.7262 20.8606 23.8721C20.8606 24.8076 20.7464 25.7138 20.5301 26.5792C25.2284 24.3282 28.4608 19.6508 28.4608 14.2075C28.4668 6.56579 22.1042 0.40918 14.2637 0.40918Z" fill="#D25E27"/>
+<path d="M14.2621 0.350586C14.0277 0.350586 13.7934 0.356433 13.5591 0.368126C18.3716 2.60742 21.6941 7.39005 21.6941 12.9328C21.6941 13.7162 21.4898 15.2539 21.4718 15.2598C21.3757 15.8503 21.2074 16.4233 20.9731 16.9553C20.8049 17.5283 20.895 17.7914 21.1714 18.2708C21.64 19.0777 22.2108 19.6916 23.0099 20.1944C22.361 20.4692 21.652 20.6621 20.883 20.6212C20.174 20.5861 20.156 20.5627 19.441 20.3581C19.3329 20.3289 18.69 20.0482 18.2514 20.171C16.2988 23.8311 13.0484 26.4738 8.48828 26.8129C10.2487 27.573 12.2013 27.9998 14.25 27.9998C22.0906 27.9998 28.4532 21.8139 28.4532 14.1781C28.4652 6.53643 22.1026 0.350586 14.2621 0.350586Z" fill="#D25E27"/>
+<path d="M4.26668 18.16C4.26668 11.8162 9.5478 6.67697 16.0666 6.67697C22.5253 6.67697 27.7944 11.8221 27.8845 18.0839C28.3111 16.7684 28.5214 15.2717 28.5214 13.8158C28.5274 6.18584 22.1648 0 14.3242 0C6.47766 0 0.121094 6.18584 0.121094 13.8217C0.121094 18.9668 3.01099 23.4512 7.28875 25.8309C5.41423 23.7962 4.26668 21.1067 4.26668 18.16Z" fill="#F77C42"/>
+<path d="M18.2586 20.23C18.0243 20.3294 17.784 20.4229 17.5436 20.5106C17.5376 20.5106 17.5316 20.5165 17.5256 20.5165C17.4896 20.534 17.4535 20.5516 17.4235 20.5691C16.4502 21.0368 15.3567 21.2941 14.2031 21.2941C13.9448 21.2941 13.6864 21.2824 13.4281 21.2532C13.338 21.2532 13.2539 21.2532 13.1637 21.2532C6.69903 21.2532 1.35783 16.5875 0.492664 10.5244C0.174235 11.6938 0 12.9099 0 14.1728C0 19.8558 3.52675 24.7378 8.56154 26.8602C13.0856 26.4977 16.318 23.8667 18.2586 20.23Z" fill="#E96F35"/>
+<path d="M36.6211 18.0022V3.64258H39.9616V8.84032C40.7607 8.7 41.5177 8.62984 42.2447 8.62984C44.3115 8.62984 45.8976 9.21451 47.0031 10.3839C48.1146 11.5532 48.6673 13.2371 48.6673 15.4354C48.6673 16.6457 48.5051 17.7098 48.1807 18.6336C47.8562 19.5574 47.4717 20.2531 47.0331 20.7326C46.5945 21.2062 46.0598 21.5979 45.447 21.8961C44.8282 22.1943 44.2934 22.3814 43.8368 22.4515C43.3802 22.5217 42.9236 22.5568 42.461 22.5568C40.4783 22.5568 39.0063 22.1124 38.051 21.2179C37.0957 20.3292 36.6211 19.2592 36.6211 18.0022ZM39.9616 18.312C39.9616 19.2826 40.7907 19.7679 42.461 19.7679C43.5184 19.7679 44.2634 19.4171 44.69 18.7155C45.1165 18.0138 45.3268 16.862 45.3268 15.26C45.3268 13.7399 45.0505 12.6758 44.5037 12.0736C43.957 11.4655 43.1639 11.1673 42.1185 11.1673C41.3014 11.1673 40.5804 11.2433 39.9616 11.3953V18.312Z" fill="white"/>
+<path d="M50.8789 15.7394C50.8789 13.5703 51.3776 11.8397 52.3689 10.5417C53.3603 9.24373 54.9344 8.60059 57.0913 8.60059C59.128 8.60059 60.6721 9.23203 61.7175 10.4891C62.7629 11.752 63.2856 13.3014 63.2856 15.1431C63.2856 15.9032 63.2676 16.4586 63.2316 16.8211H54.2194C54.3095 17.9904 54.67 18.7797 55.3009 19.1715C55.9317 19.5691 56.7488 19.7678 57.7522 19.7678C59.3804 19.7678 60.9545 19.4229 62.4805 18.7213V21.3406C60.9425 22.1533 59.2001 22.5567 57.2535 22.5567C56.6347 22.5567 56.0579 22.51 55.5172 22.4106C54.9764 22.3112 54.4117 22.1124 53.8289 21.8025C53.2461 21.4926 52.7474 21.1009 52.3269 20.6273C51.9063 20.1537 51.5638 19.493 51.2935 18.6511C51.0171 17.8092 50.8789 16.8386 50.8789 15.7394ZM54.2194 14.5759H59.813C59.7228 13.6522 59.4404 12.8687 58.9658 12.2256C58.4912 11.5883 57.8363 11.2667 57.0012 11.2667C56.166 11.2667 55.5172 11.5298 55.0485 12.0443C54.5919 12.5705 54.3095 13.4124 54.2194 14.5759Z" fill="white"/>
+<path d="M64.1328 11.6289V8.83996H66.47V4.8291H69.8105V8.83411H73.0969V11.623H69.8105V18.2824C69.8105 18.8613 69.9366 19.2588 70.183 19.4576C70.4353 19.6623 70.8739 19.7617 71.5108 19.7617C72.1116 19.7617 72.6403 19.6623 73.0969 19.4693V22.153C72.448 22.4161 71.7331 22.5505 70.964 22.5505C70.94 22.5505 70.916 22.5505 70.8979 22.5505C69.5221 22.5505 68.4406 22.153 67.6536 21.3637C66.8665 20.5685 66.47 19.4752 66.47 18.0836V11.6289H64.1328Z" fill="white"/>
+<path d="M75.1211 18.1951C75.1211 17.587 75.2352 17.0433 75.4696 16.5638C75.7039 16.0844 75.9863 15.6927 76.3167 15.3945C76.6532 15.0963 77.0797 14.8391 77.5964 14.6286C78.1131 14.4181 78.5697 14.2602 78.9663 14.1608C79.3628 14.0614 79.8374 13.9854 80.3842 13.9328C80.9309 13.8802 81.3214 13.851 81.5498 13.8393C81.7781 13.8334 82.0544 13.8276 82.3729 13.8276L84.6019 13.9562C84.6019 12.7284 84.2594 11.8572 83.5805 11.331C82.8956 10.8048 81.8862 10.5476 80.5524 10.5476C79.0504 10.5476 77.6986 10.7639 76.4909 11.1965V9.30805C77.8608 8.84031 79.2487 8.60645 80.6606 8.60645C82.6072 8.60645 84.0912 9.08588 85.1126 10.0389C86.1339 10.9978 86.6446 12.3951 86.6446 14.2368V18.2945C86.6446 19.1598 86.4403 19.8965 86.0258 20.5104C85.6112 21.1243 85.0825 21.5686 84.4397 21.8376C83.7908 22.1124 83.184 22.2995 82.6192 22.4047C82.0544 22.51 81.4957 22.5626 80.9429 22.5626C80.5164 22.5626 80.0778 22.5334 79.6332 22.4807C79.1826 22.4281 78.6779 22.3053 78.1071 22.1182C77.5424 21.9253 77.0497 21.6856 76.6351 21.3874C76.2146 21.0892 75.8601 20.6683 75.5657 20.1128C75.2653 19.5574 75.1211 18.9201 75.1211 18.1951ZM77.1278 18.1951C77.1278 19.8789 78.3835 20.7209 80.9009 20.7209C80.9069 20.7209 80.9249 20.7209 80.9429 20.7209C83.4003 20.7209 84.6319 19.9082 84.6319 18.2769V15.6868C84.0191 15.5816 83.196 15.529 82.1626 15.529C78.8101 15.5231 77.1278 16.4177 77.1278 18.1951Z" fill="white"/>
+<path d="M89.625 22.3463V9.90447C91.7158 9.05085 93.9628 8.62988 96.3601 8.62988V10.4658C94.846 10.5008 93.2659 10.7347 91.6317 11.1674V22.3463H89.625Z" fill="white"/>
+<path d="M97.6211 15.7628C97.6211 15.7453 97.6211 15.7161 97.6211 15.6693C97.6211 15.6284 97.6211 15.5874 97.6211 15.564C97.6211 10.9217 99.6458 8.60059 103.701 8.60059C104.548 8.60059 105.317 8.72921 106.002 8.99232C106.693 9.24957 107.24 9.55945 107.643 9.91025C108.045 10.2611 108.406 10.7229 108.712 11.2901C109.018 11.8572 109.235 12.3425 109.367 12.7401C109.499 13.1377 109.601 13.6171 109.673 14.1784C109.745 14.7221 109.781 15.0671 109.781 15.2074V15.7862L109.727 16.7392H99.6338C99.76 18.0957 100.187 19.0838 100.914 19.6918C101.641 20.3057 102.716 20.6098 104.14 20.6098C106.153 20.6098 107.739 20.2765 108.892 19.6041V21.6154C107.558 22.241 105.936 22.5509 104.032 22.5509C104.008 22.5509 103.978 22.5509 103.948 22.5509C103.137 22.5509 102.392 22.4573 101.713 22.2644C101.034 22.0773 100.367 21.7499 99.7179 21.2821C99.063 20.8144 98.5524 20.1128 98.1799 19.1715C97.8073 18.2418 97.6211 17.1017 97.6211 15.7628ZM99.6338 15.0086H107.769C107.769 14.6987 107.733 14.3538 107.655 13.9796C107.577 13.5995 107.426 13.1143 107.192 12.5179C106.958 11.9215 106.543 11.4246 105.942 11.0328C105.342 10.6352 104.59 10.4365 103.701 10.4365C102.325 10.4365 101.322 10.7873 100.703 11.483C100.078 12.1788 99.7239 13.354 99.6338 15.0086Z" fill="white"/>
+<path d="M112.547 22.3463V9.92195C114.367 9.03909 116.326 8.60059 118.423 8.60059C120.171 8.60059 121.523 9.03324 122.484 9.89856C123.446 10.7639 123.932 11.98 123.932 13.5469V22.3521H121.92V13.5411C121.92 13.161 121.877 12.8278 121.799 12.5296C121.715 12.2373 121.559 11.9215 121.325 11.5824C121.09 11.2492 120.712 10.9919 120.183 10.8107C119.66 10.6294 119 10.5417 118.207 10.5417C117.041 10.5417 115.827 10.7229 114.56 11.0854V22.3463H112.547Z" fill="white"/>
+<path d="M126.477 18.1951C126.477 17.587 126.591 17.0433 126.825 16.5638C127.053 16.0844 127.342 15.6927 127.672 15.3945C128.009 15.0963 128.435 14.8391 128.952 14.6286C129.469 14.4181 129.925 14.2602 130.322 14.1608C130.718 14.0614 131.193 13.9854 131.74 13.9328C132.286 13.8802 132.677 13.851 132.905 13.8393C133.134 13.8334 133.41 13.8276 133.728 13.8276L135.957 13.9562C135.957 12.7284 135.615 11.8572 134.936 11.331C134.251 10.8048 133.242 10.5476 131.908 10.5476C130.406 10.5476 129.054 10.7639 127.846 11.1965V9.30805C129.216 8.84031 130.604 8.60645 132.016 8.60645C133.963 8.60645 135.447 9.08588 136.468 10.0389C137.489 10.9978 138 12.3951 138 14.2368V18.2945C138 19.1598 137.796 19.8965 137.381 20.5104C136.967 21.1243 136.438 21.5686 135.795 21.8376C135.146 22.1124 134.539 22.2995 133.975 22.4047C133.41 22.51 132.851 22.5626 132.298 22.5626C131.872 22.5626 131.433 22.5334 130.989 22.4807C130.538 22.4281 130.033 22.3053 129.463 22.1182C128.898 21.9253 128.405 21.6856 127.985 21.3874C127.57 21.0892 127.21 20.6683 126.915 20.1128C126.627 19.5574 126.477 18.9201 126.477 18.1951ZM128.489 18.1951C128.489 19.8789 129.745 20.7209 132.256 20.7209C132.262 20.7209 132.28 20.7209 132.298 20.7209C134.756 20.7209 135.987 19.9082 135.987 18.2769V15.6868C135.375 15.5816 134.551 15.529 133.518 15.529C130.166 15.5231 128.489 16.4177 128.489 18.1951Z" fill="white"/>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/metamask.svg b/src/lib/components/_main_/auth/assets/metamask.svg
new file mode 100644
index 000000000..42ff2bb98
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/metamask.svg
@@ -0,0 +1,14 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M19.0031 0.61087L11.1992 6.4312L12.6424 2.99728L19.0031 0.61087Z" fill="#E2761B"/>
+<path d="M0.987592 0.61087L8.72877 6.48633L7.35622 2.99728L0.987592 0.61087ZM16.1954 14.1024L14.117 17.3L18.5641 18.5287L19.8425 14.1733L16.1954 14.1024ZM0.164062 14.1733L1.43465 18.5287L5.88171 17.3L3.80328 14.1024L0.164062 14.1733Z" fill="#E4761B"/>
+<path d="M5.62984 8.69948L4.39062 10.5818L8.80631 10.7787L8.64945 6.01378L5.62984 8.69948ZM14.3593 8.69948L11.3004 5.95865L11.1985 10.7787L15.6063 10.5818L14.3593 8.69948ZM5.88082 17.3L8.5318 16.0005L6.24161 14.2048L5.88082 17.3ZM11.4573 16.0005L14.1161 17.3L13.7475 14.2048L11.4573 16.0005Z" fill="#E4761B"/>
+<path d="M14.1181 17.3L11.4593 16.0005L11.671 17.7411L11.6475 18.4735L14.1181 17.3ZM5.88281 17.3L8.3534 18.4735L8.33771 17.7411L8.53379 16.0005L5.88281 17.3Z" fill="#D7C1B3"/>
+<path d="M8.39145 13.0549L6.17969 12.4012L7.74047 11.6844L8.39145 13.0549ZM11.5993 13.0549L12.2503 11.6844L13.8189 12.4012L11.5993 13.0549Z" fill="#233447"/>
+<path d="M5.88312 17.3L6.25959 14.1024L3.80469 14.1733L5.88312 17.3ZM13.7419 14.1024L14.1184 17.3L16.1968 14.1733L13.7419 14.1024ZM15.6086 10.5818L11.2008 10.7787L11.6086 13.0549L12.2596 11.6845L13.8282 12.4012L15.6086 10.5818ZM6.18116 12.4012L7.74979 11.6845L8.39292 13.0549L8.80861 10.7787L4.39292 10.5818L6.18116 12.4012Z" fill="#CD6116"/>
+<path d="M4.39062 10.5818L6.24161 14.2048L6.17886 12.4012L4.39062 10.5818ZM13.8259 12.4012L13.7475 14.2048L15.6063 10.5818L13.8259 12.4012ZM8.80631 10.7787L8.39062 13.0549L8.90827 15.7406L9.02592 12.2043L8.80631 10.7787ZM11.1985 10.7787L10.9867 12.1964L11.0808 15.7406L11.6063 13.0549L11.1985 10.7787Z" fill="#E4751F"/>
+<path d="M11.6071 13.0549L11.0816 15.7406L11.4581 16.0005L13.7483 14.2048L13.8267 12.4012L11.6071 13.0549ZM6.17969 12.4012L6.24243 14.2048L8.53263 16.0005L8.9091 15.7406L8.39145 13.0549L6.17969 12.4012Z" fill="#F6851B"/>
+<path d="M11.6475 18.4735L11.671 17.7411L11.475 17.5678H8.51811L8.33771 17.7411L8.3534 18.4735L5.88281 17.3L6.74556 18.0089L8.49458 19.2296H11.4985L13.2554 18.0089L14.1181 17.3L11.6475 18.4735Z" fill="#C0AD9E"/>
+<path d="M11.4575 16.0005L11.081 15.7406H8.90849L8.53202 16.0005L8.33594 17.7411L8.51633 17.5678H11.4732L11.6693 17.7411L11.4575 16.0005Z" fill="#161616"/>
+<path d="M19.3333 6.80925L20 3.59586L19.0039 0.61087L11.4588 6.2343L14.3608 8.69948L18.4627 9.9045L19.3725 8.84124L18.9804 8.55771L19.6078 7.98276L19.1216 7.60472L19.749 7.12429L19.3333 6.80925ZM0 3.59586L0.666667 6.80925L0.243137 7.12429L0.870588 7.60472L0.392157 7.98276L1.01961 8.55771L0.627451 8.84124L1.52941 9.9045L5.63137 8.69948L8.53333 6.2343L0.988236 0.61087L0 3.59586Z" fill="#763D16"/>
+<path d="M18.4621 9.9045L14.3601 8.69947L15.6072 10.5818L13.7484 14.2048L16.1954 14.1733H19.8425L18.4621 9.9045ZM5.63073 8.69947L1.52877 9.9045L0.164062 14.1733H3.80328L6.24249 14.2048L4.39151 10.5818L5.63073 8.69947ZM11.1994 10.7787L11.4582 6.2343L12.6503 2.99728H7.35622L8.53269 6.2343L8.8072 10.7787L8.90132 12.2121L8.90916 15.7406H11.0817L11.0974 12.2121L11.1994 10.7787Z" fill="#F6851B"/>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/profile-avatar.svg b/src/lib/components/_main_/auth/assets/profile-avatar.svg
new file mode 100644
index 000000000..16a025ca5
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/profile-avatar.svg
@@ -0,0 +1,13 @@
+<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6687_165798)">
+<rect width="44" height="44" rx="22" fill="#F5620F"/>
+<path d="M14.5802 20.9133C14.9071 22.3684 16.3644 27.0969 21.4859 27.0969C26.6074 27.0969 28.0642 22.3689 28.3917 20.9133C28.6297 20.8504 28.8562 20.7269 29.0638 20.5456C29.723 19.9657 30.1486 18.7989 30.1486 17.5692C30.1486 16.8618 29.8344 16.4661 29.5739 16.2591C29.4977 16.1994 29.4195 16.152 29.3359 16.1088C29.5201 12.3952 28.8375 9.65934 27.0998 9.26121C27.0998 9.26121 27.1739 6.01505 21.4864 6.01505C13.3458 6.01505 13.2398 11.7813 13.6096 16.1253C13.5378 16.1654 13.4657 16.2057 13.3989 16.2593C13.1365 16.4662 12.8242 16.8629 12.8242 17.5693C12.8242 18.798 13.2496 19.9658 13.9091 20.5457C14.1164 20.7271 14.3427 20.8506 14.5809 20.9134L14.5802 20.9133ZM28.328 19.7538C28.1502 19.9084 28.0223 19.897 27.985 19.8927L27.4559 19.8401L27.386 20.3541C27.3553 20.5857 26.5594 26.0298 21.4868 26.0298C16.4313 26.0298 15.6183 20.5857 15.5867 20.3532L15.5158 19.8404L14.9877 19.893C14.9453 19.8982 14.8215 19.9105 14.6437 19.7541C14.2247 19.3854 13.9209 18.4668 13.9209 17.5697C13.9209 17.2236 14.0468 17.1217 14.0892 17.0887C14.0965 17.0826 14.1082 17.0816 14.1158 17.0764C14.3455 17.1217 14.6607 17.2082 15.0915 17.3545C15.081 16.8467 15.1889 16.3884 15.3475 15.96C19.0039 15.6151 22.1597 14.0248 24.045 12.8466C24.427 13.8477 25.3764 14.9641 27.5492 15.7571C27.5514 15.758 27.5556 15.758 27.5577 15.7592C27.7641 16.239 27.8942 16.7674 27.8805 17.3544C28.3122 17.2081 28.6287 17.1216 28.8584 17.0763C28.8648 17.0804 28.8774 17.0825 28.8828 17.0877C28.924 17.1207 29.0521 17.2226 29.0521 17.5697C29.0511 18.4663 28.7473 19.384 28.3284 19.7538L28.328 19.7538Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.8755 25.8965C19.0643 28.9116 23.9059 28.9117 27.0948 25.8965C27.0948 25.8965 35.9603 26.5641 35.9591 38.9709C35.9591 38.9709 31.5 44 21.5 44C12.5 44 7 38.5 7 38.5C7 26.093 15.8755 25.8965 15.8755 25.8965ZM31.1053 34.3103C31.175 34.0485 31.2094 33.7602 31.2094 33.4788C31.2107 31.807 29.8718 30.4517 28.2219 30.4517C26.8099 30.4517 25.6271 31.4429 25.3142 32.7765L25.3115 32.7576C25.2445 33.0138 25.2078 33.2803 25.2078 33.557C25.2078 34.8022 25.95 35.8719 27.0094 36.3369L27.0161 36.3364C27.3808 36.4968 27.784 36.5867 28.2067 36.5867C28.6374 36.5867 29.0468 36.4943 29.4168 36.328C29.4695 36.3044 29.5215 36.2793 29.5726 36.2527C30.3255 35.8611 30.8928 35.1586 31.1053 34.3103ZM28.9667 34.915L28.94 34.93L28.8995 34.9457C28.899 34.9457 28.8984 34.9459 28.8979 34.9462C28.8972 34.9466 28.8965 34.947 28.8957 34.947C28.8882 34.9508 28.8806 34.9546 28.8743 34.9585C28.6712 35.0601 28.4433 35.1163 28.2029 35.1173C27.355 35.1139 26.6681 34.417 26.6681 33.557C26.6681 32.6948 27.3584 31.9953 28.2093 31.9953C29.0601 31.9953 29.7492 32.6948 29.7492 33.557L29.749 33.5798L29.7485 33.6022C29.7481 33.6166 29.7475 33.6309 29.7467 33.6452C29.7418 33.6884 29.7372 33.7259 29.7335 33.7527C29.7298 33.7791 29.7272 33.795 29.7264 33.7953C29.7061 33.9247 29.6707 34.0502 29.6214 34.1668C29.586 34.2923 29.605 34.35 29.6632 34.455C29.7617 34.6316 29.8816 34.766 30.0494 34.8761C29.9134 34.9358 29.7649 34.9777 29.605 34.9687L29.5718 34.9669C29.5592 34.9662 29.5479 34.9654 29.5374 34.9646C29.4602 34.9588 29.4319 34.9503 29.3416 34.9231L29.3415 34.923L29.3016 34.9111C29.2983 34.9101 29.2928 34.908 29.2854 34.9052C29.2363 34.8867 29.1064 34.8378 29.0273 34.8791C29.027 34.8793 29.0267 34.8795 29.0263 34.8797C29.0261 34.8798 29.0259 34.8799 29.0257 34.88L29.0247 34.8804L29.0229 34.8811L29.0222 34.8816L29.008 34.8905L28.9941 34.8989C28.985 34.9043 28.9759 34.9097 28.9667 34.915Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M22 43C33.598 43 43 33.598 43 22C43 10.402 33.598 1 22 1C10.402 1 1 10.402 1 22C1 33.598 10.402 43 22 43ZM22 44C34.1503 44 44 34.1503 44 22C44 9.84974 34.1503 0 22 0C9.84974 0 0 9.84974 0 22C0 34.1503 9.84974 44 22 44Z" fill="#F5620F"/>
+</g>
+<defs>
+<clipPath id="clip0_6687_165798">
+<rect width="44" height="44" rx="22" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/_main_/auth/assets/success-alert.svg b/src/lib/components/_main_/auth/assets/success-alert.svg
new file mode 100644
index 000000000..7c07f9b11
--- /dev/null
+++ b/src/lib/components/_main_/auth/assets/success-alert.svg
@@ -0,0 +1,3 @@
+<svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.7929 8.70711L9 12.5L7.70711 11.2071M10 2.5C5.58172 2.5 2 6.08172 2 10.5C2 14.9183 5.58172 18.5 10 18.5C14.4183 18.5 18 14.9183 18 10.5C18 6.08172 14.4183 2.5 10 2.5Z" stroke="#59C65D" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/src/lib/components/_main_/header/_Header.svelte b/src/lib/components/_main_/header/_Header.svelte
index ea25f6ada..0808306ba 100644
--- a/src/lib/components/_main_/header/_Header.svelte
+++ b/src/lib/components/_main_/header/_Header.svelte
@@ -1,76 +1,57 @@
 <!-- ===================
-	COMPONENT JS - BASIC 
-    [TypeScript Written]
+COMPONENT JS - BASIC 
+[TypeScript]
 =================== -->
-
-
 <script lang="ts">
-  
-  /**
-   * [ℹ] svelte-kit
-  */
-
   import { browser, dev } from '$app/environment';
   import { goto } from '$app/navigation';
   import { page } from '$app/stores';
   import { onMount } from 'svelte';
   import { fly } from 'svelte/transition';
-/**
-   * [ℹ] stroes
-  */
+
 	import { userBetarenaSettings } from '$lib/store/user-settings';
 
-  /**
-   * [ℹ] header-component
-  */
 	import { getUserLocation, getUserLocationFromIP } from '$lib/geoJs/init';
 	import { logDevGroup } from '$lib/utils/debug';
-	import logo_full from './assets/betarena-logo-full.svg';
-	import logo_mini from './assets/betarena-logo-mobile.svg';
-	import icon_check from './assets/icon-check.svg';
-	import menu_burger_bar from './assets/menu-burger.svg';
-/**
-   * [ℹ] sub-header-component
-  */
 	import arrow_down_fade from './assets/arrow-down-fade.svg';
 	import arrow_down from './assets/arrow-down.svg';
 	import arrow_up_fade from './assets/arrow-up-fade.svg';
 	import arrow_up from './assets/arrow-up.svg';
+	import logo_full from './assets/betarena-logo-full.svg';
+	import logo_mini from './assets/betarena-logo-mobile.svg';
 	import close from './assets/close.svg';
+	import icon_check from './assets/icon-check.svg';
+	import menu_burger_bar from './assets/menu-burger.svg';
 	import menu_sports_icon from './assets/menu_sports_icon.svg';
+	import profile_avatar from './assets/profile-avatar.svg';
 	import light_icon_theme from './assets/theme-light-icon.svg';
-/**
-   * [ℹ] header-types
-  */
+
   import type { GeoJsResponse } from '$lib/models/geojs-types';
-  import type { Cache_Single_Lang_Header_Translation_Response } from "$lib/models/navbar/types";
+  import type { Cache_Single_Lang_Header_Translation_Response } from "$lib/models/_main_/navbar/types";
 
-  /**
-   * [ℹ] export-values-expected
-  */
-	export let HEADER_TRANSLATION_DATA: Cache_Single_Lang_Header_Translation_Response;
+	import { sessionStore } from '$lib/store/session';
+	import AuthWidget from '../auth/Auth_Widget.svelte';
 
   /**
    * [ℹ] component variables;
   */
- 
+
+	export let HEADER_TRANSLATION_DATA: Cache_Single_Lang_Header_Translation_Response;
+  
   let mobileExclusive: boolean = false;
 	let tabletExclusive: boolean = false;
 	let mobileNavToggleMenu: boolean = false;
 	let mobileExclusiveMoreSports: boolean = false;
-
   let dropdown_lang_visible: boolean = false;
 	let dropdown_theme_visible: boolean = false;
 	let dropdown_odds_type_visible: boolean = false;
 	let dropdown_bookmakers_visible: boolean = false;
 	let dropdown_more_sports_menu: boolean = false;
-
+  let dropdown_user_auth: boolean = false;
   let selected_sports: string = 'football';
-
   let server_side_language: string = 'en';
   let homepageURL: string
   let logoLink: string
-
   let hideSEO: boolean = false;
   let langSelected: boolean = false;
 
@@ -375,6 +356,7 @@
 		dropdown_odds_type_visible = false;
 		dropdown_bookmakers_visible = false;
 		dropdown_more_sports_menu = false;
+    dropdown_user_auth = false;
 	}
 
 	/**
@@ -391,35 +373,47 @@
   //   await invalidateAll()
   // })
 
+  /**
+   * [ℹ] logout current user;
+	*/
+  function logout() {
+    dropdown_user_auth = false
+    userBetarenaSettings.signOutUser()
+  }
 </script>
 
-
 <!-- ===================
 	COMPONENT HTML
 =================== -->
 
-
-<!-- [ℹ] area-outside-for-close-click-DESKTOP-menu 
+<!-- 
+[ℹ] area outside to close action (outer header)
 -->
-{#if dropdown_lang_visible || 
-     dropdown_more_sports_menu || 
-     dropdown_theme_visible || 
-     dropdown_odds_type_visible || 
-     dropdown_bookmakers_visible }
-	<div id="background-area-close" on:click={() => closeAllDropdowns()} />
+{#if dropdown_lang_visible
+  || dropdown_more_sports_menu
+  || dropdown_theme_visible
+  || dropdown_odds_type_visible 
+  || dropdown_bookmakers_visible
+  || dropdown_user_auth}
+	<div 
+    id="background-area-close" 
+    on:click={() => closeAllDropdowns()} 
+  />
 {/if}
 
-
-<!-- [ℹ] extra-header-SEO-info 
-  TODO: not generating for each LANG
+<!--
+[ℹ] extra-header-SEO-info
+TODO:FIXME: not generating for each LANG
 -->
-{#if HEADER_TRANSLATION_DATA != undefined &&
-     !hideSEO}
-  <!-- [ℹ] main-homepage-link-in-all-avaialble-languages
+{#if HEADER_TRANSLATION_DATA != undefined
+    && !hideSEO}
+  <!-- 
+  [ℹ] main-homepage-link-in-all-avaialble-languages
   -->
   {#each HEADER_TRANSLATION_DATA.langArray as item}
     {#if item != 'en'}
-      <!-- [ℹ] content here
+      <!-- 
+      [ℹ] content here
       -->
       <a
         data-sveltekit-prefetch
@@ -439,28 +433,46 @@
 
 {/if}
 
+<!-- 
+[ℹ] show/hide auth widget
+-->
+<AuthWidget />
 
-<!-- [ℹ] header-for-the-page 
+<!-- 
+[ℹ] main header INIT
 -->
-<header 
+<header
   class="column-space-center">
-  {#if HEADER_TRANSLATION_DATA != undefined}
 
+  <!-- 
+  [ℹ] area outside to close action (inner header)
+  -->
+  {#if dropdown_lang_visible
+    || dropdown_more_sports_menu
+    || dropdown_theme_visible
+    || dropdown_odds_type_visible 
+    || dropdown_bookmakers_visible
+    || dropdown_user_auth}
+    <div 
+      id="background-area-close-inner" 
+      on:click={() => closeAllDropdowns()} 
+    />
+  {/if}
+
+  {#if HEADER_TRANSLATION_DATA != undefined}
     <!-- 
-    [ℹ] identify the correct translation via
+    [ℹ] header TOP NAVBAR section 
     -->
-    
-    <!-- 
-    [ℹ] header TOP NAVBAR section -->
     <div
       id="top-header" 
       class="row-space-out">
       <!-- 
       [ℹ] 1st half of the header nav 
       -->
-      <div 
+      <div
         class="row-space-start"
         style="width: fit-content;">
+
         <!-- 
         [ℹ] menu-burger-bar 
         [ℹ] [TABLET] [MOBILE] 
@@ -640,10 +652,10 @@
         class="row-space-start" 
         style="width: fit-content;">
 
+        <!-- 
+        [ℹ] theme-options box
+        -->
         {#if !tabletExclusive}
-          <!-- 
-          [ℹ] theme-options box
-          -->
           <div
             id="theme-opt-container" 
             class="
@@ -651,7 +663,8 @@
               row-space-start
             ">
             <!-- 
-            [ℹ] name of the container-opt -->
+            [ℹ] name of the container-opt 
+            -->
             <div
               class="m-r-10"
               on:click={() => (dropdown_theme_visible = !dropdown_theme_visible)}>
@@ -685,7 +698,9 @@
                 {/each}
               </div>
             </div>
-            <!-- [ℹ] arrow down [hidden-menu] -->
+            <!-- 
+            [ℹ] arrow down [hidden-menu] 
+            -->
             {#if !dropdown_theme_visible}
               <img
                 src={arrow_down_fade}
@@ -703,7 +718,9 @@
                 on:click={() => (dropdown_theme_visible = !dropdown_theme_visible)}
               />
             {/if}
-            <!-- [ℹ] INIT-HIDDEN-dropdown-theme-select -->
+            <!-- 
+            [ℹ] INIT-HIDDEN-dropdown-theme-select 
+            -->
             {#if dropdown_theme_visible}
               <div 
                 id="theme-dropdown-menu" 
@@ -748,7 +765,8 @@
             "
             on:click={() => (dropdown_odds_type_visible = !dropdown_odds_type_visible)}>
             <!-- 
-            [ℹ] name of the container-opt -->
+            [ℹ] name of the container-opt 
+            -->
             <div 
               class="m-r-10">
               <p 
@@ -768,7 +786,8 @@
               </p>
             </div>
             <!-- 
-            [ℹ] arrow down [hidden-menu] -->
+            [ℹ] arrow down [hidden-menu] 
+            -->
             {#if !dropdown_odds_type_visible}
               <img 
                 src={arrow_down_fade} 
@@ -785,10 +804,12 @@
               />
             {/if}
             <!-- 
-            [ℹ] INIT-HIDDEN-dropdown-odds-type -->
+            [ℹ] INIT-HIDDEN-dropdown-odds-type 
+            -->
             {#if dropdown_odds_type_visible}
               <!-- 
-              [ℹ] dropdown-menu -->
+              [ℹ] dropdown-menu 
+              -->
               <div 
                 id="odds-type-dropdown-menu" 
                 transition:fly>
@@ -810,7 +831,8 @@
           </div>
 
           <!-- 
-          [ℹ] bookmakers-type -->
+          [ℹ] bookmakers-type 
+          -->
           <div
             id="bookmakers-type-container"
             class="
@@ -915,36 +937,96 @@
           </div>
         {/if}
 
-        {#if !mobileExclusive}
-          <!--
-          [ℹ] sign-in-btn -->
-          <button 
+        <!--
+        [ℹ] sign-in-btn 
+        [ℹ] <conditional>
+        -->
+        {#if $userBetarenaSettings.user == undefined}
+          <button
             id="sign-in-btn"
-            class="cursor-not-allowed">
+            class="cursor-pointer"
+            on:click={() => $sessionStore.auth_show = !$sessionStore.auth_show}>
             <p 
               class="
-              color-white 
+              color-white
               s-14
             ">
               {HEADER_TRANSLATION_DATA.scores_header_translations.sign_in}
             </p>
           </button>
-        {/if}
-
-        {#if mobileExclusive}
-          <!--
-          [ℹ] betting-tips -->
-          <a 
-            rel="external" 
-            href={HEADER_TRANSLATION_DATA.scores_header_links.betting_tips}>
-            <p 
-              class="
-                color-white 
-                s-14
-              ">
-              {HEADER_TRANSLATION_DATA.scores_header_translations.betting_tips_link}
-            </p>
-          </a>
+        {:else if $userBetarenaSettings.user != undefined}
+          <div
+            id="user-profile-box"
+            class="row-space-start">
+            <!--
+            [ℹ] user wallet address
+            [ℹ] <conditional>
+            -->
+            {#if $userBetarenaSettings.user?.web3_wallet_addr != undefined}
+              <p
+                id="wallet-text"
+                class="
+                  color-white
+                  w-500
+                ">
+                {$userBetarenaSettings.user?.web3_wallet_addr.slice(0, 5)}
+                ...
+                {$userBetarenaSettings.user?.web3_wallet_addr.slice(-5)}
+              </p>
+            {/if}
+            <!--
+            [ℹ] user avatar img
+            -->
+            <img
+              src={profile_avatar}
+              alt='Profile Icon'
+              title='Profile Avatar'
+              on:click={() => dropdown_user_auth = !dropdown_user_auth}
+              class="cursor-pointer"
+            />
+            <!-- 
+            [ℹ] dropdown profile
+            -->
+            {#if dropdown_user_auth}
+              <div
+                id="user-profile-dropdown">
+                <!--
+                [ℹ] profile page button
+                <div
+                  class="
+                    theme-opt-box
+                    cursor-pointer
+                  "
+                  on:click={() => (dropdown_odds_type_visible = false)}>
+                  <p 
+                    class="
+                      color-white 
+                      s-14
+                    ">
+                    Profile
+                  </p>
+                </div>
+                -->
+                <!--
+                [ℹ] logout page button
+                -->
+                <div
+                  class="
+                    theme-opt-box
+                    cursor-pointer
+                  "
+                  on:click={() => logout()}>
+                  <p 
+                    class="
+                      color-white 
+                      s-14
+                    ">
+                    Logout
+                  </p>
+                </div>
+              </div>
+            {/if}
+          </div>
         {/if}
       </div>
     </div>
@@ -1267,19 +1349,25 @@
     </div>
 
     <!--
-    [ℹ] side-bar-[TOP-NAV-BAR] [MOBILE + TABLET] 
+    [ℹ] navbar (side) 
+    [ℹ] [MOBILE + TABLET]
+    [ℹ] <conditional>
     -->
-    {#if tabletExclusive || mobileExclusive}
+    {#if tabletExclusive 
+      || mobileExclusive}
       {#if mobileNavToggleMenu}
         <nav
           class:tablet-exclusive={mobileExclusive == false}
           in:fly={{ x: -200, duration: 500 }}
-          out:fly={{ x: -200, duration: 500 }}
-        >
+          out:fly={{ x: -200, duration: 500 }}>
           <div>
-            <!-- [ℹ] top-action-row -->
+            <!-- 
+            [ℹ] top-action-row 
+            -->
             <div class="row-space-out">
-              <!-- [ℹ] close-side-nav -->
+              <!-- 
+              [ℹ] close-side-nav 
+              -->
               <img
                 src={close}
                 alt="close-icon"
@@ -1288,27 +1376,43 @@
                 on:click={() => (mobileNavToggleMenu = false)}
               />
 
-              <div class="row-space-start" style="width: fit-content;">
-                <!-- [ℹ] language-change-dropdown-select -->
-                <div id="lang-container" class:m-r-24={mobileExclusive}>
-                  <!-- [ℹ] INIT-selected-lang -->
+              <div 
+                class="row-space-start" 
+                style="width: fit-content;">
+                <!-- 
+                [ℹ] language-change-dropdown-select 
+                -->
+                <div 
+                  id="lang-container" 
+                  class:m-r-24={mobileExclusive}>
+                  <!-- 
+                  [ℹ] INIT-selected-lang 
+                  -->
                   <div
                     id="selected-language-btn"
                     class:active-lang-select={dropdown_lang_visible == true}
                     class="row-space-out"
-                    on:click={() => (dropdown_lang_visible = !dropdown_lang_visible)}
-                  >
-                    <p class="color-white s-14 mr-5">
+                    on:click={() => (dropdown_lang_visible = !dropdown_lang_visible)}>
+                    <p 
+                      class="
+                        color-white 
+                        s-14 
+                        mr-5
+                      ">
                       {server_side_language.toUpperCase()}
                     </p>
-                    <!-- [ℹ] arrow down [hidden-menu] -->
+                    <!-- 
+                    [ℹ] arrow down [hidden-menu] 
+                    -->
                     {#if !dropdown_lang_visible}
                       <img src={arrow_down} alt="arrow_down" width="16px" height="16px" />
                     {:else}
                       <img src={arrow_up} alt="arrow_up" width="16px" height="16px" />
                     {/if}
                   </div>
-                  <!-- [ℹ] INIT-HIDDEN drop-down menu -->
+                  <!-- 
+                  [ℹ] INIT-HIDDEN drop-down menu 
+                  -->
                   {#if dropdown_lang_visible}
                     <div id="dropdown-menu" transition:fly>
                       {#each HEADER_TRANSLATION_DATA.langArray.sort() as lang}
@@ -1324,13 +1428,21 @@
                   {/if}
                 </div>
 
-                <!-- [ℹ] sign-in-btn -->
+                <!-- 
+                [ℹ] sign-in-btn 
+                -->
                 {#if mobileExclusive}
-                  <button id="sign-in-btn">
-                    <p class="color-white s-14">
-                      {HEADER_TRANSLATION_DATA.scores_header_translations.sign_in}
+                  <a 
+                    rel="external" 
+                    href={HEADER_TRANSLATION_DATA.scores_header_links.betting_tips}>
+                    <p 
+                      class="
+                        color-white 
+                        s-14
+                      ">
+                      {HEADER_TRANSLATION_DATA.scores_header_translations.betting_tips_link}
                     </p>
-                  </button>
+                  </a>
                 {/if}
               </div>
             </div>
@@ -1554,7 +1666,8 @@
     {/if}
 
     <!-- 
-    [ℹ] side-bar-[BOTTOM-SPORT-BAR] [MOBILE] -->
+    [ℹ] side-bar-[BOTTOM-SPORT-BAR] [MOBILE] 
+    -->
     {#if mobileExclusive}
       {#if mobileExclusiveMoreSports}
         <nav
@@ -1649,13 +1762,11 @@
   {/if}
 </header>
 
-
 <!-- ===================
-	COMPONENT STYLE
-	[MOBILE FIRST]
+COMPONENT STYLE
+[MOBILE FIRST]
 =================== -->
 
-
 <style>
 	header {
 		background-color: #292929;
@@ -1665,7 +1776,8 @@
 	}
 
 	/* 
-	top-header-betarena-brand & bottom-header */
+	top-header-betarena-brand & bottom-header 
+  */
 	header #top-header,
 	header #bottom-header {
 		max-width: 1430px;
@@ -1680,17 +1792,16 @@
 	}
 
 	/* 
-	bottom-header-sports-nav */
+	bottom-header-sports-nav 
+  */
 	header #bottom-header {
 		padding: 6px 16px;
 		height: 56px !important;
 		bottom: 0;
-	}
-	header #bottom-header-inner::-webkit-scrollbar {
+	}	header #bottom-header-inner::-webkit-scrollbar {
 		/* Hide scrollbar for Chrome, Safari and Opera */
 		display: none;
-	}
-	header #bottom-header-inner {
+	}	header #bottom-header-inner {
 		/* width: 100%; */
 		overflow-x: scroll;
 		overflow-y: hidden;
@@ -1700,14 +1811,16 @@
 	}
 
 	/* 
-	[MOBILE-ONLY] */
+	[MOBILE-ONLY] 
+  */
 	#burger-menu {
 		margin-right: 16.15px;
 	}
 
 	/* [ℹ] 
 	[MOBILE + TABLET] @ < 768px
-	SIDE-NAV-BAR-navigational-link [ℹ] */
+	SIDE-NAV-BAR-navigational-link [ℹ] 
+  */
 	nav {
 		background-color: #292929;
 		height: 100vh;
@@ -1723,49 +1836,42 @@
 		/* Hide scrollbar for IE, Edge and Firefox */
 		-ms-overflow-style: none;
 		scrollbar-width: none;
-	}
-	nav::-webkit-scrollbar {
+	}	nav::-webkit-scrollbar {
 		/* Hide scrollbar for Chrome, Safari and Opera */
 		display: none;
-	}
-	nav.tablet-exclusive {
+	}	nav.tablet-exclusive {
 		padding: 24px 34px;
 		max-width: 374px !important;
-	}
-	nav .side-nav-row {
+	}	nav .side-nav-row {
 		width: 100%;
 		padding: 12px 0;
-	}
-	nav .side-nav-row:hover p {
+	}	nav .side-nav-row:hover p {
 		color: #f5620f;
-	}
-	nav .side-nav-dropdown {
+	}	nav .side-nav-dropdown {
 		width: 100%;
 		box-shadow: inset 0px -1px 0px #616161;
-	}
-	nav .side-nav-dropdown-opt {
+	}	nav .side-nav-dropdown-opt {
 		width: 100%;
 		padding: 9.5px 0;
-	}
-	nav .side-nav-dropdown-opt p {
+	}	nav .side-nav-dropdown-opt p {
 		font-weight: 400;
 	}
 
 	/* [ℹ]
 	[MOBILE ONLY] @ < 425px
-	SIDE-NAV-BAR-more-menu-sports-navigational-container [ℹ] */
+	SIDE-NAV-BAR-more-menu-sports-navigational-container [ℹ] 
+  */
 	nav#mobile-exclusive-sports-menu {
 		padding: 21px 16px;
-	}
-	nav#mobile-exclusive-sports-menu #mobile-sports-grid {
+	}	nav#mobile-exclusive-sports-menu #mobile-sports-grid {
 		gap: 12px;
-	}
-	nav#mobile-exclusive-sports-menu #mobile-sports-grid .sports-btn:hover {
+	}	nav#mobile-exclusive-sports-menu #mobile-sports-grid .sports-btn:hover {
 		border: 1px solid #f5620f !important;
 	}
 
 	/*
-	LANG SELECT CONTAINER */
+	LANG SELECT CONTAINER 
+  */
 	#lang-container {
 		position: relative;
 	}
@@ -1777,9 +1883,8 @@
 		cursor: pointer;
 		padding: 5px 12px;
 		background-color: transparent;
-	}
-	#selected-language-btn:hover,
-	#selected-language-btn.active-lang-select {
+	}	#selected-language-btn:hover,
+	  #selected-language-btn.active-lang-select {
 		background-color: rgba(255, 255, 255, 0.1);
 		border-radius: 4px;
 	}
@@ -1801,18 +1906,17 @@
 		background: #4b4b4b;
 		cursor: pointer;
 		box-shadow: inset 0px -1px 0px #3c3c3c;
-	}
-	#lang-select:hover {
+	}	#lang-select:hover {
 		background: #292929;
 		box-shadow: inset 0px -1px 0px #3c3c3c;
 	}
 
 	/*
-	more-sports-container-menu */
+	more-sports-container-menu 
+  */
 	#more-sports-menu-container {
 		position: relative;
-	}
-	#more-sports-dropdown-menu {
+	}	#more-sports-dropdown-menu {
 		position: absolute;
 		top: 100%;
 		right: 0%;
@@ -1829,8 +1933,7 @@
 		gap: 12px;
 		padding: 16px;
 		justify-items: start;
-	}
-	#more-sports-dropdown-menu .sports-btn {
+	}	#more-sports-dropdown-menu .sports-btn {
 		background: #4b4b4b;
 		border: 1px solid #8c8c8c !important;
 		box-sizing: border-box;
@@ -1838,29 +1941,26 @@
 		width: 200px;
 		height: 44px;
 		padding: 8.5px 10px 8.5px 12.5px;
-	}
-	#more-sports-dropdown-menu .sport-counter-dark {
+	}	#more-sports-dropdown-menu .sport-counter-dark {
 		background-color: #292929;
 		padding: 3px 8px;
 		border-radius: 20px;
-	}
-	#more-sports-dropdown-menu .sports-btn:hover {
+	}	#more-sports-dropdown-menu .sports-btn:hover {
 		background: #292929;
-	}
-	#more-sports-dropdown-menu .sports-btn:hover .sport-counter-dark {
+	}	#more-sports-dropdown-menu .sports-btn:hover .sport-counter-dark {
 		background: #4b4b4b;
 	}
 
 	/*
 	=============
 	BUTTONS 
+	=============
 	*/
 	button.btn-main {
 		padding: 11px 20px;
 		background: transparent;
 		border-radius: 29px;
-	}
-	button.btn-main:hover {
+	}	button.btn-main:hover {
 		background: #4b4b4b;
 		border-radius: 29px;
 	}
@@ -1873,11 +1973,9 @@
 		border: 1px solid #ffffff !important;
 		box-sizing: border-box;
 		border-radius: 8px;
-	}
-	button#sign-in-btn:hover {
+	}	button#sign-in-btn:hover {
 		border: 1px solid #f5620f !important;
-	}
-	button#sign-in-btn:hover p {
+	}	button#sign-in-btn:hover p {
 		color: #f5620f;
 	}
 
@@ -1888,11 +1986,9 @@
 		box-sizing: border-box;
 		border-radius: 29px;
 		height: 44px;
-	}
-	button.sports-btn.selected-sports {
+	}	button.sports-btn.selected-sports {
 		border: 1px solid #f5620f !important;
-	}
-	button.sports-btn .sport-counter {
+	}	button.sports-btn .sport-counter {
 		padding: 3px 8px;
 		background: #4b4b4b;
 		border-radius: 20px;
@@ -1902,7 +1998,6 @@
     opacity: 0.5;
   }
 
-
 	button#more-sports-menu {
 		padding: 12.5px 16px;
 		background: transparent;
@@ -1911,11 +2006,9 @@
 		border-radius: 29px;
 		height: 44px;
 		position: relative;
-	}
-	button#more-sports-menu:hover {
+	}	button#more-sports-menu:hover {
 		border: 1px solid #ffffff !important;
-	}
-	button#more-sports-menu::after {
+	}	button#more-sports-menu::after {
 		content: '';
 		position: absolute;
 		right: 108%;
@@ -1941,8 +2034,39 @@
 		border-radius: 2px;
 	}
 
+  /* 
+  AUTH BOX 
+  */
+  div#user-profile-box {
+    width: auto;
+    position: relative;
+  } div#user-profile-box div#user-profile-dropdown {
+    position: absolute;
+    top: 100%;
+    right: 0;
+    left: unset;
+    margin-top: 5px;
+    background: #292929;
+    box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.08);
+    border-radius: 4px;
+    overflow: hidden;
+    z-index: 2000;
+    /* height: 80px; */
+    width: 168px;
+  } div#user-profile-box div#user-profile-dropdown div.theme-opt-box {
+    padding: 9.5px 16px;
+    box-shadow: inset 0px -1px 0px #3c3c3c;
+    background: #4b4b4b;
+    height: 40px;
+  } div#user-profile-box div#user-profile-dropdown div.theme-opt-box:hover p {
+    color: #f5620f;
+  } div#user-profile-box p#wallet-text {
+    margin-right: 14px;
+  }
+
 	/* 
-    RESPONSIVE FOR TABLET (&+) [768px] */
+  RESPONSIVE FOR TABLET (&+) [768px] 
+  */
 	@media screen and (min-width: 768px) {
 		header #top-header {
 			padding: 23px 34px;
@@ -1964,7 +2088,8 @@
 	}
 
 	/* 
-    RESPONSIVE FOR DESKTOP ONLY (&+) [1440px] */
+  RESPONSIVE FOR DESKTOP ONLY (&+) [1440px] 
+  */
 	@media screen and (min-width: 1024px) {
 		/* 
 		desktop hover effects */
@@ -2004,6 +2129,8 @@
 			color: #f5620f;
 		}
 
+    
+
 		/* 
 		bookmakers-options-container */
 		#bookmakers-type-container {
@@ -2049,5 +2176,16 @@
 			width: 100%;
 			z-index: 1000;
 		}
+
+    #background-area-close-inner {
+      position: absolute;
+			top: 0;
+			bottom: 0;
+			right: 0;
+			left: 0;
+			height: 100%;
+			width: 100%;
+			z-index: 1000;
+    }
 	}
 </style>
\ No newline at end of file
diff --git a/src/lib/components/_main_/header/assets/profile-avatar.svg b/src/lib/components/_main_/header/assets/profile-avatar.svg
new file mode 100644
index 000000000..16a025ca5
--- /dev/null
+++ b/src/lib/components/_main_/header/assets/profile-avatar.svg
@@ -0,0 +1,13 @@
+<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_6687_165798)">
+<rect width="44" height="44" rx="22" fill="#F5620F"/>
+<path d="M14.5802 20.9133C14.9071 22.3684 16.3644 27.0969 21.4859 27.0969C26.6074 27.0969 28.0642 22.3689 28.3917 20.9133C28.6297 20.8504 28.8562 20.7269 29.0638 20.5456C29.723 19.9657 30.1486 18.7989 30.1486 17.5692C30.1486 16.8618 29.8344 16.4661 29.5739 16.2591C29.4977 16.1994 29.4195 16.152 29.3359 16.1088C29.5201 12.3952 28.8375 9.65934 27.0998 9.26121C27.0998 9.26121 27.1739 6.01505 21.4864 6.01505C13.3458 6.01505 13.2398 11.7813 13.6096 16.1253C13.5378 16.1654 13.4657 16.2057 13.3989 16.2593C13.1365 16.4662 12.8242 16.8629 12.8242 17.5693C12.8242 18.798 13.2496 19.9658 13.9091 20.5457C14.1164 20.7271 14.3427 20.8506 14.5809 20.9134L14.5802 20.9133ZM28.328 19.7538C28.1502 19.9084 28.0223 19.897 27.985 19.8927L27.4559 19.8401L27.386 20.3541C27.3553 20.5857 26.5594 26.0298 21.4868 26.0298C16.4313 26.0298 15.6183 20.5857 15.5867 20.3532L15.5158 19.8404L14.9877 19.893C14.9453 19.8982 14.8215 19.9105 14.6437 19.7541C14.2247 19.3854 13.9209 18.4668 13.9209 17.5697C13.9209 17.2236 14.0468 17.1217 14.0892 17.0887C14.0965 17.0826 14.1082 17.0816 14.1158 17.0764C14.3455 17.1217 14.6607 17.2082 15.0915 17.3545C15.081 16.8467 15.1889 16.3884 15.3475 15.96C19.0039 15.6151 22.1597 14.0248 24.045 12.8466C24.427 13.8477 25.3764 14.9641 27.5492 15.7571C27.5514 15.758 27.5556 15.758 27.5577 15.7592C27.7641 16.239 27.8942 16.7674 27.8805 17.3544C28.3122 17.2081 28.6287 17.1216 28.8584 17.0763C28.8648 17.0804 28.8774 17.0825 28.8828 17.0877C28.924 17.1207 29.0521 17.2226 29.0521 17.5697C29.0511 18.4663 28.7473 19.384 28.3284 19.7538L28.328 19.7538Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.8755 25.8965C19.0643 28.9116 23.9059 28.9117 27.0948 25.8965C27.0948 25.8965 35.9603 26.5641 35.9591 38.9709C35.9591 38.9709 31.5 44 21.5 44C12.5 44 7 38.5 7 38.5C7 26.093 15.8755 25.8965 15.8755 25.8965ZM31.1053 34.3103C31.175 34.0485 31.2094 33.7602 31.2094 33.4788C31.2107 31.807 29.8718 30.4517 28.2219 30.4517C26.8099 30.4517 25.6271 31.4429 25.3142 32.7765L25.3115 32.7576C25.2445 33.0138 25.2078 33.2803 25.2078 33.557C25.2078 34.8022 25.95 35.8719 27.0094 36.3369L27.0161 36.3364C27.3808 36.4968 27.784 36.5867 28.2067 36.5867C28.6374 36.5867 29.0468 36.4943 29.4168 36.328C29.4695 36.3044 29.5215 36.2793 29.5726 36.2527C30.3255 35.8611 30.8928 35.1586 31.1053 34.3103ZM28.9667 34.915L28.94 34.93L28.8995 34.9457C28.899 34.9457 28.8984 34.9459 28.8979 34.9462C28.8972 34.9466 28.8965 34.947 28.8957 34.947C28.8882 34.9508 28.8806 34.9546 28.8743 34.9585C28.6712 35.0601 28.4433 35.1163 28.2029 35.1173C27.355 35.1139 26.6681 34.417 26.6681 33.557C26.6681 32.6948 27.3584 31.9953 28.2093 31.9953C29.0601 31.9953 29.7492 32.6948 29.7492 33.557L29.749 33.5798L29.7485 33.6022C29.7481 33.6166 29.7475 33.6309 29.7467 33.6452C29.7418 33.6884 29.7372 33.7259 29.7335 33.7527C29.7298 33.7791 29.7272 33.795 29.7264 33.7953C29.7061 33.9247 29.6707 34.0502 29.6214 34.1668C29.586 34.2923 29.605 34.35 29.6632 34.455C29.7617 34.6316 29.8816 34.766 30.0494 34.8761C29.9134 34.9358 29.7649 34.9777 29.605 34.9687L29.5718 34.9669C29.5592 34.9662 29.5479 34.9654 29.5374 34.9646C29.4602 34.9588 29.4319 34.9503 29.3416 34.9231L29.3415 34.923L29.3016 34.9111C29.2983 34.9101 29.2928 34.908 29.2854 34.9052C29.2363 34.8867 29.1064 34.8378 29.0273 34.8791C29.027 34.8793 29.0267 34.8795 29.0263 34.8797C29.0261 34.8798 29.0259 34.8799 29.0257 34.88L29.0247 34.8804L29.0229 34.8811L29.0222 34.8816L29.008 34.8905L28.9941 34.8989C28.985 34.9043 28.9759 34.9097 28.9667 34.915Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M22 43C33.598 43 43 33.598 43 22C43 10.402 33.598 1 22 1C10.402 1 1 10.402 1 22C1 33.598 10.402 43 22 43ZM22 44C34.1503 44 44 34.1503 44 22C44 9.84974 34.1503 0 22 0C9.84974 0 0 9.84974 0 22C0 34.1503 9.84974 44 22 44Z" fill="#F5620F"/>
+</g>
+<defs>
+<clipPath id="clip0_6687_165798">
+<rect width="44" height="44" rx="22" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/lib/components/tournaments_page/fixtures_odds/_Fixture_Odds_Widget.svelte b/src/lib/components/tournaments_page/fixtures_odds/_Fixture_Odds_Widget.svelte
index e2bcdaba5..b14c2ac12 100644
--- a/src/lib/components/tournaments_page/fixtures_odds/_Fixture_Odds_Widget.svelte
+++ b/src/lib/components/tournaments_page/fixtures_odds/_Fixture_Odds_Widget.svelte
@@ -2783,8 +2783,8 @@
   #seo-widget-box {
 		position: absolute;
 		z-index: -100;
-		top: -9999px;
-		left: -9999px;
+		top: -999999px;
+		left: -999999px;
 	}
 
   /* 
diff --git a/src/lib/firebase/init.ts b/src/lib/firebase/init.ts
index 15881867b..c576a4439 100644
--- a/src/lib/firebase/init.ts
+++ b/src/lib/firebase/init.ts
@@ -5,18 +5,28 @@
 // ~~~~~~~~~~~~~~~~~~
 
 import { initializeApp } from 'firebase/app';
+import { getAuth } from "firebase/auth";
 import { getDatabase } from 'firebase/database';
 
-// ... firebase config with non-auth properties skipped;
+// NOTE: firebase config with non-auth properties skipped;
 const firebaseConfig = {
-	apiKey: import.meta.env.VITE_FIREBASE_DB_API_KEY.toString(),
-	authDomain: import.meta.env.VITE_FIREBASE_DB_AUTH_DOMAIN.toString(),
-	projectId: import.meta.env.VITE_FIREBASE_DB_PROJECT_ID.toString(),
-	databaseURL: import.meta.env.VITE_FIREBASE_DB_DATABASE_URL.toString()
+	apiKey: import.meta.env.VITE_FIREBASE_DB_API_KEY.toString(), // [ℹ] [MAIN] FIREBASE DB KEY
+	authDomain: import.meta.env.VITE_FIREBASE_DB_AUTH_DOMAIN_MAIN.toString(), // [ℹ] [MAIN] AUTH DB URL
+	projectId: import.meta.env.VITE_FIREBASE_DB_PROJECT_ID.toString(), // [ℹ] [MAIN] PROJECT ID
+	databaseURL: import.meta.env.VITE_FIREBASE_DB_DATABASE_URL.toString() // [ℹ] REALTIME DB
 };
 
-// ... initialize the Firebase APP;
-const app = initializeApp(firebaseConfig);
+// NOTE: firebase config with non-auth properties skipped;
+const firebaseConfigMain = {
+	apiKey: import.meta.env.VITE_FIREBASE_DB_API_KEY.toString(),
+	authDomain: import.meta.env.VITE_FIREBASE_DB_AUTH_DOMAIN_MAIN.toString(),
+	projectId: import.meta.env.VITE_FIREBASE_DB_PROJECT_ID_MAIN.toString()
+};
 
-// ... use the Real-Time-DB from FIREBASE;
+// NOTE: initialize the Firebase APP;
+export const app = initializeApp(firebaseConfig);
+export const app_m = initializeApp(firebaseConfigMain, 'secondary');
+// NOTE: Initialize Real-Time-DB and get a reference to the service;
 export const db_real = getDatabase(app);
+// NOTE: Initialize Firebase Authentication and get a reference to the service;
+export const auth = getAuth(app_m);
\ No newline at end of file
diff --git a/src/lib/store/session.ts b/src/lib/store/session.ts
index 3eb4e2195..f4289210d 100644
--- a/src/lib/store/session.ts
+++ b/src/lib/store/session.ts
@@ -4,12 +4,15 @@ export interface Platform_Session {
   newsletterPopUpShow: boolean // [ℹ] Email_subscribe.svelte
   selectedSeasonID:    number  // [ℹ] Tournament Page Critical [❗]
   fixture_select_view: "overview" | "news" // [ℹ] Fixture Page View Critical [❗]
+  auth_show:           boolean // [ℹ] Authenticated Opt
 }
 
+// [ℹ] Default State
 const seassion_store: Platform_Session = {
   newsletterPopUpShow: false,
   selectedSeasonID: undefined,
-  fixture_select_view: "overview"
+  fixture_select_view: "overview",
+  auth_show: false
 };
 
 function createLocalStore () {
@@ -25,7 +28,6 @@ function createLocalStore () {
       seassion_store.newsletterPopUpShow = !seassion_store.newsletterPopUpShow;
     }
   }
-
 }
 
 export const sessionStore = createLocalStore();
\ No newline at end of file
diff --git a/src/lib/store/user-settings.ts b/src/lib/store/user-settings.ts
index d0df94567..034c6755d 100644
--- a/src/lib/store/user-settings.ts
+++ b/src/lib/store/user-settings.ts
@@ -5,20 +5,28 @@
 import { dev } from '$app/environment';
 import type { GeoJsResponse } from '$lib/models/geojs-types';
 import { logDevGroup } from '$lib/utils/debug';
+import type { User } from 'firebase/auth';
 import { writable } from 'svelte/store';
 
+export interface Scores_User
+  extends User {
+  web3_wallet_addr?: string // [ℹ] Authenticated User [WEB3]
+}
+
 interface User_Setting {
-	lang: string;
-	theme: string;
-	country_bookmaker: string;
-	geoJs: GeoJsResponse
+	lang:               string;
+	theme:              string;
+	country_bookmaker:  string;
+	geoJs:              GeoJsResponse;
+  user:               Scores_User // [ℹ] Authenticated User
 }
 
 const user_settings: User_Setting = {
 	lang: undefined,
 	theme: undefined,
 	country_bookmaker: undefined,
-	geoJs: undefined
+	geoJs: undefined,
+  user: undefined
 }
 
 /**
@@ -28,7 +36,7 @@ const user_settings: User_Setting = {
  * ... @param {*} key
  * ... @returns
 */
-function createLocalStore(key: string): any {
+function createLocalStore(key: string) {
 	
 	const { subscribe, set, update } = writable(user_settings);
 
@@ -40,38 +48,39 @@ function createLocalStore(key: string): any {
 		/**
 		 * Description:
 		 * ~~~~~~~~~~~~~~~~~
-		 * ... [START]
-		 * ... Method for rendering the .localStorage() form
-		 * ... the start of the page,
+		 * ➤ [START]
+		 * ➤ Method for rendering the .localStorage() form
+		 * ➤ the start of the page,
 		*/
 		useLocalStorage: () => {
-			// ... reset the writable to the localStorage if localStorage already exists,
+			// [ℹ] reset the writable to the localStorage if localStorage already exists,
 			const existing: string = localStorage.getItem(key);
-			// ... validation of the data existing;
+			// [ℹ] validation of the data existing;
 			const exisitng_data: User_Setting = existing
-				? // ... if data exists, then use the existing data;
+				? // [ℹ] if data exists, then use the existing data;
 				  JSON.parse(existing)
-				: // ... otherwise, instantiate default config;
+				: // [ℹ] otherwise, instantiate default config;
 				  {
 						lang: 'en',
 						theme: 'Light',
 						country_bookmaker: undefined,
-						geoJs: undefined
+						geoJs: undefined,
+            user: undefined
 				  };
-			// ... SET ITEM DATA TO LOCALSTORAGE();
+			// [ℹ] SET ITEM DATA TO LOCALSTORAGE();
 			localStorage.setItem(key, JSON.stringify(exisitng_data));
-			// ... SET DATA TO SUBSCRIBED METHOD;
+			// [ℹ] SET DATA TO SUBSCRIBED METHOD;
 			set(exisitng_data);
 		},
 
 		/**
 		 * Description:
 		 * ~~~~~~~~~~~~~~~~~
-		 * ... method to add the user seleted language
-		 * ... to the localStoage & application store
-		 * ... [WORKING]
+		 * ➤ method to add the user seleted language
+		 * ➤ to the localStoage & application store
+		 * ➤ [WORKING]
 		 *
-		 * ... @param {*} lang
+		 * ➤ @param {*} lang
 		*/
 		setLang: (lang: string) => {
 			// ... DEBUGGING;
@@ -91,11 +100,11 @@ function createLocalStore(key: string): any {
 		/**
 		 * Description:
 		 * ~~~~~~~~~~~~~~~~~
-		 * ... method to add the user seleted theme
-		 * ... to the localStoage & application store
-		 * ... [WORKING]
+		 * ➤ method to add the user seleted theme
+		 * ➤ to the localStoage & application store
+		 * ➤ [WORKING]
 		 *
-		 * ... @param {*} theme
+		 * ➤ @param {*} theme
 		*/
 		setTheme: (theme: string) => {
 			// ... GET DATA FROM LOCALSTORAGE();
@@ -113,11 +122,11 @@ function createLocalStore(key: string): any {
 		/**
 		 * Description:
 		 * ~~~~~~~~~~~~~~~~~
-		 * ... method to add the user seleted theme
-		 * ... to the localStoage & application store
-		 * ... [WORKING]
+		 * ➤ method to add the user seleted theme
+		 * ➤ to the localStoage & application store
+		 * ➤ [WORKING]
 		 *
-		 * ... @param {*} country_bookmaker
+		 * ➤ @param {*} country_bookmaker
 		*/
 		setCountryBookmaker: (country_bookmaker: string) => {
 			// ... GET DATA FROM LOCALSTORAGE();
@@ -135,11 +144,11 @@ function createLocalStore(key: string): any {
 		/**
 		 * Description:
 		 * ~~~~~~~~~~~~~~~~~
-		 * ... method to add the user seleted theme
-		 * ... to the localStoage & application store
-		 * ... [WORKING]
+		 * ➤ method to add the user seleted theme
+		 * ➤ to the localStoage & application store
+		 * ➤ [WORKING]
 		 *
-		 * ... @param {*} GeoJsResponse
+		 * ➤ @param {*} GeoJsResponse
 		*/
 		setGeoJs: (geojs_res: GeoJsResponse) => {
 			// ... GET DATA FROM LOCALSTORAGE();
@@ -152,9 +161,49 @@ function createLocalStore(key: string): any {
 			localStorage.setItem(key, JSON.stringify(existing_data));
 			// ... update the `set()` data;
 			set(existing_data);
-		}
+		},
 
+    /**
+		 * Description:
+		 * ~~~~~~~~~~~~~~~~~
+		 * ➤ method to add the user data
+		 * ➤ to the localStoage & application store
+		 * ➤ [WORKING]
+		 *
+		 * ➤ @param {*} User
+		*/
+    signInUser: (user: User) => {
+      // [ℹ] GET DATA FROM LOCALSTORAGE();
+      const existing: string = localStorage.getItem(key);
+      // [ℹ] CONVERT TO JSON;
+      const existing_data: User_Setting = JSON.parse(existing);
+      // [ℹ] UPDATE THE DATA FOR LANG;
+      existing_data.user = user;
+      // [ℹ] UPDATE THE LOCALSTORAGE();
+      localStorage.setItem(key, JSON.stringify(existing_data));
+      // [ℹ] update the `set()` data;
+      set(existing_data);
+    },
 
+    /**
+		 * Description:
+		 * ~~~~~~~~~~~~~~~~~
+		 * ➤ method to remove the user data from
+		 * ➤ the localStoage & application store
+		 * ➤ [WORKING]
+		*/
+    signOutUser: () => {
+      // [ℹ] GET DATA FROM LOCALSTORAGE();
+      const existing: string = localStorage.getItem(key);
+      // [ℹ] CONVERT TO JSON;
+      const existing_data: User_Setting = JSON.parse(existing);
+      // [ℹ] UPDATE THE DATA FOR LANG;
+      existing_data.user = undefined;
+      // [ℹ] UPDATE THE LOCALSTORAGE();
+      localStorage.setItem(key, JSON.stringify(existing_data));
+      // [ℹ] update the `set()` data;
+      set(existing_data);
+    }
 	};
 }
 
diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts
index 423d732e3..7708475fd 100644
--- a/src/routes/+layout.ts
+++ b/src/routes/+layout.ts
@@ -61,6 +61,9 @@ export async function load ({
     const response_header = data[0]
     const response_footer = data[1]
   */
+ 
+  if (response_header == undefined) console.log("response_header is undefined")
+  if (response_footer == undefined) console.log("response_footer is undefined") 
 
   if (
     response_header &&
diff --git a/src/routes/+page.ts b/src/routes/+page.ts
index 76f7c7c8f..7b2f97ed0 100644
--- a/src/routes/+page.ts
+++ b/src/routes/+page.ts
@@ -271,6 +271,19 @@ export async function load ({
     throw error(404, `Uh-oh! This page does not exist!`);
   }
 
+  // [🐞]
+  if (response_homepage_seo == undefined) console.log("response_homepage_seo is undefined")
+  if (response_featured_match_seo == undefined) console.log("response_featured_match_seo is undefined")
+  if (response_featured_betting_sites_seo == undefined) console.log("response_featured_betting_sites_seo is undefined")
+  if (response_best_goalscorers_seo == undefined) console.log("response_best_goalscorers_seo is undefined")
+  if (response_league_list_seo == undefined) console.log("response_league_list_seo is undefined")
+  if (response_leagues_table_seo == undefined) console.log("response_leagues_table_seo is undefined")
+  if (response_seo_block_seo == undefined) console.log("response_seo_block_seo is undefined")
+  if (response_livescores_football == undefined) console.log("response_livescores_football is undefined")
+  if (response_livescores_football_leagues == undefined) console.log("response_livescores_football_leagues is undefined")
+  if (response_livescores_football_translations == undefined) console.log("response_livescores_football_translations is undefined")
+  if (response_livescores_football_tournaments == undefined) console.log("response_livescores_football_tournaments is undefined")
+
   if (
     response_homepage_seo &&
     response_featured_match_seo &&
diff --git a/src/routes/[lang=lang]/+page.ts b/src/routes/[lang=lang]/+page.ts
index 7e015f76f..03402ddef 100644
--- a/src/routes/[lang=lang]/+page.ts
+++ b/src/routes/[lang=lang]/+page.ts
@@ -270,6 +270,19 @@ export async function load ({
     throw error(404, `Uh-oh! This page does not exist!`);
   }
 
+  // [🐞]
+  if (response_homepage_seo == undefined) console.log("response_homepage_seo is undefined")
+  if (response_featured_match_seo == undefined) console.log("response_featured_match_seo is undefined")
+  if (response_featured_betting_sites_seo == undefined) console.log("response_featured_betting_sites_seo is undefined")
+  if (response_best_goalscorers_seo == undefined) console.log("response_best_goalscorers_seo is undefined")
+  if (response_league_list_seo == undefined) console.log("response_league_list_seo is undefined")
+  if (response_leagues_table_seo == undefined) console.log("response_leagues_table_seo is undefined")
+  if (response_seo_block_seo == undefined) console.log("response_seo_block_seo is undefined")
+  if (response_livescores_football == undefined) console.log("response_livescores_football is undefined")
+  if (response_livescores_football_leagues == undefined) console.log("response_livescores_football_leagues is undefined")
+  if (response_livescores_football_translations == undefined) console.log("response_livescores_football_translations is undefined")
+  if (response_livescores_football_tournaments == undefined) console.log("response_livescores_football_tournaments is undefined")
+
   if (
     response_homepage_seo &&
     response_featured_match_seo &&