Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c0c560441 | ||
|
|
5763f03288
|
||
|
|
ed06b8731d
|
||
|
|
345cbd2bf2
|
||
|
|
c4a90ceb15
|
||
|
|
ac66323a78
|
||
|
|
32437a6e36 | ||
|
|
cec777d1bf | ||
|
|
605c7b3734 | ||
|
|
1b6c80f84d | ||
|
|
ddf07eee11
|
||
|
|
640ae859e5 | ||
|
|
54024bd7a2
|
||
|
|
821843088d
|
||
|
|
2ad43139de | ||
|
|
04a7fa428c | ||
|
|
cadbc2187d
|
||
|
|
f417ac00fb | ||
|
|
b2e795427d
|
||
|
|
7ff74b8bbd
|
||
|
|
700ded35e4
|
||
|
|
dbffe122a2
|
||
|
|
d85a4120e2
|
||
|
|
3ad4e20588
|
||
|
|
aedfc17c36
|
||
|
|
4c6945ecbc
|
||
|
|
8507c4faaf | ||
|
|
17f11c85df | ||
|
|
0658a8a85c | ||
|
|
173c0b63c4 | ||
|
|
93a5c45dd9 | ||
|
|
1652d05fcd | ||
|
|
5bbfde3127 | ||
|
|
a173b8c70c | ||
|
|
78946bb6ca
|
||
|
|
1f8579a052
|
||
|
|
47fc1983f8
|
||
|
|
d67718733d | ||
|
|
803330b174
|
||
|
|
e65af5336f | ||
|
|
7b9b18f030 | ||
|
|
f3a1a2191a | ||
|
|
05402432a6 | ||
|
|
03c3f9a610 | ||
|
|
9b998078b7 | ||
|
|
b944c37c02 | ||
|
|
4bb9a01524 | ||
|
|
47ab6c9eed | ||
|
|
b558a75f20 | ||
|
|
5abec70c61 |
No files matched your search
@@ -1,4 +1,7 @@
|
||||
mongoURI='mongodb://localhost:27017/'
|
||||
database='nameOfDatabase'
|
||||
MONGO_URI='mongodb://localhost:27017/'
|
||||
DATABASE='nameOfDatabase'
|
||||
PORT=8000
|
||||
secret='123456789'
|
||||
SECRET='123456789'
|
||||
GEOLOCATION_API='api_key'
|
||||
EMAIL_USER=mail@example.com
|
||||
EMAIL_PASS='password'
|
||||
@@ -6,3 +6,6 @@ node_modules/
|
||||
|
||||
# Sync
|
||||
*.sync-conflict*
|
||||
|
||||
# VSCode
|
||||
.vscode/
|
||||
@@ -1,12 +0,0 @@
|
||||
<html>
|
||||
<body>
|
||||
Team Name: BBY-14
|
||||
Team Members:
|
||||
<ul>
|
||||
<li> Joaquin Paredes </li>
|
||||
<li> Nicolas Agostini </li>
|
||||
<li> Mitchell Schaeffer </li>
|
||||
<li> Braeden Sowinski </li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -6,13 +6,12 @@ const path = require('path');
|
||||
const joi = require('joi');
|
||||
require('dotenv').config();
|
||||
|
||||
|
||||
const app = express();
|
||||
const port = process.env.PORT || 3000;
|
||||
|
||||
const mongoURI = process.env.mongoURI || "mongodb://localhost:27017/";
|
||||
const database = process.env.database || "knoldus"; // Database name
|
||||
const secret = process.env.secret || "123-secret-xyz";
|
||||
const mongoURI = process.env.MONGO_URI;
|
||||
const database = process.env.DATABASE; // Database name
|
||||
const secret = process.env.SECRET || "123-secret-xyz";
|
||||
|
||||
/*** Sessions ***/
|
||||
app.use(session({
|
||||
@@ -24,7 +23,7 @@ app.use(session({
|
||||
}));
|
||||
|
||||
app.set('view engine', 'ejs');
|
||||
app.set('views',path.join(__dirname, 'src/views'));
|
||||
app.set('views', path.join(__dirname, 'src/views'));
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
app.use("/static", express.static("./src/public"));
|
||||
app.use("/images", express.static("./src/public/images"));
|
||||
@@ -34,11 +33,15 @@ app.use(express.json());
|
||||
const { connectMongo, getCollection } = require("./src/database/connection");
|
||||
|
||||
let users;
|
||||
let assets;
|
||||
let plans;
|
||||
async function initDatabase() {
|
||||
const db = await connectMongo(mongoURI, database);
|
||||
|
||||
// For any collection, init here
|
||||
users = await getCollection(db, "users");
|
||||
assets = await getCollection(db, "assets");
|
||||
plans = await getCollection(db, "plans");
|
||||
}
|
||||
|
||||
/*** ROUTINGS ***/
|
||||
@@ -70,14 +73,11 @@ app.get('/aboutUs', (req, res) => {
|
||||
return res.status(status.Ok);
|
||||
});
|
||||
|
||||
app.post('/api/location', async (req,res) => {
|
||||
const { latitude, longitude } = req.body;
|
||||
|
||||
const response = await fetch(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${latitude},${longitude}&result_type=country&key=${process.env.geolocation_api}`);
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
res.json(data);
|
||||
// 404 handler - keep the actual notFound route please
|
||||
// REALLY DONT DELETE THIS
|
||||
app.get('/notFound', (req, res) => {
|
||||
res.render('notFound');
|
||||
return res.status(status.NotFound);
|
||||
});
|
||||
|
||||
// Initialize database and start app
|
||||
@@ -89,11 +89,11 @@ initDatabase().then(() => {
|
||||
|
||||
// Import middleware & apply to user routes
|
||||
const middleware = require("./src/auth/middleware")(users);
|
||||
app.use(require('./src/router/user')(middleware, users));
|
||||
app.use(require('./src/router/user')(middleware, users, plans, assets));
|
||||
|
||||
// 404 handler
|
||||
app.get('/*splat', (req, res) => {
|
||||
res.send('404 Not Found');
|
||||
res.render('notFound');
|
||||
return res.status(status.NotFound);
|
||||
});
|
||||
|
||||
|
||||
@@ -354,27 +354,6 @@
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/chalk/node_modules/has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/chalk/node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/chokidar": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
||||
@@ -549,6 +528,7 @@
|
||||
"version": "16.5.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
|
||||
"integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
|
||||
"license": "BSD-2-Clause",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@@ -580,6 +560,7 @@
|
||||
"version": "3.1.10",
|
||||
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
|
||||
"integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"jake": "^10.8.5"
|
||||
},
|
||||
@@ -969,13 +950,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||
"dev": true,
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
@@ -1479,6 +1459,29 @@
|
||||
"url": "https://opencollective.com/nodemon"
|
||||
}
|
||||
},
|
||||
"node_modules/nodemon/node_modules/has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/nodemon/node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"has-flag": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/nopt": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
|
||||
@@ -1976,16 +1979,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"has-flag": "^3.0.0"
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/tar": {
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
const status = require("../util/statuses");
|
||||
const session = require("express-session");
|
||||
const bcrypt = require('bcrypt');
|
||||
const joi = require("joi");
|
||||
const salt = 12;
|
||||
|
||||
/**
|
||||
* @param {MongoClient.collection} users db collection
|
||||
* @returns {express.Router} authentication router
|
||||
*/
|
||||
module.exports = (users) => {
|
||||
const router = require("express").Router();
|
||||
|
||||
@@ -40,6 +45,7 @@ module.exports = (users) => {
|
||||
}
|
||||
|
||||
req.session.authenticated = true;
|
||||
req.session.userId = user._id;
|
||||
req.session.email = req.body.email;
|
||||
req.session.errMessage = "";
|
||||
res.redirect("/home");
|
||||
@@ -75,6 +81,7 @@ module.exports = (users) => {
|
||||
email: req.body.email,
|
||||
name: req.body.name,
|
||||
password: hashedPassword,
|
||||
financialData: false,
|
||||
}).then((results, err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
@@ -84,6 +91,7 @@ module.exports = (users) => {
|
||||
|
||||
req.session.authenticated = true;
|
||||
req.session.email = req.body.email;
|
||||
req.session.userId = results.insertedId;
|
||||
|
||||
req.session.errMessage = "";
|
||||
return res.status(status.Ok).redirect("/home");
|
||||
|
||||
@@ -1,19 +1,29 @@
|
||||
const status = require("../util/statuses");
|
||||
const session = require("express-session");
|
||||
|
||||
// Get all user routes names
|
||||
let userRouter = require("../router/user")((req, res, next) => next(), null, null, null);
|
||||
userRouter.stack.shift();
|
||||
const userRoutes = userRouter.stack.map((layer) => layer.route.path.split("/")[1]);
|
||||
|
||||
/**
|
||||
* createMiddleware returns a middleware function for express.
|
||||
* @param {MongoClient.collection} users
|
||||
* @return {async function}
|
||||
*/
|
||||
* @param {MongoClient.collection} users db collection
|
||||
* @returns {async function} middleware handler function
|
||||
*/
|
||||
const createMiddleware = (users) => {
|
||||
return async (req, res, next) => {
|
||||
// Redirect not found pages to 404 page
|
||||
if (!userRoutes.includes(req.url.split("/")[1])) {
|
||||
return res.status(status.NotFound).redirect("/notFound");
|
||||
}
|
||||
|
||||
if (!req.session.authenticated || !req.session.email) {
|
||||
req.session.errMessage = "Please login to view that resource";
|
||||
res.redirect("/login");
|
||||
return res.status(status.Unauthorized);
|
||||
}
|
||||
|
||||
if (!req.session.user) {
|
||||
let user = await users.findOne({ "email": req.session.email }).then((user) => user);
|
||||
|
||||
if (!user) {
|
||||
@@ -22,7 +32,9 @@ const createMiddleware = (users) => {
|
||||
return res.status(status.Unauthorized);
|
||||
}
|
||||
|
||||
req.user = user;
|
||||
req.session.user = user;
|
||||
}
|
||||
|
||||
next();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
const assetForms = [
|
||||
"create-other-asset-form",
|
||||
"create-saving-asset-form",
|
||||
"create-stock-asset-form"
|
||||
];
|
||||
|
||||
/**
|
||||
* resetAll asset creation forms
|
||||
*/
|
||||
function resetAll() {
|
||||
document.getElementById("create-other-asset-form").reset();
|
||||
document.getElementById("create-saving-asset-form").reset();
|
||||
document.getElementById("create-stock-asset-form").reset();
|
||||
}
|
||||
|
||||
/**
|
||||
* selectAssetForm changes which form is displayed
|
||||
* to create specified assets.
|
||||
* @param {string} assetFormId
|
||||
*/
|
||||
function selectAssetForm(assetFormId) {
|
||||
for (let i = 0; i < assetForms.length; i++) {
|
||||
if (assetForms[i] == assetFormId) {
|
||||
document.getElementById(assetFormId).style.display = "block";
|
||||
} else {
|
||||
document.getElementById(assetForms[i]).style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* resetRadio to default to other asset type.
|
||||
*/
|
||||
function resetRadio() {
|
||||
document.getElementById("asset-other").checked = true;
|
||||
document.getElementById("asset-saving").checked = false;
|
||||
document.getElementById("asset-stock").checked = false;
|
||||
}
|
||||
|
||||
const assetKeys = {
|
||||
other: [
|
||||
"name",
|
||||
"value",
|
||||
"description",
|
||||
"purchaseDate",
|
||||
],
|
||||
saving: [
|
||||
"name",
|
||||
"value",
|
||||
],
|
||||
stock: [
|
||||
"ticker",
|
||||
"price",
|
||||
"quantity",
|
||||
"purchaseDate",
|
||||
],
|
||||
}
|
||||
|
||||
/**
|
||||
* lockAsset prevents edits to asset view modal
|
||||
* @param {string} assetId
|
||||
*/
|
||||
function lockAsset(assetId) {
|
||||
document.getElementById(`${assetId}-form`).reset();
|
||||
|
||||
const type = document.getElementById(`type-${assetId}`).value;
|
||||
|
||||
assetKeys[type].forEach((key) => {
|
||||
document.getElementById(`${key}-${assetId}`).disabled = true;
|
||||
});
|
||||
|
||||
document.getElementById(`save-${assetId}`).disabled = true;
|
||||
document.getElementById(`save-${assetId}`).classList.remove("cursor-pointer");
|
||||
document.getElementById(`save-${assetId}`).classList.add("cursor-not-allowed");
|
||||
|
||||
document.getElementById(`edit-${assetId}`).innerHTML = "Edit";
|
||||
document.getElementById(`edit-${assetId}`).onclick = () => { unlockAsset(assetId) };
|
||||
}
|
||||
|
||||
/**
|
||||
* unlockAsset allows edits to asset view modal
|
||||
* @param {string} assetId
|
||||
*/
|
||||
function unlockAsset(assetId) {
|
||||
const type = document.getElementById(`type-${assetId}`).value;
|
||||
|
||||
assetKeys[type].forEach((key) => {
|
||||
document.getElementById(`${key}-${assetId}`).disabled = false;
|
||||
});
|
||||
|
||||
document.getElementById(`save-${assetId}`).disabled = false;
|
||||
document.getElementById(`save-${assetId}`).classList.remove("cursor-not-allowed");
|
||||
document.getElementById(`save-${assetId}`).classList.add("cursor-pointer");
|
||||
|
||||
document.getElementById(`edit-${assetId}`).innerHTML = "Cancel changes";
|
||||
document.getElementById(`edit-${assetId}`).onclick = () => { lockAsset(assetId) };
|
||||
}
|
||||
|
||||
resetRadio();
|
||||
@@ -0,0 +1,3 @@
|
||||
let rate = document.getElementsByClassName("countryButton").value;
|
||||
|
||||
document.getElementById("exchange").innerHTML
|
||||
@@ -1,22 +1,69 @@
|
||||
function getLocation() {
|
||||
if (navigator.geolocation) {
|
||||
navigator.geolocation.getCurrentPosition(success, error);
|
||||
navigator.geolocation.getCurrentPosition(getLatestExchange, error);
|
||||
}
|
||||
}
|
||||
|
||||
function success(position) {
|
||||
const { latitude, longitude } = position.coords;
|
||||
function update(data) {
|
||||
document.getElementById("loading").style = "display: none";
|
||||
document.getElementById("currencyExchange").style = "display: flex";
|
||||
|
||||
fetch("api/location" , {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify({ latitude, longitude })
|
||||
}).then(res => res.json())
|
||||
.then(data => {
|
||||
console.log(data.results[0].formatted_address);
|
||||
})
|
||||
document.getElementById("yourFlag").src = `/static/svgs/flags/${data.data.country}.svg`
|
||||
document.getElementById("yourFlag").alt = data.data.country;
|
||||
document.getElementById("flagTag").innerHTML = `(${data.data.country})`;
|
||||
|
||||
document.getElementById("exchangeFlag").src = `/static/svgs/flags/USD.svg`;
|
||||
document.getElementById("exchangeFlag").alt = "USD";
|
||||
document.getElementById("exFlagTag").innerHTML = "(USD)";
|
||||
|
||||
document.getElementById("dropdown-country-button").value = data.data.toCurrencyRates["USD"];
|
||||
|
||||
updateExchange(document.getElementById("dropdown-country-button").value);
|
||||
|
||||
const dropdown = document.getElementById("dropdown");
|
||||
let countries = Object.keys(data.data.toCurrencyRates);
|
||||
|
||||
countries.forEach(item => {
|
||||
if (dropdown.querySelector(`button[value="${data.data.toCurrencyRates[item]}"]`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const listItem = document.createElement("li");
|
||||
listItem.innerHTML = `<button onclick="switchButton(this)" type="button" value="${data.data.toCurrencyRates[item]}" class="country Button inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600 dark:hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">
|
||||
<img src="/static/svgs/flags/${item}.svg" class="h-4 w-4 me-2" alt="${item}"> (${item})
|
||||
</span>
|
||||
</button>`;
|
||||
|
||||
dropdown.appendChild(listItem);
|
||||
});
|
||||
|
||||
// console.log(data);
|
||||
}
|
||||
|
||||
function switchButton(clickedButton) {
|
||||
document.getElementById("dropdown-country-button").value = clickedButton.value;
|
||||
updateExchange(document.getElementById("dropdown-country-button").value);
|
||||
|
||||
document.getElementById("dropdown-country-button").innerHTML = clickedButton.innerHTML +
|
||||
`
|
||||
<svg class="w-2.5 h-2.5 ms-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
||||
</svg>
|
||||
`;
|
||||
}
|
||||
|
||||
function updateExchange(exRate) {
|
||||
document.getElementById("exchange").innerHTML = "$1.00 = $" +`${(1 * exRate).toFixed(2)}`;
|
||||
}
|
||||
|
||||
async function getLatestExchange(position) {
|
||||
let lat = position.coords.latitude;
|
||||
let lon = position.coords.longitude;
|
||||
const res = await fetch(`/exRates/${lat}/${lon}`);
|
||||
const data = await res.json();
|
||||
|
||||
update(data);
|
||||
}
|
||||
|
||||
function error(err) {
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path d="M10.464 8.746c.227-.18.497-.311.786-.394v2.795a2.252 2.252 0 0 1-.786-.393c-.394-.313-.546-.681-.546-1.004 0-.323.152-.691.546-1.004ZM12.75 15.662v-2.824c.347.085.664.228.921.421.427.32.579.686.579.991 0 .305-.152.671-.579.991a2.534 2.534 0 0 1-.921.42Z" />
|
||||
<path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25ZM12.75 6a.75.75 0 0 0-1.5 0v.816a3.836 3.836 0 0 0-1.72.756c-.712.566-1.112 1.35-1.112 2.178 0 .829.4 1.612 1.113 2.178.502.4 1.102.647 1.719.756v2.978a2.536 2.536 0 0 1-.921-.421l-.879-.66a.75.75 0 0 0-.9 1.2l.879.66c.533.4 1.169.645 1.821.75V18a.75.75 0 0 0 1.5 0v-.81a4.124 4.124 0 0 0 1.821-.749c.745-.559 1.179-1.344 1.179-2.191 0-.847-.434-1.632-1.179-2.191a4.122 4.122 0 0 0-1.821-.75V8.354c.29.082.559.213.786.393l.415.33a.75.75 0 0 0 .933-1.175l-.415-.33a3.836 3.836 0 0 0-1.719-.755V6Z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path fill-rule="evenodd" d="M11.293 3.293a1 1 0 0 1 1.414 0l6 6 2 2a1 1 0 0 1-1.414 1.414L19 12.414V19a2 2 0 0 1-2 2h-3a1 1 0 0 1-1-1v-3h-2v3a1 1 0 0 1-1 1H7a2 2 0 0 1-2-2v-6.586l-.293.293a1 1 0 0 1-1.414-1.414l2-2 6-6Z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 358 B |
@@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-au" viewBox="0 0 640 480">
|
||||
<path fill="#00008B" d="M0 0h640v480H0z"/>
|
||||
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
|
||||
<path fill="red" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
|
||||
<path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
|
||||
<path fill="red" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
|
||||
<path fill="#fff" d="m527 396.7-20.5 2.6 2.2 20.5-14.8-14.4-14.7 14.5 2-20.5-20.5-2.4 17.3-11.2-10.9-17.5 19.6 6.5 6.9-19.5 7.1 19.4 19.5-6.7-10.7 17.6zm-3.7-117.2 2.7-13-9.8-9 13.2-1.5 5.5-12.1 5.5 12.1 13.2 1.5-9.8 9 2.7 13-11.6-6.6zm-104.1-60-20.3 2.2 1.8 20.3-14.4-14.5-14.8 14.1 2.4-20.3-20.2-2.7 17.3-10.8-10.5-17.5 19.3 6.8L387 178l6.7 19.3 19.4-6.3-10.9 17.3 17.1 11.2ZM623 186.7l-20.9 2.7 2.3 20.9-15.1-14.7-15 14.8 2.1-21-20.9-2.4 17.7-11.5-11.1-17.9 20 6.7 7-19.8 7.2 19.8 19.9-6.9-11 18zm-96.1-83.5-20.7 2.3 1.9 20.8-14.7-14.8-15.1 14.4 2.4-20.7-20.7-2.8 17.7-11L467 73.5l19.7 6.9 7.3-19.5 6.8 19.7 19.8-6.5-11.1 17.6zM234 385.7l-45.8 5.4 4.6 45.9-32.8-32.4-33 32.2 4.9-45.9-45.8-5.8 38.9-24.8-24-39.4 43.6 15 15.8-43.4 15.5 43.5 43.7-14.7-24.3 39.2 38.8 25.1Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bg" viewBox="0 0 640 480">
|
||||
<path fill="#fff" d="M0 0h640v160H0z"/>
|
||||
<path fill="#00966e" d="M0 160h640v160H0z"/>
|
||||
<path fill="#d62612" d="M0 320h640v160H0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 225 B |
@@ -0,0 +1,45 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-br" viewBox="0 0 640 480">
|
||||
<g stroke-width="1pt">
|
||||
<path fill="#229e45" fill-rule="evenodd" d="M0 0h640v480H0z"/>
|
||||
<path fill="#f8e509" fill-rule="evenodd" d="m321.4 436 301.5-195.7L319.6 44 17.1 240.7z"/>
|
||||
<path fill="#2b49a3" fill-rule="evenodd" d="M452.8 240c0 70.3-57.1 127.3-127.6 127.3A127.4 127.4 0 1 1 452.8 240"/>
|
||||
<path fill="#ffffef" fill-rule="evenodd" d="m283.3 316.3-4-2.3-4 2 .9-4.5-3.2-3.4 4.5-.5 2.2-4 1.9 4.2 4.4.8-3.3 3m86 26.3-3.9-2.3-4 2 .8-4.5-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.1m-36.2-30-3.4-2-3.5 1.8.8-3.9-2.8-2.9 4-.4 1.8-3.6 1.6 3.7 3.9.7-3 2.7m87-8.5-3.4-2-3.5 1.8.8-3.9-2.7-2.8 3.9-.4 1.8-3.5 1.6 3.6 3.8.7-2.9 2.6m-87.3-22-4-2.2-4 2 .8-4.6-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.2m-104.6-35-4-2.2-4 2 1-4.6-3.3-3.3 4.6-.5 2-4.1 2 4.2 4.4.8-3.3 3.1m13.3 57.2-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.1-4 2 4.2 4.4.8-3.3 3.1m132-67.3-3.6-2-3.6 1.8.8-4-2.8-3 4-.5 1.9-3.6 1.7 3.8 4 .7-3 2.7m-6.7 38.3-2.7-1.6-2.9 1.4.6-3.2-2.2-2.3 3.2-.4 1.5-2.8 1.3 3 3 .5-2.2 2.2m-142.2 50.4-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2M419 299.8l-2.2-1.1-2.2 1 .5-2.3-1.7-1.6 2.4-.3 1.2-2 1 2 2.5.5-1.9 1.5"/>
|
||||
<path fill="#ffffef" fill-rule="evenodd" d="m219.3 287.6-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2"/>
|
||||
<path fill="#ffffef" fill-rule="evenodd" d="m219.3 287.6-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m42.3 3-2.6-1.4-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .5-2.3 2.1m-4.8 17-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m87.4-22.2-2.6-1.6-2.8 1.4.6-3-2-2.3 3-.3 1.4-2.7 1.2 2.8 3 .5-2.2 2.1m-25.1 3-2.7-1.5-2.7 1.4.6-3-2-2.3 3-.3 1.4-2.8 1.2 2.9 3 .5-2.2 2.1m-68.8-5.8-1.7-1-1.7.8.4-1.9-1.3-1.4 1.9-.2.8-1.7.8 1.8 1.9.3-1.4 1.3m167.8 45.4-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m-20.8 6-2.2-1.4-2.3 1.2.5-2.6-1.7-1.8 2.5-.3 1.2-2.3 1 2.4 2.5.4-1.9 1.8m10.4 2.3-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.3-.3 1.1-2 1 2 2.3.5-1.7 1.6m29.1-22.8-2-1-2 1 .5-2.3-1.6-1.7 2.3-.3 1-2 1 2.1 2.1.4-1.6 1.6m-38.8 41.8-2.5-1.4-2.7 1.2.6-2.8-2-2 3-.3 1.3-2.5 1.2 2.6 3 .5-2.3 1.9m.6 14.2-2.4-1.4-2.4 1.3.6-2.8-1.9-2 2.7-.4 1.2-2.5 1.1 2.6 2.7.5-2 2m-19-23.1-1.9-1.2-2 1 .4-2.2-1.5-1.7 2.2-.2 1-2 1 2 2.2.4-1.6 1.6m-17.8 2.3-2-1.2-2 1 .5-2.2-1.6-1.7 2.3-.2 1-2 1 2 2.1.4-1.6 1.6m-30.4-24.6-2-1.1-2 1 .5-2.3-1.6-1.6 2.2-.3 1-2 1 2 2.2.5-1.6 1.5m3.7 57-1.6-.9-1.8.9.4-2-1.3-1.4 1.9-.2.9-1.7.8 1.8 1.9.3-1.4 1.3m-46.2-86.6-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.2-4 1.9 4.2 4.4.8-3.3 3.1"/>
|
||||
<path fill="#fff" fill-rule="evenodd" d="M444.4 285.8a125 125 0 0 0 5.8-19.8c-67.8-59.5-143.3-90-238.7-83.7a125 125 0 0 0-8.5 20.9c113-10.8 196 39.2 241.4 82.6"/>
|
||||
<path fill="#309e3a" d="m414 252.4 2.3 1.3a3 3 0 0 0-.3 2.2 3 3 0 0 0 1.4 1.7q1 .8 2 .7.9 0 1.3-.7l.2-.9-.5-1q-.3-.5-1.5-1.8a8 8 0 0 1-1.8-3 4 4 0 0 1 2-4.4 4 4 0 0 1 2.3-.2 7 7 0 0 1 2.6 1.2q2.1 1.5 2.6 3.2a4 4 0 0 1-.6 3.3l-2.4-1.5q.5-1 .2-1.7-.2-.8-1.2-1.4a3 3 0 0 0-1.8-.7 1 1 0 0 0-.9.5q-.3.4-.1 1 .2.8 1.6 2.2t2 2.5a4 4 0 0 1-.3 4.2 4 4 0 0 1-1.9 1.5 4 4 0 0 1-2.4.3q-1.3-.3-2.8-1.3-2.2-1.5-2.7-3.3a5 5 0 0 1 .6-4zm-11.6-7.6 2.5 1.3a3 3 0 0 0-.2 2.2 3 3 0 0 0 1.4 1.6q1.1.8 2 .6.9 0 1.3-.8l.2-.8q0-.5-.5-1l-1.6-1.8q-1.7-1.6-2-2.8a4 4 0 0 1 .4-3.1 4 4 0 0 1 1.6-1.4 4 4 0 0 1 2.2-.3 7 7 0 0 1 2.6 1q2.3 1.5 2.7 3.1a4 4 0 0 1-.4 3.4l-2.5-1.4q.5-1 .2-1.7-.4-1-1.3-1.4a3 3 0 0 0-1.9-.6 1 1 0 0 0-.8.5q-.3.4-.1 1 .3.8 1.7 2.2 1.5 1.5 2 2.4a4 4 0 0 1 0 4.2 4 4 0 0 1-1.8 1.6 4 4 0 0 1-2.4.3 8 8 0 0 1-2.9-1.1 6 6 0 0 1-2.8-3.2 5 5 0 0 1 .4-4m-14.2-3.8 7.3-12 8.8 5.5-1.2 2-6.4-4-1.6 2.7 6 3.7-1.3 2-6-3.7-2 3.3 6.7 4-1.2 2zm-20.7-17 1.1-2 5.4 2.7-2.5 5q-1.2.3-3 .2a9 9 0 0 1-3.3-1 8 8 0 0 1-3-2.6 6 6 0 0 1-1-3.5 9 9 0 0 1 1-3.7 8 8 0 0 1 2.6-3 6 6 0 0 1 3.6-1.1q1.4 0 3.2 1 2.4 1.1 3.1 2.8a5 5 0 0 1 .3 3.5l-2.7-.8a3 3 0 0 0-.2-2q-.4-.9-1.6-1.4a4 4 0 0 0-3.1-.3q-1.5.5-2.6 2.6t-.7 3.8a4 4 0 0 0 2 2.4q.8.5 1.7.5h1.8l.8-1.6zm-90.2-22.3 2-14 4.2.7 1.1 9.8 3.9-9 4.2.6-2 13.8-2.7-.4 1.7-10.9-4.4 10.5-2.7-.4-1.1-11.3-1.6 11zm-14.1-1.7 1.3-14 10.3 1-.2 2.4-7.5-.7-.3 3 7 .7-.3 2.4-7-.7-.3 3.8 7.8.7-.2 2.4z"/>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="M216.5 191.3q0-2.2.7-3.6a7 7 0 0 1 1.4-1.9 5 5 0 0 1 1.8-1.2q1.5-.5 3-.5 3.1.1 5 2a7 7 0 0 1 1.6 5.5q0 3.3-2 5.3a7 7 0 0 1-5 1.7 7 7 0 0 1-4.8-2 7 7 0 0 1-1.7-5.3"/>
|
||||
<path fill="#f7ffff" d="M219.4 191.3q0 2.3 1 3.6t2.8 1.3a4 4 0 0 0 2.8-1.1q1-1.2 1.1-3.7.1-2.4-1-3.6a4 4 0 0 0-2.7-1.3 4 4 0 0 0-2.8 1.2q-1.1 1.2-1.2 3.6"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="m233 198.5.2-14h6q2.2 0 3.2.5 1 .3 1.6 1.3c.6 1 .6 1.4.6 2.3a4 4 0 0 1-1 2.6 5 5 0 0 1-2.7 1.2l1.5 1.2q.6.6 1.5 2.3l1.7 2.8h-3.4l-2-3.2-1.4-2-.9-.6-1.4-.2h-.6v5.8z"/>
|
||||
<path fill="#fff" d="M236 190.5h2q2.1 0 2.6-.2.5-.1.8-.5.4-.6.3-1 0-.9-.4-1.2-.3-.4-1-.6h-2l-2.3-.1z"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="m249 185.2 5.2.3q1.7 0 2.6.3a5 5 0 0 1 2 1.4 6 6 0 0 1 1.2 2.4q.4 1.4.3 3.3a9 9 0 0 1-.5 3q-.6 1.5-1.7 2.4a5 5 0 0 1-2 1q-1 .3-2.5.2l-5.3-.3z"/>
|
||||
<path fill="#fff" d="m251.7 187.7-.5 9.3h3.8q.8 0 1.2-.5.5-.4.8-1.3t.4-2.6l-.1-2.5a3 3 0 0 0-.8-1.4l-1.2-.7-2.3-.3z"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="m317.6 210.2 3.3-13.6 4.4 1 3.2 1q1.1.6 1.6 1.9t.2 2.8q-.3 1.2-1 2a4 4 0 0 1-3 1.4q-1 0-3-.5l-1.7-.5-1.2 5.2z"/>
|
||||
<path fill="#fff" d="m323 199.6-.8 3.8 1.5.4q1.6.4 2.2.3a2 2 0 0 0 1.6-1.5q0-.7-.2-1.3a2 2 0 0 0-1-.9l-1.9-.5-1.3-.3z"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="m330.6 214.1 4.7-13.2 5.5 2q2.2.8 3 1.4.8.7 1 1.8c.2 1.1.2 1.5 0 2.3q-.6 1.5-1.8 2.2-1.2.6-3 .3.6.7 1 1.6l.8 2.7.6 3.1-3.1-1.1-1-3.6-.7-2.4-.6-.8q-.3-.4-1.3-.7l-.5-.2-2 5.6z"/>
|
||||
<path fill="#fff" d="m336 207.4 1.9.7q2 .7 2.5.7t.9-.3q.5-.3.6-.9.3-.6 0-1.2a2 2 0 0 0-.8-.9l-2-.7-2-.7-1.2 3.3z"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="M347 213.6a9 9 0 0 1 1.7-3.2 7 7 0 0 1 1.8-1.5l2-.7q1.5-.1 3.1.4a7 7 0 0 1 4.2 3.3q1.2 2.4.2 5.7a7 7 0 0 1-3.4 4.5q-2.3 1.3-5.2.4a7 7 0 0 1-4.2-3.3 7 7 0 0 1-.2-5.6"/>
|
||||
<path fill="#fff" d="M349.8 214.4q-.7 2.3 0 3.8c.7 1.5 1.2 1.6 2.3 2q1.5.5 3-.4 1.4-.8 2.1-3.2.8-2.2 0-3.7a4 4 0 0 0-2.2-2 4 4 0 0 0-3 .3q-1.5.8-2.2 3.2"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="m374.3 233.1 6.4-12.4 5.3 2.7a10 10 0 0 1 2.7 1.9q.8.7.8 1.9c0 1.2 0 1.5-.4 2.2a4 4 0 0 1-2 2q-1.5.4-3.1-.2.6 1 .8 1.7.3.9.4 2.8l.2 3.2-3-1.5-.4-3.7-.3-2.5-.5-1-1.2-.7-.5-.3-2.7 5.2z"/>
|
||||
<path fill="#fff" d="m380.5 227.2 1.9 1q1.8 1 2.3 1t1-.2q.4-.2.7-.8t.2-1.2l-.7-1-1.8-1-2-1z"/>
|
||||
</g>
|
||||
<g stroke-opacity=".5">
|
||||
<path fill="#309e3a" d="M426.1 258.7a9 9 0 0 1 2.5-2.6 7 7 0 0 1 2.2-.9 6 6 0 0 1 2.2 0q1.5.3 2.8 1.2a7 7 0 0 1 3 4.4q.4 2.6-1.4 5.5a7 7 0 0 1-4.5 3.3 7 7 0 0 1-5.2-1.1 7 7 0 0 1-3-4.4q-.4-2.7 1.4-5.4"/>
|
||||
<path fill="#fff" d="M428.6 260.3q-1.4 2-1.1 3.6a4 4 0 0 0 1.6 2.5q1.5 1 3 .6t2.9-2.4q1.4-2.1 1.1-3.6t-1.6-2.6c-1.4-1.1-2-.8-3-.5q-1.5.3-3 2.4z"/>
|
||||
</g>
|
||||
<path fill="#309e3a" d="m301.8 204.5 2.3-9.8 7.2 1.7-.3 1.6-5.3-1.2-.5 2.2 4.9 1.1-.4 1.7-4.9-1.2-.6 2.7 5.5 1.3-.4 1.6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.0 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ca" viewBox="0 0 640 480">
|
||||
<path fill="#fff" d="M150.1 0h339.7v480H150z"/>
|
||||
<path fill="#d52b1e" d="M-19.7 0h169.8v480H-19.7zm509.5 0h169.8v480H489.9zM201 232l-13.3 4.4 61.4 54c4.7 13.7-1.6 17.8-5.6 25l66.6-8.4-1.6 67 13.9-.3-3.1-66.6 66.7 8c-4.1-8.7-7.8-13.3-4-27.2l61.3-51-10.7-4c-8.8-6.8 3.8-32.6 5.6-48.9 0 0-35.7 12.3-38 5.8l-9.2-17.5-32.6 35.8c-3.5.9-5-.5-5.9-3.5l15-74.8-23.8 13.4q-3.2 1.3-5.2-2.2l-23-46-23.6 47.8q-2.8 2.5-5 .7L264 130.8l13.7 74.1c-1.1 3-3.7 3.8-6.7 2.2l-31.2-35.3c-4 6.5-6.8 17.1-12.2 19.5s-23.5-4.5-35.6-7c4.2 14.8 17 39.6 9 47.7"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 625 B |
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ch" viewBox="0 0 640 480">
|
||||
<g fill-rule="evenodd" stroke-width="1pt">
|
||||
<path fill="red" d="M0 0h640v480H0z"/>
|
||||
<g fill="#fff">
|
||||
<path d="M170 195h300v90H170z"/>
|
||||
<path d="M275 90h90v300h-90z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 290 B |
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cn" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<path id="cn-a" fill="#ff0" d="M-.6.8 0-1 .6.8-1-.3h2z"/>
|
||||
</defs>
|
||||
<path fill="#ee1c25" d="M0 0h640v480H0z"/>
|
||||
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(71.9991 0 0 72 120 120)"/>
|
||||
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.3 48)"/>
|
||||
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 288 95.8)"/>
|
||||
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(6.5991 -23.0749 23.0746 6.59919 288 168)"/>
|
||||
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(14.9991 -18.73557 18.73533 14.99929 240 216)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 813 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cz" viewBox="0 0 640 480">
|
||||
<path fill="#fff" d="M0 0h640v240H0z"/>
|
||||
<path fill="#d7141a" d="M0 240h640v240H0z"/>
|
||||
<path fill="#11457e" d="M360 240 0 0v480z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 225 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dk" viewBox="0 0 640 480">
|
||||
<path fill="#c8102e" d="M0 0h640.1v480H0z"/>
|
||||
<path fill="#fff" d="M205.7 0h68.6v480h-68.6z"/>
|
||||
<path fill="#fff" d="M0 205.7h640.1v68.6H0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 236 B |
@@ -0,0 +1,28 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-eu" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<g id="eu-d">
|
||||
<g id="eu-b">
|
||||
<path id="eu-a" d="m0-1-.3 1 .5.1z"/>
|
||||
<use xlink:href="#eu-a" transform="scale(-1 1)"/>
|
||||
</g>
|
||||
<g id="eu-c">
|
||||
<use xlink:href="#eu-b" transform="rotate(72)"/>
|
||||
<use xlink:href="#eu-b" transform="rotate(144)"/>
|
||||
</g>
|
||||
<use xlink:href="#eu-c" transform="scale(-1 1)"/>
|
||||
</g>
|
||||
</defs>
|
||||
<path fill="#039" d="M0 0h640v480H0z"/>
|
||||
<g fill="#fc0" transform="translate(320 242.3)scale(23.7037)">
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" y="-6"/>
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" y="6"/>
|
||||
<g id="eu-e">
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" x="-6"/>
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(-144 -2.3 -2.1)"/>
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(144 -2.1 -2.3)"/>
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(72 -4.7 -2)"/>
|
||||
<use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(72 -5 .5)"/>
|
||||
</g>
|
||||
<use xlink:href="#eu-e" width="100%" height="100%" transform="scale(-1 1)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb" viewBox="0 0 640 480">
|
||||
<path fill="#012169" d="M0 0h640v480H0z"/>
|
||||
<path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
|
||||
<path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
|
||||
<path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
|
||||
<path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-hk" viewBox="0 0 640 480">
|
||||
<path fill="#EC1B2E" d="M0 0h640v480H0"/>
|
||||
<path id="hk-a" fill="#fff" d="M346.3 103.1C267 98 230.6 201.9 305.6 240.3c-26-22.4-20.6-55.3-10.1-72.4l1.9 1.1c-13.8 23.5-11.2 52.7 11.1 71-12.7-12.3-9.5-39 12.1-48.9s23.6-39.3 16.4-49.1q-14.7-25.6 9.3-38.9M307.9 164l-4.7 7.4-1.8-8.6-8.6-2.3 7.8-4.3-.6-8.9 6.5 6.1 8.3-3.3-3.7 8.1 5.6 6.8z"/>
|
||||
<use xlink:href="#hk-a" transform="rotate(72 312.5 243.5)"/>
|
||||
<use xlink:href="#hk-a" transform="rotate(144 312.5 243.5)"/>
|
||||
<use xlink:href="#hk-a" transform="rotate(216 312.5 243.5)"/>
|
||||
<use xlink:href="#hk-a" transform="rotate(288 312.5 243.5)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 727 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-hu" viewBox="0 0 640 480">
|
||||
<g fill-rule="evenodd">
|
||||
<path fill="#fff" d="M640 480H0V0h640z"/>
|
||||
<path fill="#388d00" d="M640 480H0V320h640z"/>
|
||||
<path fill="#d43516" d="M640 160.1H0V.1h640z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 271 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-id" viewBox="0 0 640 480">
|
||||
<path fill="#e70011" d="M0 0h640v240H0Z"/>
|
||||
<path fill="#fff" d="M0 240h640v240H0Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 178 B |
@@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-il" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<clipPath id="il-a">
|
||||
<path fill-opacity=".7" d="M-87.6 0H595v512H-87.6z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" clip-path="url(#il-a)" transform="translate(82.1)scale(.94)">
|
||||
<path fill="#fff" d="M619.4 512H-112V0h731.4z"/>
|
||||
<path fill="#0038b8" d="M619.4 115.2H-112V48h731.4zm0 350.5H-112v-67.2h731.4zm-483-275 110.1 191.6L359 191.6z"/>
|
||||
<path fill="#fff" d="m225.8 317.8 20.9 35.5 21.4-35.3z"/>
|
||||
<path fill="#0038b8" d="M136 320.6 246.2 129l112.4 190.8z"/>
|
||||
<path fill="#fff" d="m225.8 191.6 20.9-35.5 21.4 35.4zM182 271.1l-21.7 36 41-.1-19.3-36zm-21.3-66.5 41.2.3-19.8 36.3zm151.2 67 20.9 35.5-41.7-.5zm20.5-67-41.2.3 19.8 36.3zm-114.3 0L189.7 256l28.8 50.3 52.8 1.2 32-51.5-29.6-52z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 834 B |
@@ -0,0 +1,25 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-in" viewBox="0 0 640 480">
|
||||
<path fill="#f93" d="M0 0h640v160H0z"/>
|
||||
<path fill="#fff" d="M0 160h640v160H0z"/>
|
||||
<path fill="#128807" d="M0 320h640v160H0z"/>
|
||||
<g transform="matrix(3.2 0 0 3.2 320 240)">
|
||||
<circle r="20" fill="#008"/>
|
||||
<circle r="17.5" fill="#fff"/>
|
||||
<circle r="3.5" fill="#008"/>
|
||||
<g id="in-d">
|
||||
<g id="in-c">
|
||||
<g id="in-b">
|
||||
<g id="in-a" fill="#008">
|
||||
<circle r=".9" transform="rotate(7.5 -8.8 133.5)"/>
|
||||
<path d="M0 17.5.6 7 0 2l-.6 5z"/>
|
||||
</g>
|
||||
<use xlink:href="#in-a" width="100%" height="100%" transform="rotate(15)"/>
|
||||
</g>
|
||||
<use xlink:href="#in-b" width="100%" height="100%" transform="rotate(30)"/>
|
||||
</g>
|
||||
<use xlink:href="#in-c" width="100%" height="100%" transform="rotate(60)"/>
|
||||
</g>
|
||||
<use xlink:href="#in-d" width="100%" height="100%" transform="rotate(120)"/>
|
||||
<use xlink:href="#in-d" width="100%" height="100%" transform="rotate(-120)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-is" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<clipPath id="is-a">
|
||||
<path fill-opacity=".7" d="M0 0h640v480H0z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" stroke-width="0" clip-path="url(#is-a)">
|
||||
<path fill="#003897" d="M0 0h666.7v480H0z"/>
|
||||
<path fill="#fff" d="M0 186.7h186.7V0h106.6v186.7h373.4v106.6H293.3V480H186.7V293.3H0z"/>
|
||||
<path fill="#d72828" d="M0 213.3h213.3V0h53.4v213.3h400v53.4h-400V480h-53.4V266.7H0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 509 B |
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-jp" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<clipPath id="jp-a">
|
||||
<path fill-opacity=".7" d="M-88 32h640v480H-88z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#jp-a)" transform="translate(88 -32)">
|
||||
<path fill="#fff" d="M-128 32h720v480h-720z"/>
|
||||
<circle cx="523.1" cy="344.1" r="194.9" fill="#bc002d" transform="translate(-168.4 8.6)scale(.76554)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 470 B |
@@ -0,0 +1,24 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-kr" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<clipPath id="kr-a">
|
||||
<path fill-opacity=".7" d="M-95.8-.4h682.7v512H-95.8z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" clip-path="url(#kr-a)" transform="translate(89.8 .4)scale(.9375)">
|
||||
<path fill="#fff" d="M-95.8-.4H587v512H-95.8Z"/>
|
||||
<g transform="rotate(-56.3 361.6 -101.3)scale(10.66667)">
|
||||
<g id="kr-c">
|
||||
<path id="kr-b" fill="#000001" d="M-6-26H6v2H-6Zm0 3H6v2H-6Zm0 3H6v2H-6Z"/>
|
||||
<use xlink:href="#kr-b" width="100%" height="100%" y="44"/>
|
||||
</g>
|
||||
<path stroke="#fff" d="M0 17v10"/>
|
||||
<path fill="#cd2e3a" d="M0-12a12 12 0 0 1 0 24Z"/>
|
||||
<path fill="#0047a0" d="M0-12a12 12 0 0 0 0 24A6 6 0 0 0 0 0Z"/>
|
||||
<circle cy="-6" r="6" fill="#cd2e3a"/>
|
||||
</g>
|
||||
<g transform="rotate(-123.7 191.2 62.2)scale(10.66667)">
|
||||
<use xlink:href="#kr-c" width="100%" height="100%"/>
|
||||
<path stroke="#fff" d="M0-23.5v3M0 17v3.5m0 3v3"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,382 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-mx" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<radialGradient xlink:href="#mx-a" id="mx-b" cx="842.3" cy="103.7" r="25.9" gradientTransform="matrix(.14152 .03595 -.03453 .14198 213.1 162.4)" gradientUnits="userSpaceOnUse"/>
|
||||
<radialGradient xlink:href="#mx-a" id="mx-c" cx="651.5" cy="550.5" r="25.9" gradientTransform="matrix(-.13441 -.05384 .04964 -.12489 397.9 -24.3)" gradientUnits="userSpaceOnUse"/>
|
||||
<radialGradient xlink:href="#mx-a" id="mx-d" cx="380.8" cy="740.4" r="25.9" gradientTransform="matrix(.07536 .00282 -.00343 .14804 412.4 -203.6)" gradientUnits="userSpaceOnUse"/>
|
||||
<linearGradient id="mx-a">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#f15770"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path fill="#ce1126" d="M426.7 0H640v480H426.7z"/>
|
||||
<path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
|
||||
<path fill="#006847" d="M0 0h213.3v480H0z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m355.8 289.4.2 4.5 1.7-1.1-1.3-3.7z"/>
|
||||
<circle cx="355.6" cy="288.2" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m361.1 296.4-3.2-3.1-1.5 1.2 4.5 2.6z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M360.9 298.2q-.7-1 .3-2 1.2-.7 2 .2.7 1-.3 2-1.2.7-2-.2z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m386.3 249.6 3.4 3.3.4-1.7-3.1-2z"/>
|
||||
<circle cx="385.9" cy="248.7" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M395.2 251.6 390 253l.5-1.7 4.4-.4z"/>
|
||||
<circle cx="396" cy="250.8" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m378 276.8-3.2-4.8.5-.3 3.5 4.2z"/>
|
||||
<circle cx="374.5" cy="270.8" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m378.1 277 4 .7.1-.5-3.3-1.4z"/>
|
||||
<circle cx="383.3" cy="277.7" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M284.6 288q-.1 1.2-1 1.2-1.2 0-1-1.2c.2-1.2.5-1.3 1-1.3s1 .7 1 1.4z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m284.6 290.3 1 5-1.3-.5-.4-4.3z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M285.7 288.6c.6.7-.4 1.9-1.4 2.2s-2.4-.2-2.4-1.2 1.6-.5 2-.6c.6-.2 1.2-1.2 1.8-.4z"/>
|
||||
<ellipse cx="277" cy="296.3" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.6" ry="1.1"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m279.6 296 4.8-.2-.8-1-4 .4z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M280 295.4c.5 1.3.5 3-.9 2.7-1.4-.1-1-1.4-1.2-1.8-.2-.9-1-1.7-.2-2.5s2 .4 2.3 1.6z"/>
|
||||
<ellipse cx="264.4" cy="269.2" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx=".9" ry="1.4"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m264.4 272.4.1 4.6-1.2-1v-3.8z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M266.2 271c.3 1-1.3 1.6-2.4 1.4s-1.9-.7-1.7-1.7 1.5-.8 2-.5 1.8-.8 2.1.7z"/>
|
||||
<ellipse cx="256.2" cy="276.5" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.6" ry=".7"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m259.1 276.5 3.6-.3 1.6 1.2-5.3-.2z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M257.8 274.5c1 0 1.6 1.1 1.5 2.3q-.4 1.8-2 2c-.9-.2-.8-1-.8-1.2 0-.3.5-.7.6-1s-.3-1.3-.1-1.6q0-.5.8-.5zm-3-28.3c-.4.6-1.2 1.1-1.6.9s-.2-1.2.2-1.8q.7-1 1.4-.8.6.6 0 1.7z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m250.7 253.5 2-4.8-.2-.3-2.4 3.4z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M252.4 248.7q-1.4-1-1-2.3c.4-.7 1.2-.2 1.2-.2l.8.7c.4.2 1 0 1.4.6.5.6.2 1.2-.1 1.4s-1.5.4-2.3-.2zm-8.5-.6q1.1.7.9 1.5-.5.7-1.8 0-1-.6-.8-1.5.5-.7 1.7 0z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m246 250.2 3.8 2.2-.1 1.8-4.1-3.5z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M246 250.6q-1.2 1.3-2.3.7c-.7-.5-.1-1.2-.1-1.2l.8-.7c.2-.4 0-1 .7-1.4s1.2 0 1.3.3c.1.4.3 1.5-.4 2.3z"/>
|
||||
<path fill="#aa8c30" d="m356.6 289.8-.4.4-.3 1v-1.5l.5-.3zm.2-.9s-.3.5-1.1.5-1.2-.4-1.3-.8q-.2-.5.2-1.2c.2-.5-.4.4-.4.4v1l.6.6.5.2h.4l.7-.2.4-.3zm4.2 7.3s-.4.2-.7.1c-1.9-.6-3.5-1.8-3.5-1.8l3.8 2.4zm2.4 1.1s0 .7-.8 1q-1 .4-1.5-.1c-.5-.5-.4-.6-.4-1.2l-.1.6.4.8.8.4.5-.1.5-.2.4-.5.3-.5zm24.3-47.6-.1.4v.7l-.9-1 .4-.5zm-.5-1.2c0 .7-.9 1.6-1.6 1.3q-1.2-.5-.9-1.8l-.2.3.1 1.1.7.6h.9l.6-.3.4-.7zm10 1.8s-.1-.4 0 0-.6 1.7-1.4 1.6q-1-.3-1-1.4c0-.6-.1.2-.1.2v.8l.5.4.6.4.6-.2.7-.3.2-.6v-.9z"/>
|
||||
<path fill="#aa8c30" d="M393.8 251s0 .4-.4.7l-1.3.7 2.8-.8-.2-.7zm-17.1 22.5-.1.5v.8l-1.6-2.5.5-.3zm-.9-2.4c-.2.7-1.4 1-2 .8-.5-.4-1-1.6-.3-2l-.4.2-.1.7.2.7.6.7.5.1.8-.2.6-.4s.4-1.3.1-.6m5.6 5.7s0 .3-.5.3h-1.6l2.6.6.2-.6z"/>
|
||||
<path fill="#aa8c30" d="M384.6 277.5c.3.8-.5 1.7-1.5 1.4s-1.3-1.3-1-1.8l-.2.6.2.8.6.6h1.3l.6-.7.2-.7-.1-.2zm-99 11.1c.3.3-.1 1.5-1.2 2q-1.7.4-2-.4-.4-.7-.3-.8l-.2.2.2.6.5.5 1 .2.8-.1.7-.5.4-.3.3-.5v-.6z"/>
|
||||
<path fill="#aa8c30" d="m284.6 291.1-.3.4-.3.8v-1.4l.5-.3zm-3.8 4s0 .3.2.5l1 .3h-1.8l-.2-.7h.8zm-.6 1.2v.2l-.1.5q-.1.9-1 .9a1 1 0 0 1-1-1.1q-.1-.6-.2-.6v.6l.4 1 .7.3h.5l.5-.2.2-.6.1-.5zm-4.7-.1s.2.8 1.2.8 1.2-.2 1.2-.2v.3l-.2.2H276l-.3-.3-.3-.5v-.3zm-9.4-25.4v.4c-.1.3-.7 1-1.8 1q-1.4 0-1.8-.7t-.4-.8v.5l.4.7 1.1.5h1l1-.3.5-.5.1-.6zm-1.7 2.3s-.4 0-.6.2l-.4.4v-1.3h1zm-4.7 3.4.5.3c.5.3 3.1.5 3.1.5h-4.1l.1-.8zm-.5 0-.2.6c-.2.5-.7 1.6-1.6 1.4-.9-.1-.7-.8-.7-.8v-.4l-.2.7.2.4.4.2.7.1.4-.2.6-.5.2-.5.2-.6zm-2.2.2s0 .2-.7.2-1.7-.3-1.7-.3l.4.4.5.2h1.3zm-2-29s0 .5-.3.8c-.4.3-1.3.5-1.8.2s-1.5-1.3-1.5-1.3l.4.8.7.6 1 .3 1-.2.4-.4.2-.3z"/>
|
||||
<path fill="#aa8c30" d="M252 249.1v.6l-.2 1.1.9-2-.4-.2zm-5.4 1.5.2.5c.2.5 2.3 2.6 2.3 2.6l-3.3-2.9.4-.5zm-1 .3s-.5.3-1 .3c-.3 0-1 0-1-.4q0-.7.1-.7l-.3.6.1.4.5.3h.7l.6-.3.2-.2zm-1.5-1.4h-.5c-.7 0-1.4-.8-1.4-.8l.5.8 1 .5z"/>
|
||||
<path fill="#9ca168" d="M399.9 240.2c-.3 3.8-4.1 5.8-6.1 7.2s-3 3.2-3 3.2l-.6 2.2-.3 1.5-.1.5q.2.6.3 2l-.1 4.3 2.7-1.9 1.9-.7.6-.1s-2.2 2.1-3 4.4-2.4 7.2-5.3 8.8c-3 1.6-4.8 1-5.7 1.8s-1 1-1 1l-1.3 1.8-1 1.2-.9.7-.6.4-.2 1.7-.7 2.4s.6-.4 1.3-.5h1.3s-.5.6-.7 1.3c-.2.6.1 4.6-3.6 7-3.8 2.3-13.4 2-13.4 2l-1.8.7-1.7 1.3-1.6 1.7v.4s-1.3 1.5-2.1 2l-2.8 1.9 2.2.1 3.5 1.5s-2.2 0-3.6.5c-1.5.6-8.2 4.4-11.4 4.3s-8-4.9-8-4.9l-2-1.4-3.5-.7-4.3-.2v-.6l.1-.7s1.5-.2 3.8.1c2 .2 2.7 1 4.4 1.1q2.6.2 3.5-.3c.7-.3 5.9-4.7 5.9-4.7l5.8-2 2.3.3 1 .2.9.3-1 1-1.4 1.1.7.6 3.7-.6 1.2.3.3.2q0-.5.6-1.3c.4-.6 2.5-2.3 3.4-2.9l1.4-1c.3-.3 1.5-3.3 1.5-3.3l.1-1.6 4.1-4 2.8-2.9 1.2-3.3-.2-.7s1 1 .9 3c-.2 2.2-.7 2.9-.7 2.9s2.8-2 4.3-2.6q1.8-.6 2.4-.5c.4-.2 1.5-.9 2.1-1.8.8-1.2 1-1.5 1-2l.2-2.8-.3-7 2.4-5.4 3.5-3.1.7-.4-.4 1.2v1.5s1.8-2.5 2.7-2.9l.5-.3.8-2 .3-3v-3l-.5-2.3-1.7-4.3v-5.8l-1.2-1.6s1.1 0 2.5 2a14 14 0 0 1 1.9 5l3.3-10.3s.9 1.2 1.5 3.3l.8 3.3 1.4-2.8.1 1c.2 1 2.3 2.1 2 6m-67.3 65s-.7-1.6-3.9-3.2c-3.1-1.5-5.5-1.8-5.5-1.8v1.1l5 2.2 2.4 2z"/>
|
||||
<path fill="#717732" d="M355.4 295.6c.3-.4 3-2.8 4.4-3.5s3.2-.8 3.2-.8c1.9-.4 2.2-.1 6.6-2.5s5.3-5.2 6.2-5.9c.8-.7 2.3-.8 2.3-.8l-3.4 3.9a29 29 0 0 1-5.8 4.5 18 18 0 0 1-7.6 1.8 8 8 0 0 0-4 2c-1.3 1-2 2.2-2 2.2s-.2-.5 0-.9zm12-12.7c-4 3.7-5.3 7.2-5.3 7.2l5.4-4.9c1.9-1.8 4.5-2.6 5.6-3.7 1.2-1.1 1.3-2 2-2.7l1.3-1s-1.8-1.4-9 5.1m-8.5 8.6s1.7-.8 2.4-2.3c.5-1.2.2-1.5 1-2.8 0 0 4.2-4 5.7-5.8 2.6-3.1 1.4-5.7 1.4-5.7s.3 1.3-.8 2.7c-1 1.4-6.5 5-7.2 7.2-.6 2.2-.3 2.3-.6 3.4-.6 2.6-1.9 3.3-1.9 3.3m-2.8 10.5s-2.1-1.4-4.5-1.3c-4.9.4-9 3.4-12.2 3.4-3.1.1-4.4-1.5-6.9-3.2-2.6-1.8-9.2-1.5-9.2-1.5v.3s4.4 0 6.4.6c3.6 1 5.6 4.8 9.7 4.6 5.5-.3 9.9-3.6 12-3.6 3.8 0 4.7.7 4.7.7m-24-2.4s3.7.6 6.6-1.5c3-2.1 6.4-5 8.3-5.2 2 0 4 .4 4 .4s-2.5-1-4.4-1q-3-.2-5.8 1.3c-1.8 1.1-2.7 3-4.6 4.3a13 13 0 0 1-4.1 1.7m-.7 5q-.9.1-1.3.3c-.2 0-1.3-1.2-3-2-1.6-1-4-1.4-4-1.4s-.3 0 .3.2l3.8 1.5a9 9 0 0 1 2.6 2.1c.1.3.6.9 1.5.8q1.4-.1 1.2-1-.2-.5-1.1-.5m2.6-3.6s1.5.8 4 .8c5.2-.2 8.6-3.8 12-5 3.4-1.4 5.2-.3 5.2-.3s.1-.2 0-.2a7 7 0 0 0-3.9-1.2c-5.7 0-11.2 3.7-13.5 4.7q-3.6 1.3-3.8 1.2m56-39.9c-1.8 1.9-4.5 7.7-5.6 9.3-1.2 1.6-2.7 2-3.3 2.7-.6.6-2.7 3.5-3.2 4.1-.5.7-.6.5-1 .8q-.6.4.1.2c.6-.1.8-.5 1.6-1.5 1-1 .9-1.4 2.3-2.7 1.4-1.2 3.9-2.6 5.1-4.2 1.3-1.5 3.8-7.5 5.2-9s4-2.4 4-2.4-2-.6-5.3 2.7zm-9 11.1s-.1-1 1.2-2.6 1.7-1.3 2.8-3.6q1.3-3.4 2.3-6.9c.9-2.4 2.3-4.8 2.3-4.8s-1.3.2-2.7 2a35 35 0 0 0-4.8 8.7c-1.1 3.4-1.1 7.2-1.1 7.2m-1.7 2.2s.5-.2.5-3.2c.1-2.9-.1-7 .7-9 .9-2 5.4-7 5.4-7s-1.9.5-4.5 2.5-3.7 4.7-3.6 6.7 1.3 4.2 1.4 6.1l.1 4zm10.5-20.1s1.1-4 1.6-5 .5-1.5 2.7-4c1.3-1.5 2.6-2.4 3.1-4.4s.6-7.7.6-7.7-.6.5-1.1 1.5-.1 4.7-1 6.4-2.7 5.6-3.7 6.5c0 0-.2-2.9.2-5.7.3-3 1.3-3.8 1.7-5.7s.2-6.7.2-6.7-1.5 1.5-2.3 3.4-1.2 5-1.2 7.5.5 4.5.6 5.9.2 2-.4 3.6l-.6 2-.7 2.6zm-3.5-21.6s1.4 1.7 1.2 3.6c-.3 2-1 4.5-.2 6.5.7 2 1.9 2.2 2.2 3.4s.3 3.4.3 3.4.6-4.3.2-5.5c-.5-1.1-.7-.6-1.3-1.8s0-4.7-.4-6.7-2-2.9-2-2.9"/>
|
||||
<path fill="#9ca168" d="M306.7 304.8s.4-1 3.1-2.4a34 34 0 0 1 7.3-3c.3.3-.3 1.8-.3 1.8l-2.6.8-2.1 1.2-2.5 1.6z"/>
|
||||
<path fill="#9ca168" d="M313.6 297.7c-3.4.1-5.3 1-6 1-.2.1-.7.5-1.2.3a5 5 0 0 1-1.5-1.5l-.7-.7-.2 2.5-5-4.4-.6 3-.7 1.3-5-4.8.2 3.7-1.4.1-3.6-2.5-1 .4 1.2 2.2-4.6.3-1 .8-1 1v.4h1.9c.4-.2.6-.7.7-.5.2.2.3 1.2.9 1.1s2.7-1.7 4.2-1c1.7.8-2.2 2-1.8 3.1s3.2.7 4 .3c.6-.3 2.7-3 3.6-2 1.2 1.4-2.5 2.5-1.8 3.9s2.7 1 3.7.4 3.4-4.1 3.9-3.4c.9 1.4-2 2.7-1.3 3.7.8 1 2.3 0 3.4-.8s1.5-2.5 3-3.3c1.4-.8 1.3-.5 1.7-.5s1.5-1.1 1.5-1.1l3.5-1.5 1.6.2.9.4 1.7.2.2-1.4s-2-1-3.3-1zm-27.4 0 .7-1.3-.4-.6s-1.2-.7-2.3-1.8a7 7 0 0 0-2-1.6L280 291l-.8-2.8-.5-.9-1.3.6-1.7-6.1-.3-1.1h-.7l-1.5 3.6-1.5-2.3-.4-5-1 1-1.3 1.4-2.3-4.6s-.1-.1-.3.3c0 .3-.3 1.8-.1 2.6a26 26 0 0 1-6-5.2l-1-2.5 1-2 .5-2.6-2.2.9-.4-5.7-.3-1.8-2.7 3.8-1-1.7v-3.6l-.7-.2-1 2s-1.1-2-1.6-2.5c.1-.8.2-2.9-.3-4.5-.6-2-1.3-3.1-1-4.8.2-1.6.9-1.8.8-2.5 0-.8-1.2.5-.8-.5s3.8-3.2 3.1-4.4c-.7-1.1-4 1.9-3.3-.1s4-2 4.2-4.9c.1-1.7-3 1.1-3.3.2-.3-.8 2-2.6 1.9-3.8 0-1 .4-1.2-.2-1.8s-2.6 2.3-2.6 2.3l-2-.7-.8 3-.6 2.5-2.6-1.5.7 3.1.6 3-2.7-.7 1.4 2.6 1.9 2 1.1 1.5.9.4 1 1.1.5 1.7.6 1.9.1 1.8v2.4l-.1.4v1.1c-.5 0-1.4-.8-1.7-.3s1.6 2 1.2 2.4c-.3.4-3-.5-3.2.3-.2 1 .2 2.2 1.8 2.6s5.3 1.2 4.7 2c-.6.7-4.7-2.3-4.5-.1a4 4 0 0 0 2.6 3.4c1 .4 5.1 0 4.9 1-.3.9-3.3-.4-3.6 1s2.1 1.6 2.6 1.6 2.2-.1 2.9.4l4.3 4.1 4.6 3.4c-.8 0-2.4-.3-2.6.3s6 3 4.2 3.8-3.8-2-4.3-.4 1.2 3 2.2 3.6 6.7.1 5.6 1.4-5.3-.8-5.3.7 2.7 4 4.2 3.9c1.4 0 3-2.4 3.6-1.1s-1 1.7.3 2 2.3-1.4 4-1c1.5.3 4 1.3 5.4 2.5z"/>
|
||||
<path fill="#717732" d="M308.4 304.1c1 0 1 .6 1.2.6s1.8-1.5 3.3-2.3a18 18 0 0 1 4-1.4l.1.2s-2.8.7-4.2 1.7l-3 2.1q-.3.5-1.7.7c-1 0-1.4-.6-1.4-.9 0-.2.7-.7 1.7-.7m8.5-4.3s-.9.1-1.3-.3a4 4 0 0 0-2.6-.8 7 7 0 0 0-4 1.8q.1.2-1.4 1.3.6 0 2-1a7 7 0 0 1 3.6-1.4c1-.2 1.7.4 2.2.7.5.4 1.4.3 1.4.3zm-50.5-20.6v-.7l-2.2-1.1c-1.6-1-5-3.8-5-3.8l2.8 2.7c1.4 1.3 4 2.9 4 2.9zm35.6 25.2 1.5-2.1q1.5-2 1.9-2.2 0-.5-.7-1.4l-.2-1.2s.4.8 1 1.3l1.1 1s1.4-.2 1.4-.5q0-.3-.2-.5c-.3-.1-.5.2-1.1 0-1.3-.6-1.8-2.6-2.6-2.6-.8-.1-.2 2-.6 2-1.1.2-2-4.3-5-4.5-2 0-2.3.3-2.4.7 0 .5 2.5 3.1 1.6 3.5s-3.5-4.2-5.5-4.2c-1.9 0-2 .7-2 1.1.2.4 2.2.8 1.8 2.2s-2.5-2-4.3-1.9-2 .3-2 .9c-.1.5.6 1.2.3 1.4s-1.4.1-2.3.7-2.1 2.4-2.1 2.4 1.2-1.7 2.7-1.9h5.6l-1.1-.8c-.6-.5-1.1-1.6-1.1-1.6l1.7 1.5c.8.7 1.9 1.2 1.9 1.2s1.7.2 1.8.4q.3.3-.8 1.3l-1.7 1.7 2-1.6 1.5-1.2 1.4.2q.3 0-.8-1.7l-1.6-2.5s1 .9 2 2.3c1.1 1.3 1 2 1.4 2q.7.1 1.4.1t-.4 1.7q-1.4 2.5-1.2 2.5c.2 0 .8-1.2 1.6-2 .7-.8 1.1-1.7 1.5-1.8h1.5l-.8-1.6c-.6-1-.8-2.6-.8-2.6s.6 1.4 1.4 2.5l1.3 1.9 1.4-.1.3.1c0 .5-.2.7-.7 1.8zM280.5 292q1.7.6 1.7.5c0-.1-1.7-1-2.1-2.4s0-4.4-.8-4.3c-.7 0-1.1 2.1-1.8 1.7-.8-.4.2-4.4-.6-6-.8-1.7-2.6-2.9-3-2.3s-.3 4.2-1.5 3.5.1-4-.2-5.3c-.4-1.5-1.2-2.5-1.9-2.1s.3 3-.7 3-.9-1.9-1.3-2-.6.3-.9 0c-.2-.4 0-1.7-.6-1.6s-.5 1.2-.3 1.7q.3 1 .7 1.8c.2.4 1 .9 1 1.2q-.2.5-1 .6h-1.9s1.4.4 1.9.4 1.4-.2 1.7.2c.2.5 1.4 2 1.4 2s.3-.8.4-2.2 0-2.7 0-2.7.5 1.6.4 2.7c0 1-.4 3-.4 3s1.1.8.8 1c-.3.3-1.5.3-2.8.3-1.4 0-3.3-.5-3.3-.5a14 14 0 0 0 6.7 1.3l1.8 2s.9-1.5 1-3v-3l.4 2.8c0 1.3-.4 3.6-.6 3.8a5 5 0 0 1-1.9 1l-3.5.5s2.2.3 3.8 0c1.5-.4 1.7-.9 2.2-.6l.8.7 1.3 1c.1.1-.7.4-1 .7l-1.5.7 2.2-.7 1.1-.4.5.2-.1-1.2-.3-1.8s.5.8.7 1.6l.1 1.6s.2.2 1.4.6m-31.1-35.6s.3-1.7.3-3.6a14 14 0 0 0-1.9-5.8l1-1.4-1.2 1-1.2-.5-.9-1 1.2.8q.8.2.7.1l-.5-2-1.9-1c-1.3-.6-2.5-1.8-2.5-1.8l2.8 1.5q1.5.5 1.6.4l1.6-.6 1.7-1.1s-1 .6-1.8.7l-1.6.3-.3-2.4-1.1-1.1c-.9-1.2-1.6-2.9-1.6-2.9s1 1.2 1.7 1.7 1.4 1.5 1.4 1.5l1.6-1 2.8-2-2.7 1.3-1.6.7s-.2-1 0-1.5.8-1.2.7-1.6c0-.5-.4-.3-.5-.7-.2-.3.4-2.6.4-2.6l.1 1.2c0 .5-.2 1 .4 1s3.2-2.7 3.6-3.2.8-1.8-.6-1.3-1 1.8-2.2 1.7c-.4 0-.8-1.5-1.2-1.2s-1.4 1.3-1.6 2.4.2 2.6-.4 3.1-1-1.8-2.2-1.5-1.5 2-1.3 2.6 2.7 3.5 2 4c-.9.3-2.9-2.6-4-.6-1 1.9 3.4 4 4 4.4.5.5 0 .6.8 1.6s1.8 1.2 2.4 1.8a13 13 0 0 1 2.1 5.9zm11.7 17.1s-1-1.2-.7-3.3 1.8-5.7 1.3-6.2-2 2.2-2.4 1.6.9-4.3.2-5.8-.7-2.5-2-2.3c-1.3.1-1.8 4.4-2.5 3.6-.6-.7.4-2.6 0-3.7q-.6-1.4-1.3-1.2c-.7.2-1 2.2-1.4 2.1-.5 0-1.2-2.3-2.2-2-.9.3 2.3 4.5 2.3 4.5s.5-.5.8-1.2l.6-1.5s.3 1.3 0 1.9-.3 1.7-.3 1.7-.8.3-2.1 0l-2.3-.7s.8.6 2.1 1l2.7.7 2 2.7.8-2.1 1.3-3.5-.6 3.9-.7 3s-1 0-2.6-.3l-3.6-.8 3.6 1.2 2.8.7 1.4 1.9 1-1.5 1-1.8s-.3 1.4-.7 2.3l-.7 1.4-1.8.2h-2.5a20 20 0 0 0 4.5.9s0 .5.7 1.3z"/>
|
||||
<path fill="#fff" d="M314.4 310.8s-.6-.6-1.4-1q-1.3-.6-1.2-.4l-.4-.1.8-2 5.5-5.3.9-5.3h3.4v7.2l1 .5 6.2 3.7v1.6l-1 .4-.7.4-2.3.2-4-3-1.8-1.7-3 4z"/>
|
||||
<path fill="#016848" d="m318.8 296.7-.1 1c0 .9 0 5.2-.2 5.8s-3.2 1.8-4.9 3.3-1.8 2.6-1.8 2.6-.5 0-1.6.4c-1 .4-1.5 1-1.5 1s.6-2.6 3.4-5c2.7-2.6 4-2.8 4.4-3.2.3-.4 0-5 0-5.5q.3-.5.7-.4zm7 15.7.8-1.1 1-.8-1.5-.8c-1.5-.6-2.3-.4-3.3-1.2l-2.2-2-1.5 1.2 1.7 2c.9.8 2.7 1.1 3.5 1.6l1.6 1.1z"/>
|
||||
<path fill="#cd202a" d="M321.5 296.6s1.7 0 1.9.2l.2.6c0 .1 0 4-.2 5.3a8 8 0 0 1-1.4 3l-4 3.7c-1.2 1.2-2.4 2.8-2.4 2.8l-.8-1q-.6-.5-.6-.9a10 10 0 0 1 3.3-3.4c2-1.3 3.6-2.8 4-4.9.3-2 0-5.4 0-5.4"/>
|
||||
<path fill="#cd202a" d="M332.5 310s-.4-.4-1.8-.4l-1.5.1s-.8-1-2-1.7c-1.2-.8-2.1-.7-3.5-1.6-1.3-.8-2-2.1-2-2.1l1-2s1.2 1.5 2.4 2.4 3.7 1.7 4.6 2.4z"/>
|
||||
<path fill="#30c2dc" stroke="#0872a7" stroke-width=".5" d="M345 286.4s-3.6-1.4-3.4-2.7c.3-1.2 8.3-3.3 8.3-3.3l.1-2.1s-1.2-.1-3.2.5-5.2 1.6-8.6 1.6l-34.4-2.2c-3.7-.3-6-6-6-6l-1.8.4s.5 2.7-.4 3a65 65 0 0 1-13.9-6l-.6 2.6s7.3 4 7.1 5.5c-.2 1.4-2.4 1.3-2.4 1.3l1 1.8c.3 0 12 .6 12.3 4.1 0 1.5-3 2.3-3 2.3l1 1.2v.6s6.7 0 8.5 1 2.7 2.6 5 3.8c2.2 1.3 17.3 1 19.6.3 2.7-.7 4.3-3.7 8.7-5 4.3-1.4 5.7-1.4 5.7-1.4z"/>
|
||||
<circle cx="284.5" cy="280.7" r="2.1" fill="#fff" stroke="#0872a7"/>
|
||||
<circle cx="296.4" cy="270.9" r="2.1" fill="#fff" stroke="#0872a7"/>
|
||||
<circle cx="346.5" cy="286.6" r="2.1" fill="#fff" stroke="#0872a7"/>
|
||||
<path fill="#f8c83c" d="M275.1 267.8c-.7 1.6 2 4.6 4 5q2.6.3 3.2-1.1a3 3 0 0 0-.4-2.5c-1.2-1.7-6-3-6.8-1.4"/>
|
||||
<path fill="#fff" d="M281 270.2c0-1-1.6-1.9-2.6-1.9s-2 0-1.8.5 2.7 1.3 2.8 1.6-.8.6-.4 1q.8.4 1.4-.2.6-.3.7-1z"/>
|
||||
<path fill="#f8c83c" d="M297.7 288.3c.4 1.4-.7 2-2 2.7-1.5.6-4.3.2-5-.9-.6-1.1 1-3 2.8-3.4s3.8.3 4.2 1.6"/>
|
||||
<path fill="#fff" d="M294.8 289c.5 0 .6 1 1 .8.5 0 1-.8.8-1.3s-1-1.3-1.8-1.2c-.8 0-3 2-2.8 2.5q.4.7 1.2.3c.4-.2 1-1 1.6-1z"/>
|
||||
<path fill="#f8c83c" d="M349.2 281c1.3 1.7 3.6.2 4.2-.5s2.4-1.7 1.7-2.8c-.8-1.1-2-1-3-1-.8 0-2.6 1.4-2.9 2-.3.5-.6 1.6 0 2.4z"/>
|
||||
<path fill="#fff" d="M349.6 280s.1-1.9 1.8-2c1 0 1 .3 1.8.7.7.4 1-.5 1-.5s0 1.3-1.1 1.3-.8-.5-2-.7c-1-.2-1.5 1.1-1.5 1.1z"/>
|
||||
<path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="m321.9 276.4-.9-.6h-2.8l-3.4.1 3.4 9.9 4 5.8 1.6.6 3.1-.2.6-1.6-1.2-9.5z"/>
|
||||
<path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="m310.6 277 .2-1.1 1.8-.1 2.2.1s2.3 2.9 3.1 4.7 1.7 4.8 2.7 6.6c1 1.9 3.2 5 3.2 5h-4l-2-.6-5.6-9z"/>
|
||||
<path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M308.2 275.8h2.6a14 14 0 0 1 3.9 5.4c1 2.8.5 3.2 1.8 6.2 1.4 2.9 3.2 4.9 3.2 4.9s-3.9.2-6-.2c-2.3-.4-3-.3-3.6-1l-1.7-1.3h-2.2l.5-3.1-.6-6.9.1-3.5zm23.4 1.8-3.7-1.5-7-.4.6 3.6a30 30 0 0 0 2.6 7.7c1.1 2 2.2 4.4 2.8 5s4.6-1.1 4.6-1.1l2.6-.4-.3-2.8-.4-1 .6-8-.6-1.2z"/>
|
||||
<path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M307.1 277.7c0 .8 1 .9 1.2.8s1-.3 1-1.5-.7-2.1-2.2-2.2c-1.4 0-2.5 1.7-2.5 3 0 1.2 1.2 1.8 1.2 2.3 0 0-1.2 1.1-1.1 3.1s1.6 3.6 1.6 3.6-1.7 1.3-1.7 2.7 1.3 2.3 2.6 2.3c1.2 0 2.8-.8 2.8-1.8s-1-1.7-1.7-1.7q-1.1.2-1.1.8m25.6-10.9c0 .9-.6 1-1 1s-1.2-.4-1.2-1.5c0-1 1.4-1.6 2.4-1.6s2.4 1.2 2.4 2.7-1 2.6-1 2.6.6.3.6 2.2-1.2 3.3-1.2 3.3 1.6.6 1.6 2.6-1.4 2.6-2.3 2.6c-1 0-2.6-.5-2.6-1.9s.8-1.8 1.5-1.8q1.1.2 1.3 1.5"/>
|
||||
<path fill="#953220" d="m309.5 288.6.4.6q.2.7.8 1.4c.8.7 7.2 1 9.2 1s7.8.2 8.9-.4c1-.7 1.2-1.8 1.9-2.3l.9-.4-.9.7v1.4l.5.8s-.1.4-.8.8q-1 .5-2.3.6c-1 .1-13.2.1-15.2-.2s-1.8-.3-2.4-.7l-1-1 .3-.8-.3-1.4zm20-11.8 1 .5s-.9.3-1.6 2.3-.1 2.5-.6 2.7-5.8 0-5.8 0l-1-2.1z"/>
|
||||
<path fill="#231f20" d="M346.4 276s-.9-.3-1.3-1q-.8-1.4-.5-2c.4-.1 1 .5 1 1.1s.8 2 .8 2zm10.4-2.8s.7 1.2 1 1.3l1.2.6s-1.5 0-2-.4l-1-1.5z"/>
|
||||
<path fill="#231f20" d="M360 274.2s-1 .5-1.6.2q-1.4-.5-1-1t.8.2c.4.4 1.8.6 1.8.6m5.3-4.5s-.8.6-1.3.6-1.5-.2-1.5-.4 1.3-.4 1.6-.3zm-8-10.5s-1.1.4-1.5 1-.3 1.2.2 1.2.6-.7.6-1zm-5.2 2.9s-.9.5-1 1c-.3.5-.5 1.6 0 1.6s.7-.8.7-1.2c0-.5.3-1.4.3-1.4"/>
|
||||
<path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="m342.8 268.4-2.9 3s6.6 3.7 11.7 3.5c5-.1 10.8-4 11.2-5 .4-.7 0-4.3-.6-5.4s-4.2-3.8-5.5-3.7-3.7 1.9-5.8 4c-2.2 2.1-2 3.9-5 3.7z"/>
|
||||
<path fill="#0c8489" d="M342 269.6s7 1 9.1-.8 4.3-5.3 5.7-6c1.4-.9 2-.9 2-.9l1.6 1.1 1.8 1.5.6 3.4v1.8l-2.2 1.8-4 1.9-4 1.2-3.2-.1-6.7-2-1.7-1.1-.4-.4z"/>
|
||||
<path fill="#04534e" d="M352.8 265.5q0-.7 1-.6c1 .1 1 .2 1 .8s-.5 1.4-1 1.4-1-1-1-1.6m2.8 1.8q0-.9 1-.8c.7 0 1.3.7 1.3 1.2s-.5 1-1.1 1-1.2-.9-1.2-1.4m-1 4.2q.1-1 1.1-.8 1 0 1 1a1.2 1.2 0 0 1-1.1 1.2q-1-.2-1-1.4m-3.7-1.3c0-.7.7-1 1.3-1q1 .2 1 1.4c0 1.2-.4 1.3-1 1.3s-1.3-1-1.3-1.7m-5.9.7a1.4 1.4 0 1 1 3 0 1.4 1.4 0 0 1-3 0"/>
|
||||
<path fill="#8cbebf" d="M355.6 267.3c0-.5.7-.8 1-.8q.8.1.8.8 0 1-.7 1-.8-.1-1-1zm-1 4q.2-.8 1.2-.8c1 0 1 .3 1 .8s-.5 1-1 1q-1 0-1.1-1zm-3.7-1.2c0-.6 1-.9 1.5-.9q.4 0 .3 1 0 1.1-.7 1.2c-.7.1-1-.7-1-1.3zm1.8-4.7q.1-.6.8-.5c.7.1.6.1.6.7s-.3 1-.6 1q-.7-.2-.8-1.2m-7.7 5.1q.1-1.1 1.4-1.3 1.8-.2 1.7 1c0 .6-1 1.8-1.8 1.8s-1.3-.8-1.3-1.5"/>
|
||||
<path fill="#231f20" d="M347.7 269.4s-1 .1-1.5.6-.5 1-.3 1.2.7-.3.8-.6c0-.2 1-1.2 1-1.2m4.7-1s-1 .6-1 1.3q-.1 1 .2 1c.3 0 .5-.9.4-1.2s.4-1.2.4-1.2z"/>
|
||||
<path fill="#231f20" d="M353.2 269.3s-.6 0-1 .4q-.9.9-.6 1 .6 0 .8-.5c0-.2.8-.9.8-.9m1-5.4-.8.6c-.2.2-.5 1-.2 1q.4.3.8-.5.2-1 .2-1.1m3.5 2.3s-.9 0-1.2.5q-.6.7 0 .8.4 0 .6-.5c.1-.4.6-.8.6-.8m-.5 4.1s-.2.7-.8 1q-.7.6-1 .1 0-.6.4-.7z"/>
|
||||
<path fill="#04534e" d="M362.8 267.5s.4 2-1.3 3-6.4 4.2-10.9 3.8-9.6-3-9.6-3l-.7.4 1.2.5 3.4 1.4 4 1.2 2.5.1 2.1-.2 4-1.3 3.3-1.7 1.8-1.4.4-.6v-1.9z"/>
|
||||
<path fill="#231f20" d="M274.9 242.2s1 .9 1 1.6q-.3 1.2-.7 1c-.3-.2-.3-1-.3-1.3zm7.7 7.1s-.3 1.4-.9 1.5c-.5.1-.9-.4-.8-.7q.3-.1.8-.2zm-16.8 1s.4.8 1 1q1.1-.2 1-.6-.2-.2-.8-.2zm3 6s.7.6 1.5.7a1 1 0 0 0 1.3-.7c0-.2-1-.2-1.3 0s-1.5 0-1.5 0m5.3 4.4s1.4-.2 1.6-.6.6-1 .3-1.3-.5.5-.7.9c-.1.3-1.2 1-1.2 1"/>
|
||||
<path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M282.6 257.1s1-6-4-10.4c-5-4.3-8.1-3.2-9.8-1.6s-3.2 6.7 2 11.3c5.3 4.5 11.7 3 11.7 3z"/>
|
||||
<path fill="#0c8489" d="M267.6 250.7s-.1-3.4 1.5-4.4c1.5-1 6.8-1.8 9.3 3.1s2.7 7.4 2 10h-2.7l-4.3-1.8-3.5-2.6z"/>
|
||||
<path fill="#04534e" d="M282 258s-.9 1-2.7 1c-1.7-.2-10-2.3-12-9.8v1.7l.1.5.6 1.5 1.7 2.5 2.2 1.9 2.8 1.4 2 .6 2.5.4h1.5z"/>
|
||||
<path fill="#04534e" d="M277.7 255.9q0-.9.8-.7c.8.2 1-.2 1 .4s-.4 1.6-1 1.6q-.7-.2-.8-1.3m.3-4q0-.7 1-.8.8 0 .9.9 0 .7-1 .8-.8-.1-.9-.8zm-3.7 4.4q0-.6 1-.7c1-.1 1 .3 1 .7s-1 .8-1.5.8-.5-.5-.5-.8m-.4-4.6c0-.6.3-.4.8-.4s1.2.1 1.2.7-.7 1.4-1.2 1.4-.8-1.2-.8-1.7m-3.4.7q0-1 .9-1.1c.9-.1 1.3.6 1.3 1.1q-.1.9-1.1 1-1-.1-1.1-1m.6-4q0-.7 1-.5 1 0 1.1.7c0 .5-.7 1.2-1.4 1.2s-.7-1-.7-1.5zm3.7-.5q.1-.5 1-.3 1 0 1.1 1c.1 1-.7 1-1.3 1s-.8-1.2-.8-1.6z"/>
|
||||
<path fill="#8cbebf" d="M271 248.3q.2-.6.8-.7.8-.1.9.7-.1.8-.8.9-1-.1-.8-1zm-.6 4q0-.9.7-1 1-.2 1 .5-.1 1-1 1.1c-.9.1-.7-.1-.7-.6m4.4-4.3q0-.5.8-.4 1 0 .8.5-.1.7-.8.7-1-.1-.8-.8m-.9 3.9q.1.9 1 1 1.2 0 1-1c0-.6-.6-1-1-1s-1 .4-1 1m4.3-.6q0 .8 1 .9.8 0 .9-.9c.1-.9-.5-.9-1-.9s-1 .4-1 1zm-4.1 5q.2-.8.9-.9 1 0 .9.7c0 .4-.8 1-1.2 1q-.7 0-.6-.9zm3.6-.7q0-.7 1-.6.8 0 .8.6-.1 1-1 1c-.9 0-.8-.5-.8-1"/>
|
||||
<path fill="#231f20" d="M278.7 249.4s.5.7.6 1.3v1.2q-.5 0-.7-.9c-.1-.5 0-1.6 0-1.6zm-3.2-3.3s.4.5.4 1 0 1-.3 1-.3-.4-.3-.8zm-3.7.5s.4.5.4 1 0 1-.3 1-.3-.4-.3-.8z"/>
|
||||
<path fill="#231f20" d="m270.5 247.3 1 .4q.5.7.3 1-.3.2-.6-.4zm2.8 3.8s.7 0 1.1.5q.8.4.5.9-.4.1-1-.5zm-3.4 0 1 .3q.5.5.2.8-.2.2-.6-.4zm8.3 2.5.2 1.4q.1.9-.2 1c-.3.1-.3-.7-.3-1 0-.5.3-1.4.3-1.4"/>
|
||||
<path fill="#231f20" d="m277.3 254.9.8.5q.4.4.1.6l-.4-.5zm-3.7.2.9.3c.2.2.3 1 .2 1.1q-.1.1-.6-.3z"/>
|
||||
<path fill="#04534e" d="M272.1 243.8s-3.2.7-3.8 2.9c-.6 2-.7 4.4-.7 4.4l-.4-2.7.6-1.7 1-1.6 1.4-1 1.3-.4zm10.2 12.5s.4-.8-.6-3.4-3-6-3-6l1.6 1.8 1.2 2 .6 1.8.5 1.7v1.6l-.3.6z"/>
|
||||
<path fill="#231f20" d="M285.6 252.2s1.2.7 1.3 1.1q.3.6-.1.7-.6 0-1-.7zm-4.8 12.8s.6-1 1.3-1.3q1-.6 1.4-.1.1.4-1 .9zm8.1 3.1s.8-.4 1.3-1q.7-.8.4-1-.5-.4-1.1.5c-.3.4-.6 1.5-.6 1.5m-.9-.7s.3-1 .6-1.4q.4-.5 1-.3.2.4-.2.9z"/>
|
||||
<path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M301.5 261.2s-5-7.2-12.8-7.6a7.4 7.4 0 0 0-8 7c.2 1.6 2.6 5.2 10.9 5.8s9.6-3.9 10-4.1c.3-.2-.1-1-.1-1z"/>
|
||||
<path fill="#0c8489" d="M295.6 256.3s2 1.5 3 2.8q1.2 2 .5 2.3c-.5.2-5-4-8.8-4.9-3.7-.9-6.9 0-7.6 1.7s-.4 4.5 1.2 5.6c1.8 1 9.7 2.3 9.7 2.3l3.7-.5 2.3-1.3.5-1.3.6-1.6.2-.7-1.9-2z"/>
|
||||
<path fill="#04534e" d="M289.2 257.3q-.1.6-1 .7c-.9.1-.9-.3-.9-.7q0-.8 1-.9c1-.1 1 .4 1 .9zm-4.6 1.6q.2-.6 1-.4 1 0 1 .8c0 .8-.8 1.1-1.3.9q-.8-.5-.7-1.3m5 2.7q0-1 1-1 1.1 0 1.2 1c.1 1-.8 1.2-1.5 1.2s-.7-.6-.7-1.2"/>
|
||||
<path fill="#8cbebf" d="M285.8 262.7q.2-.7 1-.6t1 1c.1.9-.5.9-1 .9s-1-.8-1-1.3"/>
|
||||
<path fill="#04534e" d="M292.5 264.5q0-.7.7-.8.8 0 1 .7-.1.8-1 .9a1 1 0 0 1-.7-.8m3-2.3q0-.6.8-.4 1.1.1 1 .8-.3 1-1.1.8-.7-.2-.7-1.2"/>
|
||||
<path fill="#8cbebf" d="M289 256.9q0 .6-.7.6-1 0-.9-.6t.6-.6q1 0 1 .6m-2.5 1.9c0 .5-.7.7-1 .7q-.8 0-.8-.7t.8-.6q1.1 0 1 .6m1 3.8q.1.6-.5.7-1 0-1-.7-.1-.6.5-.7 1 0 1.1.7zm4-1.3c0 .4-.7 1-1.2 1s-.6-.9-.6-1.3.4-.7.8-.7 1 .6 1 1m5.8 1.3c0 .4-.7.4-1 .4q-.8-.1-.8-1-.2-.7 1-.7c.5 0 .8.8.8 1.3m-3.4 1.7q0 .8-.7.8a1 1 0 0 1-.8-.8q.1-.6.8-.6.9 0 .7.6"/>
|
||||
<path fill="#231f20" d="M294.4 262s.8-.3 1.5-.3q.8.1.6.4t-.7.2l-1.4-.4zm-3.3 2.8s.6-.4 1.1-.5q.8-.2.8.4 0 .4-.6.3zm-2.2-5s1.4.6 1.7 1.1q.5.8.1.9t-.8-.5z"/>
|
||||
<path fill="#231f20" d="m288.5 261.6 1.6-.3q.7 0 .7.2t-.5.3zm-3.4 0s1.2.2 1.5.5q.4.5.1.7c0 .2-.6.1-.8 0z"/>
|
||||
<path fill="#231f20" d="M285 263.3s.4-.7.8-.8 1-.1 1 .1c.1.2-.4.5-.7.6zm-1-5.1 1.2.3q.6.5.4.7t-.8 0c-.5-.4-.7-1-.7-1zm2.6-3s1.2.4 1.6 1q.5.8.1.9l-.9-.4c-.3-.3-.8-1.4-.8-1.4z"/>
|
||||
<path fill="#04534e" d="M300 263.7s-2.3 2-7.7 1.9-10.4-2.5-11.6-5l.5 1.2 1.2 1.6 3.8 2 4.3.9 3.3.2 3.2-.6 2.5-1.1.4-.7zm.8-2.5s-.9-1.2-2.2-2.3c-1.2-1.2-6.2-4.4-6.2-4.4l4 1.8 2.7 2.2 1.8 2z"/>
|
||||
<path fill="#231f20" d="M301 256.4s1.4.5 1.6.8l.5.6s-.3 1-.6.6l-.8-.9zm4-2.2s1.3.5 1.8 1.1q.6 1.1.2 1.3c-.2 0-1-.7-1.2-1l-.7-1.4z"/>
|
||||
<path fill="#231f20" d="M306.4 254s1.2.8 1.4 1.2.5 1 .1 1c-.3.2-.9-.4-1-.8l-.6-1.5zm6.8 1.5s1 .4 1 1.2v1.3l-.7-.7v-.7l-.3-1zm1.8.7s.8.7.9 1.2.2.8-.3 1q-.6-.1-.6-1zm-12.3 15s.6.2 1.2 0q.9-.4.9-1-.2-.8-.8-.2c-.4.4-.2.6-.5.8zm6.8 1.8s.9-.2 1.5-.9q1-.9.5-1.2c-.4-.2-1 0-1 .5zm5.5.1 1.3-.9q.8-.6.4-1c-.3-.5-.6-.2-.8 0l-.2.7z"/>
|
||||
<path fill="#231f20" d="M316.7 273.1s.8-.9 1-1.4q.3-.9-.1-1-.7.1-.8.9z"/>
|
||||
<path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M299.9 264.1c0-2.4 3.5-8 7.5-8 1.6 0 4.9 1 7.5 2.1 2.2 1 3 2 4.4 2.4s3.7.1 3.7.1l5-.5-4 5.7-1.4 1.2s-1.2 2.4-4.7 3.8c-3.6 1.4-9.5.4-12.2-.3s-6-3.2-5.8-6.5z"/>
|
||||
<path fill="#04534e" d="M299.9 264.1h.2q0-.8.6-2.1a12 12 0 0 1 2.7-3.8q1.7-1.7 3.9-1.8 1.3 0 3.4.6l4.1 1.4q1.5.8 2.4 1.5 1 .6 2 1l2 .2 1.8-.1 4.4-.5-3.6 5.2-1.4 1.2v.1a9 9 0 0 1-4.6 3.7q-2 .6-4.5.6c-2.8 0-5.9-.5-7.6-1a8 8 0 0 1-3.8-2.1 6 6 0 0 1-1.8-4h-.5q.1 2.6 2 4.4a9 9 0 0 0 4 2.3c1.7.4 4.8 1 7.7 1a14 14 0 0 0 4.7-.7 9 9 0 0 0 4.9-4h-.3l.2.1 1.4-1.3 4.3-6.2-5.6.7h-.1l-3.4-.1a6 6 0 0 1-1.9-1q-.9-.7-2.5-1.4l-4.2-1.5q-2-.6-3.4-.6h-.1q-1.5 0-3 1a11 11 0 0 0-3.3 3.5 8 8 0 0 0-1.4 3.7z"/>
|
||||
<path fill="#0c8489" d="M324 264.9q-.7.4-1.4.3c-.5 0-11.6-6.7-15-6.4s-6.8 1.7-6.9 5.3c0 3.5.8 3.5 1.5 4.5s7.5 2.5 7.5 2.5h4.1l3.3-.4 3-1.6 1.5-1.3 1.1-1.3z"/>
|
||||
<path fill="#04534e" d="M306.5 263q0 1.3-1 1.3t-1.1-1c-.1-1 .4-1 1-1q1-.1 1 .8zm1.1-3q.2-.9 1.2-.8 1.1 0 1.2.8 0 1-1.2 1-1 0-1.2-1m6.7 1.8q0-.8 1-.9.8 0 .9 1c.1 1-.4.8-1 .8a1 1 0 0 1-1-.9zm1.3 4q.1-1 1-1t1.2.8q.2 1.3-.8 1.3c-.6 0-1.4-.4-1.4-1zm-3.2 2.7q.1-1 1-1 1.1 0 1.2 1-.1.8-1 .9-1.1 0-1.2-1zm-6-1q0-1 .9-1a1 1 0 1 1 0 1.9 1 1 0 0 1-1-1z"/>
|
||||
<path fill="#8cbebf" d="M306.4 263q0 .9-1 1a1 1 0 0 1-1-1q0-.9 1-.8c1 .1 1 .2 1 .7zm3.3-3.2q0 .8-.8.9c-.5 0-1.3-.4-1.3-.9s.5-1 1-1q1 .1 1 1zm6.4 1.7q0 .8-1 .9c-1 .1-.9-.4-.9-.9q0-.7 1-.8c1-.1.9.4.9.8"/>
|
||||
<path fill="#04534e" d="M312.7 264.2q0 1.1-1 1.2t-1.1-1c-.1-1 .3-1 1-1s1 .2 1 .8z"/>
|
||||
<path fill="#8cbebf" d="M308 267.2q0 .9-1 1c-1 .1-1-.5-1-1s.6-.8 1.2-.8.8.3.8.8m4.5-3a1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1m5.2 1.3q0 1-1 1t-1.1-1c-.1-1 .2-.8.8-.8q1.1 0 1.3.8m-3.3 2.7q0 1-1 1-1.3 0-1.1-1 .1-.8 1-.8t1 .8z"/>
|
||||
<path fill="#231f20" d="M314.8 265s1.6-.2 1.9 0q.4.6.1 1c-.1 0-.8.1-1-.1 0-.3-1-1-1-1zm-1.7-5.4s1.3.3 1.8.9q.6.9.4 1.1-.4.3-1-.2zm-3.7 2.6s1.5.8 1.8 1.3q.5.6.2 1c-.1.2-.8 0-1-.3 0-.3-1-2-1-2"/>
|
||||
<path fill="#231f20" d="M308.7 263.3s1.7.2 2 .5q.8.4.8.6-.1.4-.5.4l-1.2-.5-1-1zm-1.9-4.8s1.7.2 2 .5.5 1 .1 1.2q-.6.1-1-.5l-1-1.2zm-3.6 2.5s1.5.8 2 1.4q.6.6 0 1c-.4 0-.9-.7-.9-1z"/>
|
||||
<path fill="#231f20" d="m302.8 263 1.5-.2c.5 0 1.2-.1 1.2.2s-.6.5-1 .4zm8.6 5.6s1.1-.7 1.7-.6q.7 0 .7.4c0 .4-.7.3-.9.3zm-6-.9s.4-.6.9-.7q.6 0 .7.2-.1.4-.6.6h-1z"/>
|
||||
<path fill="#04534e" d="M322.6 266.6s-1.6 2-4 3a14 14 0 0 1-7.2 1.1 15 15 0 0 1-11.2-5.2l.4 1.1 2 2.6 2.3 1 3.5 1 3.3.3h2.5l3-.5 1.9-.7 1.3-.8 1-.8 1.2-2zm-3-5.9s-1 .3-3-.9-4.3-2.8-8.8-2.8-5.9 3-6.2 3.2l2-2.6 2-1.1 1.7-.3h1.5l2 .6 1.7.6 2.1.7 1.8 1 2.2 1.1zm6 1.4h-3.4c-.8 0-.8.2-1 .4l-.2.4-.8-1.7 3.5-.5 2 .7-.2.6z"/>
|
||||
<path fill="#0c8489" stroke="#04534e" stroke-width=".5" d="M320.7 280.4q.3.9 1.1 1h1.6l3.6-.3 1.2-1.4.8-3.2 1-1.2 3.3-1.9 2.8-.8 1.9-.2 2.5-.8 1.9-1 .8-1.2.8-1.8-.8-2.5-2-2.7-3.4-1.3H335l-3 1.1-5.5 1.3s-3 1.3-4.3 3.7c-1.3 2.3-1.2 3-1.5 6-.2 3.2 0 7.2 0 7.2z"/>
|
||||
<path fill="#8cbebf" d="M322.2 279.2c1 0 .2-1.7 1.4-3.8s2.6-4.6 3-4.6.4.4.9.3 1.2-.8 1.2-1 0-1.3 1-2c.8-.8 2.1-1.9 2.7-2q1-.3 1 0c.1.3-.3.7.1.8s1.4.1 1.6-.5l.2-1s.6-.5 1.8-.3 1.3.2 1.4.7-.5.5-.4.8v.6c.2.2.4 1 1.2 1 .8-.1 1.1-.6 1.1-.6l.3-.4s.2-.5-.1-.7q-.4-.4 0-.3c.4.1 1.6 1.8 2 1.1s.5-1.7.2-2l-1.9-2.7-3-1-4 .3-4 2.2-3.6 2s-.2 2.9-.8 2.3c-.7-.5-1.6-2-1.9-1.5s-.9 2.7-1.3 3.8c-.3 1-1.4 4.4-1.3 5.6s.8 2.9 1.2 2.9"/>
|
||||
<path fill="#8cbebf" d="M325.8 274.4q-.6.1-.8.5-.3.3-.2 1c0 .3.7.7.7.7h.5l1-.3.3-.8q-.1-.7-.4-.6zm6.2-5c-.6-.3-.8.1-1 .3v.5s.2.8.4 1c.3 0 1.1.3 1.3 0q.5-.2.5-.9c0-.7-.7-.7-.7-.7zm5 1.1q-.1-.3-.9-.2-.6 0-.6 1 .4.9 1.2.6c.5-.1.4-.8.4-.9zm-14.4 1c0 .3.5 1 1.2.9a1.3 1.3 0 0 0 1.2-1c0-.4-.4.3-1 .5s-.7.2-1 0q-.3-.5-.4-.4"/>
|
||||
<path fill="#04534e" d="M327.3 275.5s0 .6-.4 1q-.7.4-1 .3-.5 0-.8-.3l-.3-.7s.5.8 1.3.6a2 2 0 0 0 1.2-.9m13.3-8.3s0 .6-.5.9q-.6.4-1 .3-.4 0-.7-.4c-.6-1-.3-1.5-.3-1.5s.4 1.6 1.3 1.5a2 2 0 0 0 1.2-.8m-11.9 2.9s-.4 1.2-1.2 1.2c-.9 0-.8-.2-.7-.4 0-.1.3.2.7 0 .4 0 1.2-.8 1.2-.8m2.3-.3s0 1 .2 1.2q.5.5 1 .5.6.1.9-.4.3-.8.1-.8l-.2.5q-.4.4-.8.3-.6 0-.8-.3zm4.3-4.3s.2.7-.3 1.2-1.5.2-1.5.2.8.3 1.2-.2.6-1.2.6-1.2"/>
|
||||
<path fill="#04534e" d="M321.7 281.1s5.3 0 5.7-.8c.4-.7-.4-3.6 2.7-5.8 3.2-2.2 5.7-2.2 7.4-2.3 1.7-.2 5.3-1.3 6-4.5.3-2-2.3-2.2-3.3-4-1-2-3.6-1.2-3.8-1.2s-3 0-4.3 1.3c-.9.8-.8 1.8-1.1 2.2s-4 0-4.3.6c-.4.6.1 1.7-.2 2-.2.3-1-.8-1-.8l.2-2.8 4.5-2.6 5-2.8 3.5.1 3.5 1.8 1.7 2s.3.8.5 2.3l-.2 2c-.8 2.8-3.7 4.8-6.7 5a14 14 0 0 0-7 2.5c-1.4 1-2.1 5.3-2.1 5.9 0 .5-6.6.1-6.6.1z"/>
|
||||
<path fill="#231f20" d="M324 270.8q-.6.4-.8 0c-.2-1 .3-2.2.3-2.2v1.6q.3.1.5.3zm3.2-.6c-.2-.1-.1-1 0-1.3.2-.3 1.7-1.4 1.7-1.4l-.6 1.5c-.2.4-.7 1.3-1 1.2zm-1.2 5.3q-.4 0-.3-1c.1-1 1-1.6 1-1.6l-.4 1.2.2 1q-.1.4-.5.4"/>
|
||||
<path fill="#231f20" d="M328.4 274s-.5.6-1 .9q-.9.6-1.4.6c-.4 0 .1-.8.3-.9zm4.5-6.4s-.6.5-.9 1.2q-.5 1.2-.1 1.4c.3.2.7-.8.8-1.1z"/>
|
||||
<path fill="#231f20" d="M334.6 269.9s-.5-.4-1.2-.6q-1-.2-1.2.2c0 .2-.6.5-.3.7s.6-.3.8-.3q.3-.3.9-.2zm-1-4.5c.3.3.7-.2 1-.6s.7-1.2.7-1.2l-1 .7c-.4.3-.9 1-.7 1.1m6.9-.1s-1 .4-1.2.8q-.6.6-.4 1c.3.3.6-.2.8-.5zm-2 4.6s-.3.6-.9 1q-1 .6-1.3.3 0-.4.3-.7l.8-.2z"/>
|
||||
<ellipse cx="328.8" cy="207.4" fill="url(#mx-b)" rx="2.9" ry="4.3" transform="rotate(8.7)"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m295.4 247-1.7 4.2 1.4-.2.7-3.8z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M296.1 245.1q-1 0-1.2 1 0 1.2 1 1.4 1 0 1.2-1 0-1.2-1-1.4z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m369.7 255.8-4.2 4 1.7.4 2.9-3.8z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M371.6 254.1a1.5 1.5 0 0 0-2 .6q-.7 1.1.4 2 1.2.4 2-.7c.4-.6.2-1.5-.4-1.9z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m262.8 233 2.2 4.9 1-1.4-2.6-3.7z"/>
|
||||
<path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M261.9 230.9q-.9.8-.1 1.9c.4.6 1.3.7 1.8.2q.9-.9.1-2a1.3 1.3 0 0 0-1.8-.1z"/>
|
||||
<path fill="#aa8c30" d="M296.6 245.3s.3.1 0 0c-.5 0-1.4.4-1.4 1a1 1 0 0 0 1 1c.5 0-.2.2-.2.2l-.7-.2-.2-.4-.2-.5.1-.6.4-.5.5-.2h.3z"/>
|
||||
<path fill="#aa8c30" d="M295.6 248.1s-.3 0-.5.3l-.7 1.1 1-2.3.4.2zm76.4 6.4s.3.4-.1 0c-.4-.3-1.8-.2-2.1.5q-.5 1.2.6 1.7c.6.2-.2 0-.2 0l-.7-.5-.1-.6v-.7l.5-.6.7-.3h.7l.3.2z"/>
|
||||
<path fill="#aa8c30" d="M369.4 257.3s-.3-.2-.8 0l-1.4.9 2.3-2.2.5.6zm-107-26.7s.4-.1 0 .1-.8 1.4-.3 2q1 .7 1.7 0c.4-.5 0 .2 0 .2l-.7.4h-.6l-.6-.3-.4-.6v-.8l.2-.5.3-.3.3-.2z"/>
|
||||
<path fill="#aa8c30" d="M264 233.8s-.3.1-.2.6l.3 1.5-1.2-2.7.7-.2z"/>
|
||||
<ellipse cx="337.6" cy="-128.1" fill="url(#mx-c)" rx="4.6" ry="3.1" transform="rotate(62.9)"/>
|
||||
<path fill="#e92736" d="M262.6 241.2s1 .2 1.5 0 .6-.7.7-.8.3-.6.2-1l-1-1.4-1-.1q0-.2-.2-.5c-.3 0-1.7 1.6-1.5 1.8.3.3.4 0 .5.1v1.1c0 .3.8.8.8.8"/>
|
||||
<path fill="#e92736" d="M264 238.1c.1.3.7 1 .9 1q.5.3 1 0c.3 0 1-.7 1-1l-.1-.7c-.2-.3-.1-1-.4-1.1q-.2 0-.5-.3v-.7c-.3-.3-2.6 1.1-2.4 1.4q.3.1.5.1z"/>
|
||||
<path fill="#e92736" d="M269.2 237.6c.2-.4.1-1.5-.1-1.8s-.6-.3-.7-.4q.1-.1.3-.5c.2-.4-2.6.1-2.4.4s.6.1.6.3q-.2.3-.5.6l.3 1.1q0 .3.2.5l.6.2h1.4q.2 0 .3-.5zm22 12.8s.3.7.8 1h1l.6-.5c.2-.2.4-1.2.3-1.4 0-.2-.5-.6-.5-.8q.2-.2.2-.4c-.1-.2-2-.2-2 .2q.2.3.2.3c0 .2-.5.5-.6.7-.2.1 0 1 0 1z"/>
|
||||
<path fill="#e92736" d="M293.8 249.5c0 .2-.2 1 0 1.1q.1.5.5.8h1.2l.4-.6c.1-.3.6-.7.5-.9q-.2-.2-.1-.4.2-.2.3-.5c.1-.3-2.1-1-2.2-.7q.2.3.2.4c0 .2-.7.6-.8.8"/>
|
||||
<path fill="#e92736" d="M297.3 252.5c.3-.2 1-.9 1-1.1q-.2-.6-.2-.7l.5-.1c.1-.2-1.6-1.6-1.7-1.3q.2.4.2.5l-.7.1q-.3.3-.5.8-.2.2-.2.5l.2.4c.1.2.8.9 1 .9zm66 5.5s0 .8.4 1.2q.5.4.8.4h.7l1-1q-.2-.6-.2-1c0-.4.3 0 .3-.2s-1.6-1.1-1.7-.8c-.1.2.2.3 0 .4l-.8.2c-.2 0-.5.8-.5.8"/>
|
||||
<path fill="#e92736" d="m366 258.5-.8.8q0 .5.2.8c0 .2.7.6 1 .5q.2 0 .5-.2c.2-.1.8-.2.8-.4l.1-.4q.2 0 .6-.2c.2-.2-1.2-1.7-1.4-1.5q-.1.3 0 .4c-.2 0-.9 0-1 .2"/>
|
||||
<path fill="#e92736" d="M366.4 262.2h1.4l.4-.5q0 .1.4.2c.2 0 0-2-.3-1.8q-.2.4-.2.4-.2-.2-.5-.3l-1 .1s-.2 0-.3.2l-.2.4v1q0 .2.3.3"/>
|
||||
<path fill="#f7e204" d="M264.2 239c.2.4-.1 1.2-.3 1.4s-1.3-.1-1.3-.3q0-.4 0-.8c.2-.2.6-.7.9-.6q.5.1.7.4zm.3-1.3q-.2.5.2.7c.1.2 1 .4 1.2.3s.6-1.5.4-1.7q-.4-.2-.7-.2c-.2 0-1 .6-1.1.9m2.7-1.3v.7q.4.3 1 .5c.3 0 .5-1 .5-1.1q0-.3-.3-.4l-1.2.2zm26.1 13.7c0 .4-.7.7-.9.7s-.7-1-.6-1q.2-.4.5-.5.5-.1.9.2zm1.1-.6q-.3.2-.3.6c0 .2.3.8.5.9s1.2-.5 1.3-.7q0-.4-.4-.6l-1-.2zm2.4 1q-.3.1-.4.5s0 .6.3.8.8-.2.9-.3v-.4c0-.2-.8-.6-.8-.6m68.6 8.2c-.2.2-.9.2-1 0-.3 0-.3-1-.1-1q.2-.3.6-.2.5 0 .6.6zm1 .1q-.5 0-.6.3c-.1.1-.2.7 0 .9.1.1 1.2.2 1.3 0v-.5zm1 2h-.5q-.3.1-.4.7c0 .2.7.3.8.3l.3-.2-.1-.8z"/>
|
||||
<ellipse cx="438.6" cy="-93" fill="url(#mx-d)" rx="2.2" ry="4.5" transform="rotate(47.9)"/>
|
||||
<path fill="#a8ac71" d="M285.8 199.3s-3.8.3-6.5-.1-2-7.3-2.1-7.5c0-.2-1.6-1.8-1.4-3.3s5.2-5.5 5.8-5.8c.5-.1 1.5.3 1.5.3s1.2-1.2 1.6-1.2.9.7.8 1c-.2.3-1.9 1.3-2 2-.2.8 0 1.5-.5 2.3s-1.4 1.7-1.5 2.4-.4 1.1 0 1.4 2.1 0 3.5-.6 2-1.5 2.1-1.4c.2 0-.8 1.7-2.3 2.4s-2.5 1.3-3.3 1.2c0 0-.8 2 1.8 2.2 2.6 0 4-.6 4-.6zm-15 16s2 .8 2 3-2.1 4.1-2 8c0 4 .6 4 5.8 8.3a6 6 0 0 1 1.6 2.5c.3 1.3 1.2 8.9 6.2 8.9s5.8-3.3 5.8-3.3l-2.2-3.1s-1.7.5-2.7.3a3 3 0 0 1-2.3-2.1c-.6-1.2-.7-4.1-1.6-5.4-2-3.2-5.8-3.7-5.9-7 0-3.4 2.3-3.7 1.7-7.7-.7-4-5.4-5.8-5.4-5.8l-1.9-.8-.7 4z"/>
|
||||
<path fill="#f1a720" d="M284.7 187.6c1.7-.4.7-4.8.7-4.8l-1.2 1s.8 1 .8 2-.3 1.8-.3 1.8"/>
|
||||
<path fill="#a8ac71" d="m287.8 231.5-.9-.7c-.6-.4-3.2-2.6-2.8-8.9.5-7.2 11-11 11.6-13.8.8-3.2 3.1-4.5-5.2-11l-2 2.2 3.5 2.6s.7-.4.8.6c0 1-1 1.7-1.2 2.5-.2.7-5.4 4.3-5.8 4.6l-3 2.4s-1.3 1.3-2.5 4.1c-1.3 2.8-.7 6.4-.7 6.4s0 7.6 8.2 9"/>
|
||||
<path fill="#78732e" d="m282.7 235.5.6 2.7-1.7.6h-.7l-.5.2-1.3 1.2h-.3s-.2 0-.3-.8q-.1-1.4-.2-1.5l1.6.7h.6l.3-.1.7-1.5zm-4.8.5-.8-1-1-.9 1.2-.6h1.2l-.2 1.5zm2.7-4.3s.8.3 1 1l.6 1.2-2-.2-1.4-.4 1-1.4zm-.7 11.9s-.4-.3-.7-.9l-.4-1.6 1.3-.3 1.5.7h.4l-.3.8-1.5 1.3zm5-4.1s-1-.4-1.2-1q-.3-.6-.4-.4l-.3 1.5-.5 1.5.2.2 1.1-.3.9-.9.3-.6zm-4.7 4.8 1.4.7q1.2.6 1.2.5l.6-.6.7-1.3v-.1l-3 .3zm4.4-1.2 2.7-1.6.1-1.4-.5-.4h-1.5l-.5 1.8zm-1.8 2.5s1.8.8 5-.4c1.4-.5 1.7-1.2 1.7-1.2l-1.3-.5-1.2 1zm-2.5-20.3-.4-1.4q-.2-1.2-.1-1.1l.9.5 1.3 1-1 .7zm2.2 3.7-.9-1-.6-1.2 1 .2 1.1.6z"/>
|
||||
<path fill="#c6c7a6" d="M276.6 187c-.2.7-.4 1.9.5 2 .4.2 2.3 0 4.5-2.4 1-1.2 1-2.4 1-2.4l.5-1.3s-.9-.6-2.2.2-4.3 4-4.3 4z"/>
|
||||
<circle cx="282.5" cy="183.6" r=".4" fill="#1c242f"/>
|
||||
<path fill="#a8ac71" d="m279.7 184-1.7 1.7s1.4-.4 2.6-1.5c.6-.6 2-.8 2.6-.7.4.1.2-.4 0-.5-.3-.3-1.4-.4-1.6-.3z"/>
|
||||
<path fill="#78732e" d="M284.1 224.5v-2.2l-.9.8-.8 1.1 1.3.5zm-4.5-2.6v-2.3c0-1 .5-3.1.5-3.1l.6 1.4 1.5 2.4.5.4-1.3 1-1.4.4zm4.5-.6.3-1c.1-.6.5-1.4.5-1.4v.1l-2 1.7.8.7h.5m-3.7-6s.2-.6 1-1.5l1.3-1.8.6 2.4.4 2v.4l-.7.2c-.2 0-1.6 0-1.8-.3zm4.8 2.9.8-.9 1-1-3.2.6.5 1zm-2-6.7s.3 0 1.2-1c.8-.8 1.3-.7 1.3-.7l.3 3.4-1.6-.5z"/>
|
||||
<path fill="#78732e" d="m287.3 216.2 2-2-3.3-1 .6 2.3zm1.4-5.2.2-3.3s-.7.3-1.5 1l-1.2.9.4.6 1 .7h1zm2.8-3.2V205s-.5.8-1 1.2l-.9.8.9.6h1zm1.2 3.5 1.6-1.3 1.5-1.7-4.2-.3.2 1.7 1 1.6zm-9.6-13.8-.2 1.8h3.5l-.9-1.2-1-.6-1-1zm6.6 16.2c.2 0 1.1-.8 1.6-1.2.4-.5 1.2-1 1.2-1l-3.3-.3v2.2zm6.3-5.9s.4-1.3.3-2.6q-.1-1.8-.2-1.8l-2.5 1.7.4 1.2 1 1z"/>
|
||||
<path fill="#78732e" d="M291.8 204.8s.7-1 .8-1.4v-.4h2l1.1.2h.2l-.9 1.1-1.2.7-1.5.2zm4-2-1.3-2q-.7-1-.8-1l-1 2.7v.3h3z"/>
|
||||
<path fill="#fff" d="m271.6 222.2-.3.8s1.3-.7 2.3-.7 2.1 1.3 2.1 1.3l.2-.9s-1.3-1.3-2.2-1.3c-.8-.1-2 .8-2 .8zm.7-5.8.3.4c0 .1.1-1 1.4-1.5 1.4-.6 2-.1 2-.1s-.2-.8-.8-1q-.8-.2-1.8.5a4 4 0 0 0-1.1 1.7m4.4 4.4s-.6-1.4-1.6-1.6c-1.1-.3-2.5.5-2.5.5l-.2.7s1.5-.8 2.5-.4c1.1.5 1.5 1.7 1.5 1.7l.3-1zm-5-5.1.4.5s-.2-1.4.5-2.1l1.1-1-.6-.3s-.9.5-1.2 1.1a3 3 0 0 0-.2 1.8m-.5-2.3c.3-.8 1.2-1 1.2-1l-.3-.3h-.5s-.5.3-.9 1c-.3.9-.3 2-.3 2l.6.3s-.1-1.4.2-2m7.8-19.2q1.4-.4 1.5-.3c.1.1-1.3 1.3-.7 2.9q-1 2.1-.9 2.3h.7l.4-1.8c.8 1.3 2 2 2 2h1s0-1.3.4-2.4h.1a5 5 0 0 0 2 1.5v-.4s-1.1-.6-1.7-1.5l-.1-.1a4 4 0 0 1 1.8-1.7l.7.6.2-.2-.5-.7h-.6l-1.8 1.7-.8-1.5-.4-.2s-1.1.1-2 1.7c-.2-1.2 1.1-2.4 1.1-2.4v-.5l-2.4.6c-1 .3-1.7 1.2-1.7 1.2v.8s1-1.1 1.7-1.6m1.5 2.2c.6-1 2-1.5 2-1.5s0 .7.7 1.7c-.5.9-.8 2.2-.8 2.2s-1-.6-1.9-2l-.2-.3zm-7.6 21.1v.8s.8-.9 2-1 2.3 1 2.3 1 0-1-.2-1.2c-.1 0-1.1-.6-2-.6s-2.1 1-2.1 1m21.4-11.2-.5-1 .6-.3 1.7-1.6-.4-.6h-1.6l-1.4-.1.5-1.7.6-1.4-.6-.5s.2.5-.8.6-2.8-.8-2.8-.8v.4l2.5.7q.9 0 1.2-.3l-.5 1.3-.3 1 .2.2v.8l1.4.1 1.6.1s-.8 1-1.7 1.5h-.3l-1-1.5-.1.5.7 1.2-1.5-.1-.4.4v2.5l-1.8-.6-.3.3v-.1l-.4.4s-.4 1.4-.3 3.1v.1a5 5 0 0 1-2.4-1.3l-.4.3s-.3 1.4 0 3.2c-1.3-.3-2.5-1.5-2.5-1.5l-.5.5.7 4.7h-.7c-1.4 0-2.3-1.3-2.3-1.3l-.4 1s.6 2.7 2 4l.4.2c-1.3 1-2.8 1.2-2.8 1.2v.9l2.2 1.5-1.6 1 .2.5 1.8-1.3 1.8.5v-.5l-1.5-.3.1-.1c.5-.4 1.4-1.8 1.4-1.8v-1s-.5 0-1.1-.6c1.8-1.2 1.9-1.8 1.9-1.8l.4-.6s-.7-.3-1.1-1.2l2.9-.7.2-.2s-.7-1.2-1-2.6l3 .6.4-.4-.5-2.4c1.8 0 3.2.2 3.2.2l.3-.3s-1-1.9-1-3h4l.3-.5s-1.4-1-1.7-1.5m-10.5 15.5s-.5 1-1.4 2l-.2.2-.5-.2q-1.5-1.1-1.4-1.3l2.5-1.6zm.9-3.2-2 2-.4-.5c-.8-1.2-2-2.1-1.8-3.8 0 0 .7 1.2 2.2 1l1-.1c.4 1 1 1.4 1 1.4m2-2.5-2.7.7-.1-.5c-.5-1.6-.5-4-.5-4s1 .8 2.6 1.2zm-.5-3c-.2-1.4.1-2.9.1-2.9s.8.8 2.3 1q.2 2.2.3 2.1zm5.8-2.2s-1 .4-2.8.1v-3.5l2.3.7zm0-3.1h-.2V205s1 .3 1.7.2c.2.4 0 .5.5 1.2s1.1 1.3 1.1 1.3-2.3.2-3.2 0zm-7.6 18.6-.1-.5s-1 .7-1.2 1.4l-.3-.1-2-.8.2.4 1.8.8h.2l-.5 1.4.2.3.5-1.7 1.2.1-.2.8-.4 1.5.5.3h2l-.3-.4-.7-.1h-1.1l.3-1.2.3-.8-.3-.7-1 .2zm-11.3-1.3c1.3 0 2.3.9 2.3.9v-.6s-1-1.4-2.1-1.4-2.5 1.2-2.5 1.2v1.2s1-1.3 2.3-1.3m13.3 19.4c-1.3.6-2.7.6-2.7.6l.8-1.5c2.5-.8 3-2.4 3-2.4l-.2-.7s-.6 1.6-2.6 2.4c.4-1.2.7-3.2.7-3.2l-.7-.2s-1 1.3-2 1.6a8 8 0 0 0 .8-2.7l-.3-.5s-.7.6-1.7.8h-.6c.6-.8 1.7-3.2 1.7-3.2l-.2-.5s-.8 2.1-1.7 3.2l-.3.4c-1-.3-2.2-1-2.2-1l.1.3s.8.6 1.8 1l-1.3 1.2v1l3 .4c-1 1.6-2 2.1-2 2.1l.5.7s1.3 0 3.7-.6q-1 1.8-1.2 1.8c-.2 0 2.2.2 3.7-.6s2-1.6 2-1.6l-.4-.4s-.4 1-1.7 1.6m-6.9-4 1.2-1.5c1.6.3 2-.1 2-.1s.3.8-.6 2.3c-1.1 0-2.6-.8-2.6-.8zm1.4 3 1.3-1.6.3-.3c1.5 0 2.3-1.3 2.3-1.3s.2 1.2-.5 2.7c-1.9.7-3.4.5-3.4.5m-1.9-9.8c1.5 0 3.3.7 3.3.7l-.2-.7-2.9-.6a4 4 0 0 1 1.6-1.6l-.5-.3s-.6.1-1.4 1.5l-.2.4h-.3a5 5 0 0 0-2.4.7l.2.4s1.1-.5 2.3-.5l-.7 2.4.3.6zm-3-6.2-.3-.7s-1.5-.6-2.7 0c-1.1.5-2 1.9-2 1.9l.5.9s.8-1.5 1.9-1.9 2.6-.2 2.6-.2m3 2.4-1-.6s-1.7.5-2.2 1.1-1.1 2.1-1 2.5q.5.7.7.7c.2 0 .3-1.5 1.1-2.3s2.4-1.4 2.4-1.4m-3.9-.5a5 5 0 0 1 2-1l-.7-.5s-1.5.2-2.2.9-1.8 2.1-1.8 2.1l.9.9s1.2-1.8 1.8-2.4m5.2-44.7c.8-1 1.6-1 1.9-1h.6l-.8 2.5c-.2 1-.7 1.2-1 1.9s-1.1 1.8-1.2 2.8q.1 1.5.5 1.7c.3.1.8-.4.7-.7 0-.3-.3 0-.4 0q-.2 0-.3-.9c-.1-.6.7-2.2 1-2.8s1-1.1 1-2l.7-2.5q0-.1-1.3-.3-1.1 0-1.9 1.2c-.4.6-1.7 1.1-1.7 1.1s1.4 0 2.2-1"/>
|
||||
<path fill="#78732e" d="M285.2 194.5h-2.5l.7 2zm-3-.1-.5-.4-.3-.3-.9.5-.5 1.9.3.3 2-2zm-.3 5-1.8-2.7-1 2.2.5.2 1.2.2h1.1zm7.4 44.7a9 9 0 0 1-4.8 1.5 7 7 0 0 1-3.4-1 4 4 0 0 1-1.5-1.7q-.8-1.7-1-4-.3-2-1.1-3.6c-.8-1.3-2.4-2.1-3.8-3.3a7 7 0 0 1-2.8-5.2v-.8q.1-2.5 1-4.5c.9-2 1.2-2.5 1.2-3.5v-.5q-.6-1.1-1.5-1.9c-.9-.8-1.2-.8-1.2-.8l-1-.2-.1.3 1 .2v-.1.1l1.3 1q.9.7 1.1 1.5v.4q-.1 1.4-1 3.3a12 12 0 0 0-1.2 4.7v.8a8 8 0 0 0 3 5.5c1.5 1.1 3 2 3.7 3.2q1 1.9 1.3 5 .3 1.3.8 2.5c.5 1.2.9 1.5 1.6 2a7 7 0 0 0 3.7 1c2.7 0 4.9-1.6 4.9-1.6z"/>
|
||||
<path fill="#78732e" d="m287.2 239.2-1.3.4q-.8 0-1.7-.8a4 4 0 0 1-1.2-2.3q-.1-1.3-1-3.3c-.5-1.5-2-2.6-3.5-3.7-1.3-1.1-2.6-2.2-2.9-3.4v-.7q.1-1.5.8-3.1a11 11 0 0 0 .9-4.8c-.2-2-1.7-3.5-3.2-4.5l-2.8-1.4-.1.3h.2c.5.3 1.8.9 3 1.8q2.1 1.4 2.6 3.8v.8q0 2.2-.9 3.9c-.9 1.7-.9 2.2-.9 3.2l.1.8c.3 1.3 1.6 2.4 3 3.6 1.5 1 3 2.2 3.5 3.5q.8 2 .9 3.2.1 1.4 1.2 2.5 1 1 2 .9l1.4-.4z"/>
|
||||
<path fill="#a8ac71" d="M296.4 231.6s1.7.4 1.6 1.8a13 13 0 0 1-.8 3.4l-2.4-2.2 1.3-1.2.5-.7z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M266.4 214.5s-1.7.6-2.1-.1c-.4-.8-.2-1.4-.2-1.5s-1-.3-1-1.3c.1-1 1.4-.9 1.6-.9s.4-1.5 1.3-1.4c.8 0 1.2 1 1.2 1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M268.3 215s-1.5.8-2 0c-.4-.7 0-1.6-.1-1.8-.2-.1-1-.4-.9-1.3.2-.9 1.1-.6 1.4-.8.3-.1.6-1.4 1.5-1.2.9.3 1 1 1 1l-1 4.1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M270.8 215.3s-.5 1-1.5.8-.7-1.7-.9-2c-.1-.3-.9-.5-.8-1.4.2-1 1.1-.9 1.5-1s.7-1.6 1.4-1.4 1.3 1.1 1.2 1.5c0 0-1.5.5-1.7 1.5s.8 2 .8 2z"/>
|
||||
<path fill="#af7029" d="m293.7 231.2-2.2-2.6c-.9-1.3-2.3-2.7-2.3-2.7l-2.2-1.1-1.4-2.4-.2-2.8.6-1.6.8-1.2s-4.6 1.7-2.2 10.5c1 3.8 3.5 4.3 3.5 4.3l4.3-.3h1.3z"/>
|
||||
<path fill="#816c2a" d="M291.6 201.7q.5 0 .8.4l.2.6v.4c-1.6 3.4-4.8 5-7.8 7a14 14 0 0 0-3.8 4 12 12 0 0 0-1.6 6.8c.1 5 2 7.8 4.2 9.3a10 10 0 0 0 5.2 1.5h.4l1.4-.1 3-.2 1.8.1.9.4.2.5q0 .6-.6 1.2l-1 .7.2.3 1-.8q.6-.6.7-1.4 0-.3-.3-.7t-1.1-.5l-1.8-.1c-2 0-4.5.3-4.5.3v.2-.2h-.3a9 9 0 0 1-5-1.5c-2.1-1.4-4-4-4-9v-.4q0-4 1.5-6.3c1.4-2.4 3.7-3.8 6-5.3a14 14 0 0 0 5.5-5.7v-.5q0-.4-.2-.8t-1-.5z"/>
|
||||
<path fill="#fff" d="M297.8 232.7s-1 2-1.4 2c-.2 0 1 .3 1.3.8l-.3.5s-1.2-.9-2-1v-.6l1.1-.7a4 4 0 0 0 .9-1.7z"/>
|
||||
<path fill="#fcca3d" d="m302 234-2.7.8-1.3-1s0-1-.5-1.5l-1.6-1c-.6-.2-2.5-.2-2.5-.2l-5-5.3 2 .2 2.8-.4 2.7-.2 1.4.2 1.6.4.8.7.8.8.8 1.3.6 1.6.2 1.7v1.9z"/>
|
||||
<path fill="#af7029" d="M302.2 233.8s-1 .3-2.2.3q-2-.1-2-.2l-.2.9q-.4 1.3-.5 1.3v3.2l2.6.5 1.4-.5.7-3.5z"/>
|
||||
<path fill="#fcca3d" d="M301.5 232.5v1.2l.6.2v-1.2zm-2.5-30-.3-2.1-.8-1.5-1.1-1.5-1.2-1.3-.6-.5-.3-.5-2.9.2-1.4 1.7s3.8 2.8 5.3 5.8a7 7 0 0 1 2.8 1.7l.1-.2z"/>
|
||||
<path fill="#af7029" d="M296.3 205q-.2 3.1-.8 3.7l1.8-2 1.2-2.2a7 7 0 0 0-2.8-1.7q.6 1 .6 2.1z"/>
|
||||
<path fill="#816c2a" d="m300.3 237.9-1.4-1.6q-1.1-1-1.3-1l-.2.4h.1l1.2.8 1.3 1.6z"/>
|
||||
<path fill="#6f5b24" d="M302 235.5s-.3 1-1.3 1.8c-1 1-2.2 1.5-2.2 1.5l2.8 1 1.9-1.7z"/>
|
||||
<path fill="#404118" d="m302.4 237.8-.2.3-.5.5-.4.5.6-3 .6 1v.4z"/>
|
||||
<path fill="none" stroke="#78732e" stroke-width=".2" d="M285.8 199.3s-3.8.3-6.5-.1-2-7.3-2.1-7.5c0-.2-1.6-1.8-1.4-3.3s5.2-5.5 5.8-5.8c.5-.1 1.5.3 1.5.3s1.2-1.2 1.6-1.2.9.7.8 1c-.2.3-1.9 1.3-2 2-.2.8 0 1.5-.5 2.3s-1.4 1.7-1.5 2.4-.4 1.1 0 1.4 2.1 0 3.5-.6 2-1.5 2.1-1.4c.2 0-.8 1.7-2.3 2.4s-2.5 1.3-3.3 1.2c0 0-.8 2 1.8 2.2 2.6 0 4-.6 4-.6z"/>
|
||||
<path fill="#ab6d29" stroke="#4d2a15" stroke-width=".4" d="M318.7 170.6s-7-1.3-7 4.5c.1 1.9.5 2.5 2 3 1.5.3 4.4.5 7 2.7s2.7 4 2.7 5.3c0 1.4-.7 2.6-.7 2.6l1.6 7.7 1.6 5.7 4.8-2.7 2.8-8.5-3.6-15.2z"/>
|
||||
<path fill="#4d2a15" d="M325.6 200s2.5-1 3-3c.3-.5-2.4-2.9-2.4-2.9-.1 0 1.3.7 2 1.3q1 1 1.3.8c.2-.1 1.3-2.7.9-3.3s-1.1-2-2.1-2.6-2.4-.6-2.4-.6 1.9-.6 2.8 0c1 .5 1 1 1.1.9.1-.3-.2-2.9-.6-3.7q-.4-1.3-2-1.6c-1.1-.2-2.3-.1-2.3-.1s1.6-.9 2.8-.6c1.3.3 1.3 1 1.4.8s-.6-2.4-1-3a7 7 0 0 0-2.1-1.8l-1.8-.2h-.6s1-.6 2.1-.5 1.3.5 1.4.4q.3 0-.8-.7c-1.1-.7-4.2-2-4.2-2h-3.3s0-.8 1-1q1.3 0 1-.1c0-.3-2.6-.8-2.6-.8H316l-3 .3s.2-.5.7-.9q.6-.5 1.3-.6c1-.3-.6-1.1-.6-1.1l.9-1.3 3.9.3 8.2 4.8 3.9 3.3 2.4 6.2-.7 10.8-5.5 4.5-2.4.3z"/>
|
||||
<path fill="#d2a567" d="M318.4 173.3s-.2-.7-.2-1.7.2-.9.2-.9-2.7-.3-4.6 1.2-.8 4.1-.8 4.1.8-.8 1.9-1.2 3-.3 3-.3c.2-.2-.4-1-1.1-1.1s-2.1-.2-2.1-.2.8-.5 2.2-.4 1.6.5 1.6.5z"/>
|
||||
<path fill="#8f4620" d="m326.7 200.9-1.8.6 1 7.5 7.2 12.1 3.7-.6 1.3-2.3 1 .5c.4.4 1.8 2.8 3 3.3s1.7.2 2.7 1c1 1 4.9 6.6 5 6.8.3.2-.1-2.4-.1-2.4l-1.2-3.4-1.4-2.4-.3-.6h2l1.2.8 2 1.5.9 1.2.5 1.2.2 1 .5 1.6 1 2.3 1.3 2.1.4-.9-.6-2.5-2-6-1-2 1.9 1.2c.4.1 1.8 2.2 1.8 2.2l.9 2.2.6 2 .4 1.7.7 1.9 1-.7-.1-1.3-1-4.2-.4-4.5s.6 0 1.2.7l1.2 2.3.5 4.1.7 3.8 1.2 3.8 1.2 2.4.9 1.3v-2l-1.6-16 .2-.6s.2-.1.8.7c.5.7 1 1.9 1 1.9l.5 2.5.2 1.7.3 3.3.5 3.5 1.6 3.8.9 2 .5-2.4-.8-17.1.4-.5s.9.7 1.2 1.3l.8 1 .6 3.8.4 10.7.4 2.8 3.2-28.2 2-.4.2-.6-1.5-1-3.2-5-2.1-4.9-3.8-7-6.6-8-5.2-4.3-1.9-1.3.4-1 1-1.7-.1-.1h-.9l-2.2.4-2.2-.7-4.4-3-4.6-2.3-2.8-1-6.6-1.6-6.6-1h-3l-2.6.5s-1.4.6-1.8 1.5-.5 1.4-.4 2.6c.2 1.3 1 1.9 2.8 2.7 1.8.7 6.2 3.6 6.2 3.6l2 2.1.8 1 .2.8 1.4 11.1-2.8 6z"/>
|
||||
<path fill="#ab6d29" d="M333.8 218.2s1.2 2 2.9.5c1.7-1.6-.8-6-.7-6.3 0-.3.7-.3.7-.3l1.3 2.2s.7 1.3.4 3.2-2.1 3.7-2.1 3.7l-2.2-.5z"/>
|
||||
<path fill="#4d2a15" d="m375.3 244.2-1.6-4.5-.4-3.5c0-.6-.3-7.9-.5-9.3 0-1.4 0-3-.2-3.1l-1.6-2.2-.7-.7.5-.3s.6.6.7.3q.3-.7-.6-4.5c-.7-2.5-3.9-8.3-3.9-8.3l.4.2.9 1 1.8 1.5 4.1 1.5 2.2.3 1.4 2.9s1 4.9 1 7.4q.2 3.4-1.2 7c-1 2.4-1.2 10.3-1.3 11.5-.1 1.3-.6 2.5-.6 2.5l-.5.3z"/>
|
||||
<path fill="#8f4620" d="M375.3 231.2s.8-1 1.2-2.4.5-12.4-.8-13.7a10 10 0 0 0-4-2.3c-.2 0 1 3.5 1 3.5l.8 1.4.6 1.8c.1 1 .9 3.1 1 6z"/>
|
||||
<path fill="#4d2a15" d="M369.3 238s.5-5.1.3-9c-.3-3.7-.6-4.2-1-4.9a32 32 0 0 1-2.5-6.3c-.9-3.2-1.5-5.6-2-6.2s-1.7-2-2-1.6-.3 1.1-.3 1.1l-1.5-.4-.4-1 .5-1.6v-.7l-.3-1.1 2 1.6 4.2 2.8 2 8.6 2 5.3.2 9-.2 8-1-3.5zm2.4-24.7s1 1 1.7 1.4 1.8 1.1 1.6 1.2l-2-.8-1.2-.8v-1z"/>
|
||||
<path fill="#4d2a15" d="M363.7 236s.8-1.8.7-4.1a49 49 0 0 0-1.6-8.6c-.4-.7-2-1.7-3.5-4.8s-1.3-3.8-2.3-5c-1-1-2-2.4-2-2.4l.3-3.3 3.6 1.8 1.6.8 1.8 8.7 1.6 2.5.7 3.5.9 8 .4 6.6-.2.5zm-4.2-3.7s.1-2.5-.5-4.8q-.9-3.5-1.9-4.8c-.7-.7-2.5-2.6-4.1-5-1.6-2.5-3.9-5-3.9-5v-3.3l2 1.5 2.4 1.2 1 3.7 1.2 2.7 1.8 2.4 1.2 1.1.7 4 .4 2.3 1 3.2-.4 1.7zm-3 0-1-.9s.6-.6.3-2q-.4-1.8-1.2-3.7-.7-1.8-1-2.3l-4.5-4c-1-1-2.7-2.6-3.7-3.3q-1.7-.8-1.8-.8l-.5-4s1.3 1.8 2.1 2l2.1.8 2.8 5 1 1.3 2.6 2 1 2.2.9 2.5 1 3.4.1 2zm-5.5-1s-1.7-2-2-3.2c-.2-1.2.2-1.2-.3-2.6s-2.3-3.5-3.7-4.6c-1.4-1.2-3.4-2.8-3.3-3.8q.3-1.2.4-1l.8.8 4.5 4.7 1.4 2.5 1 3.1.7 1.5.7 1.8zm16-23.3s3.1 3.8 4 .3c.3-1.6-1.2-4.6-1.2-4.6s-2.8-5-3.8-6.2l-5.7-7.3-3.5-1.6 1.2 2s2.6 2.6 5.9 8.4c3.3 5.7 2.7 8.9 2.7 8.9zm-17.8-23s6.1 5.2 10 10.8 5.5 9.4 4.7 10.2c-1 .7-3.4-.4-4.4-2s-1.8-4.4-5.5-8.6-5.5-4.8-5.5-4.8l-2.7-4.3zm-3.2 12.5s3.6 3 6 5.4l3.4 4.2 1.4 1.4s-.9-1.5-.4-2 1.1-.3 1.1-.3l-11.5-12zm-.7.3s1.2 2.3 3 4.1l4.1 4 .8 2.9s-5.2-4-5.2-3 1.2 3 1.2 3l-1.6-1-2.2-3.1-1.3-2.8-1.5-3.8z"/>
|
||||
<path fill="#4d2a15" d="M329.5 210.2s2.7 2.4 4.2 0c1.5-2.3.3-5 .3-5s3.9 5.6 5 .3c.2-1-2.4-4.6-2.4-4.6l1-.9 1.9 3.3s1.8-.8 1.8-3-1.9-5.3-1.9-5.3l1.8 2s3.6 0 3.7-2c0-2.2-3-4.5-3-4.5s2.4.1 2.4-1.3-3.4-2.4-3.4-3.3 1-2.4 2.5-1.5 3.5 1.4 4.4-.2c.8-1.6-.1-2-.1-2l-2.1-.4-3.4-1.8-2.7-1-2.8-.4 1 2 .8 5.8v2.6l.5 5.8-1.4 4.7-.7.9-.5.6-1.2 2.6-1.6 1.8-2.2 2.7z"/>
|
||||
<path fill="#ab6d29" d="M348.8 220.9s-.7-1.7-2.2-2.9a8 8 0 0 0-3.8-1.2l4 4.2zm5.6 1s-1.3-2.6-2.8-4.2-2.5-3.6-3-3.6h-.6l.4 3.3 2.7 2.7s2.6 2 3.3 1.8m4.6-.2s-.6-3-2.2-6c-1.5-2.8-3.1-4-3.1-4l.4 3 1.2 3 2 3zm3.8-1.7s1-6.2 0-8c-.9-1.6-2.7-2-2.7-2l-.6 1 .6 4.3 1.5 3.4zm3.7-10.3s.9.4 2 2.5a40 40 0 0 1 2.6 8.6c0 .3-.5.2-.7.2-.2-.1-3.9-6-3.9-6l-.6-5.4z"/>
|
||||
<path fill="#d2a567" d="M340.4 216.8s2-.4 2-1c0-.8-2.4-2.2-2.2-3.3 0-.5 2 .1 2.1-.3s-2-3.6-1.3-4.4 2.4 3.5 2.4 3.5 1 2 .7 3.2c-1.2 3.6-3.7 2.3-3.7 2.3m4.6-4.4c.1-.3 3.1.4 3.1.2.2-.7-2.7-3-2.7-3s-.6-1.2-.4-1.4 2 .2 2 0c.2-.3-2-3.2-2-3.7s.6 0 .6 0 1.7 1.7 2.6 3.2c1 1.4 1.8 2.6 1.5 4.9-.4 2.5-5 .6-4.7-.2m13.6-4.6s-.5-2-.2-2.3l1.1-.5s-1.6-1-2.4-1q-.9-.2-1 0c-.2.4 1.3 2.4 1.3 2.4z"/>
|
||||
<path fill="#d2a567" d="M349.4 209.4s4.7 1.2 4.9.8-3.7-4-3.7-4-.3-.6-.2-.8 1.7-.3 2.2.1 0 1.2.1 1.5c.2.3 1.7 2.5 2 2.1.2-.3-.4-3-.3-3.3s1.8 1.6 2.3 1.9 3 2.3 3.3 1.4c.3-1 .4-1.1.3-1.7 0-.6.9 2.6-.3 3s-2.6-.4-2.6-.4l-1.1-.8-.6-.7s.7 2.5-.2 2.7-1.7.2-1.7.2l-2-.2zm10.7-3.2s5 3 5.4 2.5-1.2-7.5-1-8.2c.3-.6 4 7.9 2.2 9-1.4 1-2 .3-2 .3l-2.5-1.3zm13.8 12.6 1 .5.7.2-1.4.2-.3-1zm-4.8-16.4.7.3.7.3s-.4.3-.6.2h-.4zm-1.4-2.5s.5.3 1.1-.2q.9-.7.6-1c0-.2-1-.2-1.4-.5q-.4-.4-.3-.6h-1.1l-.4.1zm4.3 14.4s1.5 1 2 1 1.1.5 1 .6c0 .1-1.2.2-1.8-.1q-.8-.3-.7-.1zm-8.1-22.5h.6q.5-.1.6 0c.2.2 0 1.2-.3 1.5l-1 .5-1.6-2.2zm-7.1-6.4h1.5q.8 0 1.5.6c.4.3.9 3.3.6 3.8-.2.6-3.6-2-3.7-2.1 0-.3-1.5-2.5-1.5-2.5zm-3.2-1.4s2.5.2 2.2-1.3a3 3 0 0 0-1.3-2.3l-2.9 2.1zm-6.5-2.8s.7.4 1.4 0c.7-.2 2.6-2.7 4-3s1.7-.3 2 0c.2.4 0 1.8-.2 2.2s-4.4 2-4.4 2l-1.5-.1-1.3-.5zm-.7-4.5c-.7-1.4-1.7-2-2.2-1.9-.4.1 1.4 1.5 1.7 3.5q.3 3.1.2 3.4l.8.1.2-.7.1-.5v-.5l-.1-1-.2-.9-.2-.6zm-5.8-2a15 15 0 0 0-5.5-3.7c-.2 0 4 2.5 5 4 .9 1.7.9 3.9 1.3 4.2s.8-.2.9-.2.3-.5.2-.7l-.2-1-.7-1-.4-.8zm-5.5-2.3c-2.4-2-6.6-3-10-3-3.5-.2-5.3.2-4.8 2s2 2.8 5 2.8c2.9 0 3.6-.3 5.2.2a10 10 0 0 1 3.6 2c.5.5-1.1-1.5-2.6-2.6q-2.4-1.7-2.5-1.7c-.1 0-.3-.7 1.7-.4s4.7 1.6 5.5 3.3.6 2.6.6 3 .7-.2.7-.2l.3-.9s0-.6-.3-1.4c-.4-.7-.5-1-1.4-2-.9-1.1-1-1-1-1zm-9.6 28.5c1.5 0 4.8-2.8 5.2-6.7s-1.9-11.9-2.5-12.7c-.5-.9 1-.4 1.7.4a25 25 0 0 1 2.5 10.6c0 4.2-.8 5.3-3 7.5-2.2 2-4 1.8-4 1.8zm5.1 11.6s.7 1 1.6.6c1.5-.5 3.8-1.7 3.8-3.8 0-1.4-1.8-2.7-1.9-3.2v-1l1.6.4.5 2.2s.6.7 1.3.4c.6-.2 2.5-1.6 2.2-3-.3-1.2-2-2.9-2.2-3.5q-.1-1.1 0-1.2l1.6.2.4 2s.4.6 1.3.4 2.4-1.7 2-2.5l-1.5-2.6v-.9l.5.4s.6.2 1.8-.1c1.1-.4 2.3-1.2 2.3-2s-1-1.6-1-2v-.6h.8l1 1.2.1 1.4-.3 1.2-1.4 1.6-1.4.6h-.4l.8 1.4-.2 2-1.3 1.2-1.7 1-.1 1.9-1 2-2 1.2h-.7l-.2 1.2-1.4 2-2.3 1.5-1.7.3-1-1.4z"/>
|
||||
<path fill="#d2a567" d="M343.4 191.4s4 1.1 3.8-1.4c0-1.3-3.8-4.5-4-5s-.2-1.3-.2-1.3l1.9 1.8s2.5.6 3.2-.9c.7-1.4.1-2.3 0-2.3l.6-.1 1.1.2-.1 2.2-1.3 5.5s.3 2.2-1.4 2.3c-1.7.2-3.6-1-3.6-1m3.7 29.5s0-1.1-.8-2c-.9-.7-2.5-1.4-2.8-1.6l2.8 3.5zm5.6.2s-2-2.4-2.3-3.3c-.5-.8-1.5-2.6-2.3-2.7-.8 0 .8 3 .8 3l3.2 2.9zm5.4 0-2.1-4.2c-.4-.9-1.3-3.4-2.3-4.1s.1 1.1.1 1.1l1.1 3.3 1.9 2.9zm3.9-2.4s-.1-2.7-.5-4.6c-.3-1.8-1.7-3.4-1.8-3.3v3.3zm8.1 2-2-4.7c-.5-1.6-1.8-4.1-2-4.2l.4 3 1.7 4.7zm7-8.5s-1.2-1.2-3.9-2.3-5.4-1.2-5.4-1.2l.3.4 1.3 1 2.8 1.5 3.7.9 1.3-.3z"/>
|
||||
<path fill="#202020" d="M348.2 213.8s0 2.4 1.3 3.8c1.2 1.5 4 4 4.6 4.6s1 3.4 1.9 5.8 1 4.4 1.4 5.1 1.1 1.8.5 1.7q-.8-.2-1.4-1.7c-.3-.9-.2-.9-.2-2 0-1.3-1.8-7.5-2.7-8.1-.9-.7-4.8-4-6.4-6.3-1.5-2.3-1.2-2.8-1.2-2.8z"/>
|
||||
<path fill="#202020" d="M354.6 229.3q-1-2.7-1.2-4.3a16 16 0 0 0-4.4-4.2c-.6-.3-1.9 0-2.4-.3l-3.7-4s-.5.5-.3.6c.1.1 3.4 3.7 4.6 4.8 1.2 1.2 1.9 3.7 2.7 5.7s.5 1.6.6 2.5q.3 1.5 1.3 1.5t.6-.4a10 10 0 0 1-2.2-3.5c-.7-1.7-1.5-4.9-2.5-6l-.3-.3 1.3-.2c.8 0 4.1 3 4.4 4 .3.8 0 1.2 1.4 4.2s2 3.7 2 3.7h.2s-1.2-2-2-3.8zm-5.2-19.9s2.5 1.5 3.2 1.7l1.2.3s.4 4.4 2.1 6.8c1.8 2.5 3.2 3.4 3.2 3.4s0 4.8 1.4 8 1.5 7.3 1.2 8c-.3.6-1.4-2-2-4.3l-2-6.2a13 13 0 0 0-2.5-4.4c-.8-.7-.2-.6.3-.2s1.7 2 2.5 4.5 1.1 5 1.5 5q.8 0 .8-.9c0-.4-.6-1.8-1-4.1a17 17 0 0 0-1.2-4.7c-.4-.6-1-.7-2.4-3.4a20 20 0 0 1-2.5-5.3c-.2-1.2 0-1-.2-1.3-.2-.1-.4 0-1.6-.6-1.1-.6-2-2.3-2-2.3"/>
|
||||
<path fill="#202020" d="M355.7 208.5s1.4 1.2 2.3 1.5 2 .4 2 .4-.3 4.2 1.3 6.9 3.3 4.2 3.3 4.2.3 1 .8 6.8l.7 8.3c.1 2.3.2 10.6-.1 10.3-1.3-1-.2-5.4-.9-7.3s-1.6-2.1-2.8-7.4c-1.2-5.2-.4-6.4-1.3-8.3s-2-2.2-2-2.2 1.6.4 2.3 2 .7 6 1.3 8.2c1.2 4.9 2.9 7.4 2.9 7.4s-.4-6.2-.8-9.7-.5-6.4-1.1-7.7c-.7-1.4-2.1-2.4-3-4.2s-1.1-5.3-1.5-6.2-.6-.6-1.2-.8c-2-.8-2.2-2.2-2.2-2.2"/>
|
||||
<path fill="#202020" d="M360.1 206.2s1.3 1.5 3.1 2.6c1.8 1 2.8.7 3 1 .3.2-.3 3.8 1.6 7.2s2.6 3.5 2.6 4l.6 13.9c.3 3.4.5 14.8-.9 14.8s-.1-8.5-.8-10.4-.7-1.4-1.3-3-.7-7.8-1.8-11.5c-.8-2.8-1.6-3.2-1.6-3.2s1.4.7 2 3 .8 10 1.5 11.1c.8 1.3 1.8 2.8 2 4a157 157 0 0 0-.4-15.6c-.3-1-3.5-6.6-3.7-9.7-.3-3.2-.4-3.5-.7-3.7s-1.1 0-2.6-1.5c-1.5-1.4-2.6-3-2.6-3"/>
|
||||
<path fill="#202020" d="M367.3 208c0-.3 1 1.7 3.7 2.8 2.9 1.2 5.6 1 6 1.3.3.3 2 4.5 2.1 10.2s-1 5.1-1.8 10-1 14.8-1.5 16.3c-.2.5-.5.8-.8 1.7-.3 1 .2 2.8-.7 2.8s-1-1.4-1-2.1 1-3.5 1-6.2-.6-3-1-6.2-.4-13.5-.8-14.5c-.3-1-2.1-3.1-2.1-3.1s1.9 1.2 2.4 2.6c.4 1.3.5 12.7 1 15s.3-.5.5-1.8.9-7 .8-10-1.4-9.4-2.4-10.5q.1 0 1.1 2 .1.3.8.7l1 .5s-.6 0-1-.3q-.6-.3-.6-.4a24 24 0 0 1 1.3 8c.1 5.2-.7 16.4.1 16.5s.7-6 1.5-11.2c.8-5 2-5.8 1.6-9.9s-1.4-8.6-2.3-9.2-3.4-.3-5.6-1.8c-2.2-1.4-3.4-2.9-3.3-3.2m-35.8 5.7s.8.4 1.7 0c1-.5 3.5-2.5 3.5-3.3v-1.6s0 .3.7.4c.8.1 2.8-1.4 3-2.4a8 8 0 0 0-.1-3.1c-.2-.4.6.3 1 0 .4-.4 2.4-1.7 2.4-3s-1.1-2.6-1.1-2.6 1 .2 1.6 0c.5-.1 2.5-1.3 2.4-2.4 0-1.2-.7-3-2.3-3.2 0 0 1.2.3 2.3-.1q1.5-.5 1.5-2.3c0-1.2-2.3-4-2.6-4.2s2.4.8 3-.3q1.1-1.6.7-2.5c-.2-.7-.8-.8-.8-.8s1.2.3 2.8-.5 3-2 3.8-1.9c.8 0-2.3 1.7-2.5 2.6q.1.6 2.3 2 0 .1.2.3c.7.3 3 .4 3.3.5.2.2-2.4.1-2.2.3a34 34 0 0 1 5.7 5.4q.2.2 1 .5l1.3.3h-1.6l3.3 4.7q0 .3.9.8.9.2 1.1.2c.1.2-1.4 0-1.3.2l3.3 6s-3-5.3-6.7-9.5-4.7-4.7-4.8-4.4c-.2.4 2.7 4.1 4.3 6.7s3 5.9 3 5.9-3.7-7.8-9-12.6-5.8-5.5-6.3-5.4c-.6.2-1 3.8-.7 4.5s4.2 3.6 7.4 7.5c3.3 3.8 7.5 10.4 7.5 10.4s-3-4.7-8-10-6.9-6.6-7.3-6.5-.4 1-1 1.8c-.6.7-1.8.6-1.8 1s4.2 4.3 5 4.7c.9.5 1.4.3 2 .6l1.4 1-1.6-.5q-1.1-.4-1.3 0a21 21 0 0 0 4 4.6c.6.3 1 .1 1.7.4.8.3 2 1.1 2 1.1s-1.3-.7-2.1-.8q-1.3-.2-1.2.2c.1.4 2.6 3.6 2.5 3.6s-4-4.6-7.3-7.5-4.8-3.6-5-3.5 0 1-.9 1.3q-1.4.3-1.5.7c0 .3 3 3 5 5.4l4 4.5-4.5-4.3q-3.4-3.1-3.8-3c-.2.2-.2 1.3 0 1.6s4.6 5.4 4.4 5.5c-.1.2-5-6-5.4-6-.3 0-.5.7-.8 1s-1.8.4-1.8 1c0 .4 7 7.3 6.9 7.5 0 0-5.8-5-6-4.7s2.4 5 2.2 5.2c-.1 0-3.4-5-3.7-5s-.2.6-1 1.3c-1 .8-2 .4-2 .8 0 .3 4.8 5.7 4.7 5.8-.2.1-5-5.1-5-4.8q-.3 0-.2.7c.3 1.3 1.4 3.6 1.3 3.8 0 0-1.6-3.2-2-3-.4 0-.4.7-1.2 1.1s-1.3.4-1.3.7.8 1 1.2 1.7.7 2.4.7 2.4-.5-1.4-1.1-2.3q-1-1.4-1.9-1.5c-.9-.1-.8.5-.8.5z"/>
|
||||
<path fill="#202020" d="M377 212s1.5 0 1.7-.4c.2-.3-.6 0-2-1.6s-5-12.1-9-17.4c-6.6-8.7-12.7-12.7-12.7-12.7s7.3 4.2 13 12.4c5.6 8.4 7 14.9 8.6 16.6s3.2 2 3 2.5q0 .7-.9 1l-2 .1zm-48-2.2.3.1c.3 0 2.3-1.9 2.2-2.5 0 0-1-.3-1.6-1-.7-.8-.9-1.9-.9-1.9s.7 1.3 1.2 1.6q1 .7 1.8.3c.3-.2 3.2-2.4 3-3.2 0 0-.9 0-1.8-.6s-1-2-1-2 .6 1.1 1.5 1.5q1.4.5 2 0c.2-.3 2-3 1.8-3.7 0 0-1 0-1.8-.5s-1.3-2.2-1.3-2.2.6 1.3 1.7 1.5c1.1.3 2-.4 2.2-1.2s.8-3.7-.2-4.5c0 0-1.4.5-2.4 0s-1.4-1.9-1.4-1.9.9 1.2 2 1.4q1.7 0 1.9-1a6 6 0 0 0-.1-3c-.4-1-1.1-.8-1.3-2.2 0 0-.3.5-1.8.5s-2.3-1.6-2.3-1.6 1.2 1 2.4 1a2 2 0 0 0 1.6-1.9c0-.7-.6-1.4-1-2.1-.2-.8-.3-1.7-.5-1.6s-.5.8-2 .6-1.8-1.3-1.8-1.3 1 .7 2 .7q1.3-.1 1.3-1c0-.6-.3-1.7-2.2-3.3l-3.5-2.7a22 22 0 0 0 6.6 5.3s1.7.6 2 0q.3-.9-.5-2.4c-.5-1-2-2.6-2-2.6s1.6 1.3 2.3 2.7c.8 1.3.4 2.2.5 2.6s3.3 1.6 4 1.1q1-.8-.2-2.3l-1-1.8s.7.8 1.2 1.8q1 1.5.8 2.1-.4.7-.6.9l2.3 1.3c1 .6 2.3 1 2.5.8q.3-.6.2-2.2c-.1-1-.7-2.7-.7-2.7s.7 1.6.8 2.7-.1 2 .1 2.4 1.1.5 1.1.5-.6.4-2 0c-1.5-.4-7.7-3.6-8-3.3s2.9 2.3 4.3 3.7c1.5 1.3 2.2 2.8 2.2 2.8s-1.1-1-2.2-1.6-4.4-2.3-4.7-2 1.3.5 1.4.7c.1.3-1 1.3-1 1.8s4.7 3.7 4.5 4c-.1.4-1.2 1.3-1.4 1.2-.1 0-2.5-1.8-2.5-1.6s1.4 1.5 1.4 1.7c0 .3-1 .8-.8 1.4s2.6 2.6 2.6 3.3-1.4 1.3-1.1 1.7l1.5 2s-1.4-.9-1.8-1.4-1.3-1.5-1.5-1.3-1 2-1 2.5c.2.4 1.3 1 1.5 2.3.2 1.1-.2 2.4-.3 2.4s-1.6-2-2-2.1q-.4 0-.9.6c-.5.6-1.2 2.1-1 2.4 0 .3 1.6.7 1.6 1.9a3 3 0 0 1-1 2.3l-2.1-2.4c-.2 0-2.2 2.3-2.3 2.6 0 .2 1.4 1.3 1.2 1.7-.3.4-1.3-.2-1.8.1l-1.7.7c-.2 0-.5-.6-.5-.6"/>
|
||||
<path fill="#202020" d="m355 180 .5-1c.3-.3 1.5-1.7 1-2-.4-.2-2 .3-3 .2s-1.7.2-4.6-2.3c0 0-9.3-6.4-23.6-7.3-4.6-.2-6.6 1.4-6.8 2.2 0 .2 1.2-1.8 5.7-1.7 2 0 16.5 1.1 24 7 .4.3 2.9 2.7 5.2 2.4 2.3-.2 2.8-.5 2.7-.2 0 .4-.7 1.2-.9 1.6l-.3 1.1zm-25 2v-.2c-.2-.4-1.1-1.7-2.7-3.1a37 37 0 0 0-8-4.3c-.3-.1 6 2.9 7.7 4.5z"/>
|
||||
<path fill="#d2a567" d="M330 192.2s-.4-.6-1.7-1.4l-2.5-1.1 3 .7a5 5 0 0 1 1.1 1.8zm-.8-5.3s-.4-.6-2.1-1.2-2.2-.5-2.2-.5 1.6-.7 2.8 0a3 3 0 0 1 1.5 1.6zm-1-4.5s-.4-.8-2-1.3q-2.4-.8-2.6-.7c-.2.1 1.6-.4 3.2.2 1.5.6 1.4 1.8 1.4 1.8m-2-2.8s-.4-.6-3.3-1.3c-3-.7-4-.7-4-.7s4.1-.4 5.2.1 2.2 1.9 2.2 1.9zm-5.3-3s-1.8-.6-3.5-.7-4.4.1-4.4.1 5-.8 6.3-.5c1.4.3 1.6 1 1.6 1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M304.5 238.4s.9 1.6 2.6 1.6c1.8.1 3.1 2.6 3.1 2.6l-1.9 1.9-4.6.2-1.5-2.4zm0-1.6c.2-.3-1.3-3.3-2.4-3.8s.4 1 .2 1.6-.4 1.4-.3 1.5c0 0 .9 1.4.4 2-.4.5 2.2-1.3 2.2-1.3z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M303.8 241.4s.8.4 1.4.2c.7-.2 1.3-.9 1.3-.9m-3.6-.5s2.6-1.9 2.4-2.9-.7-1-1-.9a7 7 0 0 0-2.1 1.7c-.1.3.7 2.1.7 2.1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M301 241.5s.6 1.3 1.4 1.3 2-.7 2-1.2c.1-.5-.8-1.5-1.3-1.7-.6-.3-1.9.4-1.9.4z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M303.4 239.8c0 .4-1.7 1.2-2.3 1.2s-1.6-1.3-1.2-1.5l1.5-.4c.4-.2.5-.8.7-.8.3 0 1 .1 1.1.5q.4.6.2 1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M301.8 240.9s-2.6 3.4-3.7 3.3c-1-.2.5-5 .5-5l1.2.6q1.4.3 2 1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M297.2 238.4s3.3.6 3.4 1.1-1.5 1.3-2.5 1.3-.9-2.4-.9-2.4z"/>
|
||||
<path fill="#202220" d="M289 243.4s.5 1.6 1.9 1.7 2.8-1.5 2.8-1.5l-3.4-1.3z"/>
|
||||
<path fill="#4b4139" d="m289 243.4.4.9q.4.7 1.5.9h.1c1.4 0 2.7-1.6 2.7-1.6l-3.4-1.4zl1.3-1 3.3 1.3v-.1l-.2.2c-.4.4-1.4 1.2-2.4 1.2h-.1a2 2 0 0 1-1.4-.8l-.3-.6v-.1l-.1-.1z"/>
|
||||
<path fill="#202220" d="M290 243s.5 1.2 2.4 1.2 3.3-1.5 3.3-1.5l-3-2.3z"/>
|
||||
<path fill="#4b4139" d="M290 243s.5 1.2 2.4 1.3c2 0 3.4-1.5 3.4-1.5l-3-2.5-3 2.7zl2.8-2.5 2.9 2.3v-.1a5 5 0 0 1-3.2 1.4 3 3 0 0 1-2-.6l-.3-.4z"/>
|
||||
<path fill="#4b4139" d="M290.2 243.3s.9.6 1.8.7 2.2-.3 2.2-.3l-1.1.4-.8.1-.8-.1-.6-.3zv-.2z"/>
|
||||
<path fill="#202220" d="M292.4 241.6s.8 2 2.6 1.8c1.7-.2 1.7-1.2 1.7-1.2l-2-2.8z"/>
|
||||
<path fill="#4b4139" d="m292.4 241.6.5 1q.6.8 1.8 1l.3-.1q1.2-.2 1.5-.7t.3-.6l-2-3zl2.4-2.1 1.9 2.7c0 .2-.3 1-1.8 1.1h-.2a2 2 0 0 1-1.7-.8l-.4-.6v-.2z"/>
|
||||
<path fill="#4b4139" d="M292.6 242s1 1.3 2 1.3a3 3 0 0 0 1.5-.4v.1l-.5.3-.8.1h-.8l-.7-.5zm-3.2 2s.8.9 1.5.9a5 5 0 0 0 1.9-.6h.1l-.2.1-.8.4-.9.3-.7-.1-.6-.4-.3-.4z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M297 238.3c.8-.2 2.4 2 2.4 3.2s-.5 2.7-1.3 2.7-2.6-1.7-3-2.5q-.8-1.2-.5-1.9c.3-.4 2.4-1.5 2.4-1.5zm-8 .2s-1.4-1-1.9-.5-.3 2.3 0 2.6c.4.4 2-.8 2-.8z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M288.8 239.7s-1.8.2-1.8 1 .9 1.6 1 1.8c.2.1 1.8-.7 1.8-.7z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M289.5 241.1s-1.8.6-1.8 1.2.8 1.7 1.3 1.7 1-1 1.2-1.3c.3-.2-.7-1.6-.7-1.6zm.8-5.1s-.3-.5-1-.2c-.8.3-1.6 1-1.5 2.3.1 1.1.6 2 .6 2l2.7-1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M290.5 238s-2.2.8-2.3 1.7q0 1.4 1 2c.7 0 2.6-1.8 2.6-1.8z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M292.5 241.7s-2.2 1.5-2.5 1.5-1.2-1.2-1-2 1.7-1.3 2.3-1.6c.6-.2 1.2 2.1 1.2 2.1zm2-8.2s-.7-.6-2-.5-2.4 2-2.6 2.8c-.2.9 0 2.6.5 2.8.5.3 3.3-2 3.3-2l.8-3z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M291.8 240.3c-1-.1-1.8-1.5-1.7-2.3s2-2.2 3-2c1 .1.8 2.5.8 2.5s-1.2 1.9-2.1 1.8z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M294.7 240s-.4 1.2-1.4 1.7q-1.4.5-2-.7c-.6-.8.2-1.2.6-1.6.5-.4 1.7-.7 1.7-.7l1.1 1.4z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M293.2 237.2s-1 .8-.4 1.8 1 1.4 1.8 1.5q1.1.2 1.9-.9c.6-.7 1.5-1 1.4-2q-.1-1.4-1-1.8c-.5-.3-2.2 0-3.7 1.4z"/>
|
||||
<path fill="#202220" d="M296.2 233s-1-.5-1.9 0q-1.3.9-1.5 2.4l.2 2.3s1.2-.4 2-1q1-.8.8-1.1c0-.2-.4-.4-.4-1.2 0-1.4.8-1.5.8-1.5z"/>
|
||||
<path fill="#4b4139" d="M296.2 233s-1.2-.3-1.9.1a3 3 0 0 0-1.3 1.9q-.3 1.1-.1 1v-1.4q.6-1.3 1.6-1.7c.8-.3 1.7 0 1.7 0z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="m328.8 257 1.6-.8 2-1.2.4 2.2-1.8 1.4h-1.5l-.9-.7.2-1z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M326.4 257.2h1c1.1 0 1.2-.3 1.4-.3.2.1.5 1.3.5 1.3l-.4.7-1.5.9-1.3-.8-.1-1.8zm12.1-.8s-.3-.5-.9-1l-2.2-1.9v5l2.3-.1 1.1-1.5z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M326.4 257.2s-.4-.5-1.3-.4-2 .9-2.1 1.5 0 2.6.5 3q.7.6 2.2.3c1-.3 6.4-3.6 6.4-3.6l-1.4.3c-.7.2-1.4-.1-1.4-.1s-.7.8-1.6 1q-1-.2-1.2-.9z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="m330 258.9-1.2.5-1.3.6.4 1.6 2.3.5 1.4-1.1v-1.6l-1.7-.5zm10.4-1.2-.8-.8q-.8-.5-1-.5l-1.3 1.5v1l1.2.7.9.2 1.1-.8z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M332.6 257s-1 .4-1.5.8l-1.2 1c0 .2 1.1 1.4 1.1 1.4l1.2.1 2.5-1.7-.2-1.6zm9.5 2-.5-.7q-.7-.6-1.2-.6c-.3 0-1.3 1.5-1.3 1.5v.4l.8 1 1.6.5 1.1-1.2z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3" d="m338 260.8 1.2.2s0 .3.3.5.3 0 .3 0 .2 1.2 1.4 2c0 0 1.4.6 2 .2.8-.4.7 0 .7 0l2-2.4s0-.5-.5-.5c0 0 .4-1.6-1-2-1.2-.2-2.2.2-2.2.2s-1 1.8-1.6 1.6l-.8-.5-.7-.9s-.4.1-.9-.2-.9-1.1-.9-1.1-.7-.1-1-.4l-.5-.8-1.9 1.4s0 .5-1.1 1.3-1.7.8-1.7.8-.4 1.7-1.6 1.4-2-1.6-2-1.6-.9-.2-1.4.6c-.6.7-.9 1-.9 1.7 0 .8.5 1.8 1 2.2.3.3 1.5 1.3 3 .6 1.4-.8.9-2 .9-2l.8-.5c.9-.6 1.8-1.5 2.5-1.7"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M335.8 250.8v3.2s.4 2.9-.2 3.7c-.6 1-2.9.7-3.2 0-.3-.8-.2-3.2-.2-3.2z"/>
|
||||
<path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3" d="M333.3 260.5s-.5.8 1 1q.6 0 .9-.4.4-.7.3-.8c-.1-.1-.2 1.2 1.2 1.2 1.4.1 1.3-1.3 1.3-1.3"/>
|
||||
<path fill="#202220" d="M321.2 263.1s-.8-1.4.1-1.9 1.5 0 2.1 0 .4-1.4.3-1.7l-.7-1.2c-.2-.2-3.5.2-3.4 2.3 0 2.1 1.6 2.5 1.6 2.5m5 5.2s-1-1.5-.4-2.4 1-.3 1.2-.4q.5 0 0-1.6-.9-1.4-1.4-1.5c-.4 0-2.3 1.4-2 3.2a4 4 0 0 0 2.6 2.7m18.2-1.8s3.5 1.5 3.7-2c.2-2-1.5-3.3-2-3.3q-.5 0-1.3 1-1.1 1.2-.9 1.6c.3.3 1.3-.3 1.8.8.7 2-1.3 1.9-1.3 1.9"/>
|
||||
<path fill="#4b4139" d="M326.2 268.3s-2.7-.6-2.7-3.3c0-1.8 2-2.6 2-2.6s-1.8 1-1.8 2.6c-.1 2.7 2.5 3.3 2.5 3.3m-5-5.2s-1.6-.3-1.7-2.6c-.2-2.3 3.5-2.2 3.5-2.2s-3.5.2-3.4 2.4 1.6 2.4 1.6 2.4m23.2 3.4s.7.3 1.5.3 1.8-.3 2-1.6c.4-1.3.3-2-.6-3.1-.6-.9-1.2-.8-1.2-.8s.6 0 1 .8c.6.8 1.3 1.6.8 3.1s-2 1.5-2.5 1.5z"/>
|
||||
<path fill="#904720" d="m302.6 192.4-.6-.2.4-1 1.9-.7 1.8-.1 2-.1.8.6 1 2.3-3.6 2.2-.6.2-.2-1-.6-1.4z"/>
|
||||
<path fill="#202020" d="m337 245.5-.3-5.5-14.8 4.6 5.8 5.5z"/>
|
||||
<path fill="#d2a567" d="m309.4 235.9-1.2-1-1.4-.8h-1.1l-.2.3.2.5 1.3 1.6 2.3 1.2.8.7.5.2-1.1-2.7zm-.3 2.3.8.2.9 1 .5 1 .7 1.3.2.8-1.6-.3-4.8-1.5.4-1.2.8-.7.7-.3 1-.2z"/>
|
||||
<path fill="#d2a567" d="M312.2 242.2h.8l.6-.5-.3-1.8.3-5.8-3.9-4.6-.8 2.6 1.1 4.7.9 2.8z"/>
|
||||
<path fill="#ab6d29" d="M309.4 231.7s-.2.4.1 2c.3 1.5.9 4.9 2.2 7.2l-1.3-1.9s-2-4.6-1.7-8.2.7.8.7.8zm2.9 2.9s-.9 1-1 1.9v2.2s0-1 .8-1.3.7 2.3.8 2.6l.5-4.7zm.4 9.6-4.4-1q-3.5-1.5-3.4-2.3c0-.6 4 .1 4.6.2l2.4 1h1l1.9-.8.2 2zm-7.3-.8s1 .8.5 1a4 4 0 0 1-2.3.3l4.2 1 .9-.7z"/>
|
||||
<path fill="#d2a567" d="M304.2 242.2c.2-.2.3.7 1.8.8s2.2-.2 2.2-.2l.7.4.8.2-.7 1.1-2.8-.8-1.5-.8z"/>
|
||||
<path fill="#ab6d29" d="m314 240.3.8 1 .5-2.4v-2.5l-1.6-1z"/>
|
||||
<path fill="#4d2a15" d="m309.7 236.1-1.3-2.1-1.7-3.1 1-1.8 1.3 1.8s-.4 1.3-.1 2.5c.2 1.2.8 2.7.8 2.7"/>
|
||||
<path fill="#d2a567" d="M300.8 244s.6-.9 1.9-1l2.4.2 2.6 1.4.6.9-5-.7z"/>
|
||||
<path fill="#8f4620" d="m314 235 .2 4c0 1 .7 2 .6 2.3q-.2.5-1 .9c-.6.2-2 0-2 0s1.3-.2 1.4-.5-.4-1.4-.5-2.4.1-2.2-.3-2.2q-.5.2-.8.6s.4-3.8.8-4.2 1.6 1.6 1.6 1.6z"/>
|
||||
<path fill="#ab6d29" d="M304.7 243s-.5-.4-.5-.8c0-.3.6 1.6 3.4 1.5 2.8 0 2.6-.2 2.6-.2h1.3s-.3 1.3-.5 1.4l-2.2 1.4-.7.4v-.2l-.3-2.1-2.4-1z"/>
|
||||
<path fill="#8f4620" d="M309.7 236.1s-3.2-3.3-4.3-5.5-.4-5.2-.4-5.2l3 4s-.4.7-.3 2c.2 1.2 2 4.7 2 4.7"/>
|
||||
<path fill="#ab6d29" d="M307.6 248.3c0-.3-.2-1 .4-1.8 2-2.4 6.8-4 6.8-4v2.8l-6.2 3z"/>
|
||||
<path fill="#8f4620" d="M308 246c.3-.1 1.4-1 1.4-1.3q0-.4-2.1-.7c-1.5-.3-2.6-1-2.6-1s1.7 1.4 2.4 1.7q.9.3.5.7zm8.3.7s-.9-1.3-1.2-2.1-.3-2.1-.3-2.2l-1 .7-2 .7s2 0 2 .6-3 1-3 1c0 .1 2.4-.4 2.3.1s-1.2.7-2.5 1.2l-2.3 1-.7.5s.6.4 1.5.3c.9 0 2.9-.5 2.9-.5l3.8-1.5z"/>
|
||||
<path fill="#ab6d29" d="M316.3 246.7s-1-.3-1.8-4.8-.6-5.7-.6-5.7l1.8 1.3 1.7 3z"/>
|
||||
<path fill="#8f4620" d="M316.9 239.3s-.9 2.5-.9 4q-.2 2 .3 3.4c.5 1.4 1.8 2.3 1.8 2.3l.7-.6.3-2 .1-3.4z"/>
|
||||
<path fill="#202020" d="M319.4 242.7s.4 6.3-1.2 6.5c-.7 0-1.9-2.4-1.9-2.5 0 0 1.4 2.3 2 2.1 1-.4.6-6.6.6-6.6zm-3.1 4s-.3 0-.7-.8c-.4-.7 0 .6-3.4 1.8s-4.6.5-4.6.5 1.1 1 4.5 0 3.1-1.3 3.6-1.4z"/>
|
||||
<path fill="#ab6d29" d="M310 238.7s.6.5 1.2 1.7l1 2h.2s-.4-1.3-1-2.2l-2.2-3.1z"/>
|
||||
<path fill="#8f4620" d="M308 246.5s.3-1.1 0-1.4-.7 0-3-.2l-4.2-.9s1.6 1 3 1.4l3.5.8.5.1z"/>
|
||||
<path fill="#202020" d="m308 246.5-.2-.5c-.3-.3-.7.1-3.5-.7s-3.5-1.3-3.5-1.3 1 1 3.4 1.5z"/>
|
||||
<path fill="#ab6d29" d="M309.3 238.2s-2.1.1-2.8.7-1.6 2-1.6 2l1.3.1s-.1-1.2.5-1.9q1.1-.7 2.6-.9"/>
|
||||
<path fill="#8f4620" d="M305.3 234.2s.8 1.2 1.7 1.5q1.5.6 2.2 1.2c.4.4.9 1.8.9 1.8s-3-1.3-3.7-2z"/>
|
||||
<path fill="#8f4620" d="M308.2 235s-.3-.5-1.1-.9-1.4-.3-1.7-.1-.1.2-.1.2l1 1.7.7-.2s-1.6-1-1.3-1.3c.8-.7 2.5.5 2.5.5z"/>
|
||||
<path fill="#202020" d="m316.3 231.1 17-8.7 8 11.1-14.7 4-7.7.6-3.8-2.7z"/>
|
||||
<path fill="#4d2a15" d="m339 235.9 21 18.2-2.3 1.6-5-1.4-10.2-10.1-3.8-3.8z"/>
|
||||
<path fill="#4d2a15" d="m366 250.5-12-9.1-15.3-11.5.4 5.5 17.4 16 5.7 2.7 3-.8 1.4-1.6z"/>
|
||||
<path fill="#803f1d" d="M339 237.6s6 6.9 10.6 10.4 9 7.3 10 6.7c.8-.5.5-1 .5-1l-21.3-17.5z"/>
|
||||
<path fill="#4d2a15" d="m353.8 255.1-2.1 1.7-2.5-1-13-13.2.7-2.5 1.8.3z"/>
|
||||
<path fill="#202020" d="M366 250.5s-1.6 3.8-5 2.9-22-18.5-22-18.5v1.8s18.8 17.3 22.5 18 6.6-2.5 6.2-2.8z"/>
|
||||
<path fill="#803f1d" d="M336.9 240.4s6 7.7 9.1 10.5c3.2 2.9 6 5 7.2 4.8s-.7-1.7-.7-1.7l-9.1-9-4.7-4.6s-1.8-.7-1.8 0"/>
|
||||
<path fill="#202020" d="M338.4 240.4s15.2 15.5 16.4 15.9c2.5.7 6.2-2 6.2-2l-1.3-.7-.2.5s-.7 1.6-4 .9-16.6-15.1-16.6-15.1z"/>
|
||||
<path fill="#4d2a15" d="m344 255.3-5.5-6.4-1.2-2.1-.3-2.7 11 11.1-1.5 1-1.4-.4z"/>
|
||||
<path fill="#202020" d="M354.1 255.5s-1.3 2-3.2 1.6a5 5 0 0 1-2.8-1.7L337.5 245l-.3-1.6s11.7 12.3 13.7 12.8c1.6.4 2.7-1.4 2.7-1.4z"/>
|
||||
<path fill="#202020" d="M348.2 255.1s-.5 1.6-2 1.4c-1.6-.3-2-.9-2-.9l-6.6-7.7-.1-2s6.8 9.3 8.3 9.8 2-1 2-1z"/>
|
||||
<path fill="#b07229" d="M341.3 234.9s6.3 5.4 6.8 5.6c.5.3 2.7.4 2.8.7.2.3-1.4 0-1.5.3-.1.4 3.2 3 3.7 3.1.5 0 3.2 0 3.1.4 0 .3-1.8 0-1.9.4s2.9 2.7 3.4 2.8 3.9 0 3.9.4c0 .3-2.7 0-2.7.5.1.6 4.6 3.4 4.4 3.8s-5.4-3.5-5.5-3.3c-.2.2-.4 1.4-.7 1.6s0-1.6-.2-2.4-3.4-3.1-3.7-2.9 0 1.7-.4 1.7.1-1.7-.2-2.3a16 16 0 0 0-3.6-3c-.4 0-.1 1.3-.4 1.5s-.2-1.5-.6-2-7-6.5-6.7-7z"/>
|
||||
<path fill="#4d2a15" d="M330.5 252.3s0 2.4-1 2.8c-1.1.3-3.1-4.4-3.1-4.4l-.5-4.4 3.1 3zm8.4-1.2V250c0-.6-.3-1.5-.3-1.5l-.2-2.4-.6-1.7-.4-1h-.7l-1.7 1.2-.5 1.6.8 3 .8 2.7 1.3.4 1.5-1z"/>
|
||||
<path fill="#4d2a15" d="M336.8 255.3c.3-.1-.4-3.4-.4-3.4l-2-4.8-.5-1.7-1.5-.6-1 1.2.2 1.9s1.5 3.2 2.2 4.3 2.3 3.3 3 3.1"/>
|
||||
<path fill="#202020" d="M335 245a6 6 0 0 1 1.4 2.6s1.3 3.6 1.1 4-1 .3-1 .3 1.8 1.8 2.3 1.6.3-2 .1-2.4-.7 0-1-.5c-.1-.4-.8-2.7-.8-4.2v-2.7c.2-.3 1.5 3 1.5 4.7l.6.7-.6-3.2-.7-2.3q.1-.4.3-1.5v-1s.6.5.9.5q.5.2.8-2c.2-1.5-.1-6-.1-6l-6.8 9z"/>
|
||||
<path fill="#202020" d="M335 244.3s-.3 2.4.6 4.8l1.3 3c.2.3.2 2.9-.1 3.2 0 0-1.8-4.4-2.4-6.6q-.7-3-1-3.2l-.8-.2z"/>
|
||||
<path fill="#4d2a15" d="M334.4 257c.2 0 0-1 0-1l-.2-2.3-2.4-4.9-2.6-2.3-1.4-2-.2 4s2 4 3.1 5c1.3 1.2 3.3 3.6 3.7 3.5"/>
|
||||
<path fill="#202020" d="M324.7 246s.4 1.1.4 1.8v1.4l1.8 3.5c.9 1.5 1.7 3.1 2.4 2.8s1-1.5 1-1.7c.1-.1-.8 1.3-1.2 1.1a40 40 0 0 1-2.3-6.6l-1-.8-1.1-1.4zm7 5.5-1.7-3.1q-1-1.6-1.4-1.7c-.2 0-.5-2-.5-2s.7 1.3 1.6 1.7q1.4.8 2 .7l.2 2z"/>
|
||||
<path fill="#5c3a1d" d="M327.4 248.3s.5 1.4 1.4 2.7 2.3 2.9 2.3 2.9-1.6-1.6-2.5-2.8l-1.4-2.8z"/>
|
||||
<path fill="#202020" d="M332 246.7s.5-1.2.8-1.3l1.2-.3s-.7-.1-1.2-.8l-1.3-1.3.4 2zm-.4.4s2 4 2.4 5.5c.5 1.3.4 3.4.4 3.4s-.2-1.5-.6-2.7l-2.4-5c-.1-.3.2-1.2.2-1.2"/>
|
||||
<path fill="#4d2a15" d="m334.2 244.4.5-6-.5-2.2-2.7-6s-.1.8-.8.8a6 6 0 0 1-3.1-1.8 9 9 0 0 0-.2 4.8l5.3 9.9z"/>
|
||||
<path fill="#8b441f" d="M323.8 248.3s.8 1 1.3 1c.4-.2.3-2.1-.3-3.2-.6-1-7-9.6-8-10.1s7 12.3 7 12.3"/>
|
||||
<path fill="#8b441f" stroke="#5c3a1d" stroke-width=".1" d="M328.1 244.8c.2.4.6 3.1-.5 3.4-1.5.3-8.5-9.4-9.6-10.7 0 0-4.4-2.8-4.5-3.5s4.7 1 4.7 1l9.5 9z"/>
|
||||
<path fill="#202020" d="M323.8 248.3s-.8-1.3-.9-2.3q-.2-1.4-.4-1.9c0-.3-5.2-7.7-5.7-8.2s-2.3-1.4-2.3-1.4l.3 2.4s1.6 3 4 5.7z"/>
|
||||
<path fill="#4d2a15" d="M331.6 247c.7-.3.4-2.7.1-3.5l-4.4-9.4-1.3.4-2.3-1.8-1.4-1.5s.5 2.1.4 3.1v1.6l3.3 5.9zm4.7-5.2 1-1.3-.5-4.4-2.8-9.4s-.7.1-1.4-.3-1.4-1.3-1.4-1.3l.7 5.7 2.9 8 .2 2.3z"/>
|
||||
<path fill="#202020" d="M327.7 244s-2.8-3-3.7-4.5l-1.7-3s-.8.3-1.8 0c-1-.5-2.2-1.8-2.2-1.8s-.8 1.5 3.2 5.6c4.6 4.6 6.2 3.7 6.2 3.7"/>
|
||||
<path fill="#8b441f" d="M334.4 245c1.2-.4 1.1-5.4 0-8.7-1-3.3-2.9-6.2-2.9-6.2s2.3 5.4 2.8 7.5c.4 2.2 0 3.7-.4 3.6s-.4-1.3-1.3-3.4q-1.6-2.8-1.6-2.6c0 .2 3.3 8.8 2.3 8.6s-5.3-9.9-5.5-10.2-.4.4-.4.4 4 12.2 7 11"/>
|
||||
<path fill="#4d2a15" d="m337 221.3 2 4.2.6 4.4.2 3.7s0 7.4-.8 7.6c-1 .1-1.4-.7-1.4-.9l-1.7-8.3-1.7-8.5.6-.6.2-1.2 1.3-.1z"/>
|
||||
<path fill="#8b441f" d="M331.6 247c.8 0 0-2 0-2s-.6 1-1.2.3-1.3-3.1-1.3-3.1l-.5-1.5s-.6 1.6-1.3 1.6-4.6-6.4-4.6-6.4l-.4.6s5.4 11.1 9.3 10.6z"/>
|
||||
<path fill="#202020" d="M329.1 242.2s.7-1.6.4-3c-.3-1.5-2.2-5.1-2.2-5.1s-.6.1-1.4-.2l-2.2-1.2a38 38 0 0 0 5.4 9.5m3.1-2.3s-.5-3.4-2-6.6c-1.6-3.1-2.6-4.1-2.6-4.1v3.5s1.5.5 2.6 2.4c1 2 2 4.8 2 4.8m4.3-5.8s-.3-3.7-.8-5.8l-1.2-5s0-.2.3-.4h.6c.8.3 1.1 2.2 1.1 2.2l-.1-3.1-.3-.5h-1.4s.3 1-.1 1.3c-.3.3-.6-.2-.7-.3l-.2.4.4 2-.1 1.7s.5 2.2 1.2 3.5c.6 1.4 1.3 4 1.3 4m3.3-.5s.6-5.3-.6-8.7-2.2-4.2-2.2-4.2l-.6.6s1.8 3 2.4 5.6zm-5.4 2.7s-.6-4.1-1.3-6.8l-1-3.6-1.1-1s.7 2.7.6 3.6l-.1 1.4s.5 1.4 1.3 2.6z"/>
|
||||
<path fill="#904720" d="M337.2 242.9c1 0 .1-6-.3-7.5-.4-1.6-3-8.8-3-8.8s3 10.3 2.8 10.8c-.3.8-1.5-3.1-1.7-3-.2 0 2.2 6.9 1.3 7-.8 0-1.3-1.5-1.3-1.5l.1 1.5s.6 1.4 2.1 1.5"/>
|
||||
<path fill="#904720" d="M338.5 239.9c.7 0-.2-5.7-.7-8.2l-2-7.5s1.5 3.5 2.3 7.5 1.4 9 .6 9.2c-.8 0-1.2-.8-1.2-.8v-.9s.3.7 1 .7"/>
|
||||
<path fill="#312317" d="M328.8 246.5c0 .4 0 2.4-1 2.2s-2.9-1.9-3.3-3c0 0 2.2 2.5 3 2.4.8 0 .8-2.5.6-3.2 0-.6.6 1.6.6 1.6z"/>
|
||||
<path fill="#d2a567" d="M334.1 219.5s1.4.9 2.4.3a4 4 0 0 0 1.8-3q.2-1.1-.7-2.4c-.7-.9 1 .7 1 2.3s0 4.3-2.5 5c-2.5.5-1.4-.2-1.4-.2z"/>
|
||||
<path fill="#8f4620" d="M332.1 214.7s1.6 2.6 2.2 5q.9 3.3.2 3.3t-.7-.9c0-.6-1.7-7.4-1.7-7.4"/>
|
||||
<path fill="#1e2121" d="m304.1 218 10.6 15.3 13.2-15-8.3-8.6z"/>
|
||||
<path fill="#4d2a15" d="m317.5 208.5-.6 2.4 1.3 4.1 2.2 2.3 2.5 1.7.6-2 .6-2.2.7-.2 1.6.6 1-1.5 1.8-3.1-.4-1.2-.4-.9-2.7-4.6-.9 1.7-.8.5-1.6-.8-1.8 2.4-2.3-1z"/>
|
||||
<path fill="#5c3818" d="M323 219s.4-.3.6-1.6c.2-1.2.2-4.9-.1-6.4s-1.3-4.4-1.5-4.2 1.5 3.3 1.3 7c-.3 3.6-.2 4.6-1 5-.7.3.6.2.6.2z"/>
|
||||
<path fill="#5c3818" d="M323.6 212.8s1.7 2.5 2.5 1.6.5-4 0-5.3l-1.2-3 .5-.6.9 3.4c.3 1.4 1.3 5.2.1 6-1.1.6-2.8-1.5-2.8-1.5z"/>
|
||||
<path fill="#8f4620" d="M317.9 214.6s.6-1 1.4-1q1.1.2 1 .3l.6 2 1.2 2.2 1 1-.5.6-.9.2-2.5-1.4-.7-1-.6-3z"/>
|
||||
<path fill="#d2a567" d="M322 236.3c-.8.5-2.7-.5-3.7-1.4l-6.8-6.7-.8-3.2 2.2.6 3.9-1.7.7-1.3 4.6-2.4 2.6-1.4 5.5-.1 1.4-2.7s1.8 3.2 2.1 4.5c.4 1.4.3 5.4-.2 5.7s-2.3-1.2-2.6-1.3c-.2-.1 1.4 5.7 0 6s-3.6-2.2-3.6-2.2 1 5.2-.2 5.2a10 10 0 0 1-5-2.6s1.3 4.3 0 5z"/>
|
||||
<path fill="#8f4620" d="m321 229.6 1.1 1.7c.3.4 0 2.9-.2 3.4-.3.9-1.6-1.2-2.3-3l-2.2-3.8c0-.4 3.5 1.7 3.5 1.7zm10.8-12.9s2 8.1 1 8.4-3.6-2.6-4-3l-4-6.4-.8-.8.2-.4 1.7.6z"/>
|
||||
<path fill="#8f4620" d="M317.9 232.3c-.4.3-1.3-1-1.7-1.4l-3-3.3a12 12 0 0 1-2.2-2.5c0-.3-.8-1.1-.8-1.1l.7-1h.9s5.4 4.2 5.7 5c.4.6.6 4.1.4 4.3m8 0c-.2.3-3.7-2.3-5.2-4.4s-3-4-3.5-5l-.6-1.9 1 .2s8.8 10.8 8.4 11.2zm1.3-3.7c-.2.3-1.7-.9-2.7-2.1s-.4-2.9-.4-2.9 3.3 4.8 3.1 5m2-.5c-.5.3-2.5-2.2-4.2-5-1.3-2-1.6-2.3-1.8-2.5-.5-.3-1.4-.4-1.4-.4l-.2-.3 1-.2.6-.8 1-1.3 4.3 8.5s1 1.9.7 2"/>
|
||||
<path fill="#ab6d29" d="M318.3 234.9c0 .3 0 .6-1.2.5a21 21 0 0 1-9.9-7.8l-3-5 1.1-1.4 9.6 11z"/>
|
||||
<path fill="#8f4620" d="M318.3 234.9q-.1.7-1.1.5c-.6-.2-3-1-6.9-5.3a33 33 0 0 1-5.3-7.4l-.2-1.8 1.2-.5 6.5 10z"/>
|
||||
<path fill="#4d2a15" d="M324.6 230.6s-2-1.5-3.2-3a24 24 0 0 1-3.8-5.7c.1-.7 1.2-.7 1.2-.7v-1.8l.2-.6 1.9.8 2.3 2.9.9 1.1s1.5 3.7 1.2 4-2.4-2-2.7-1.7 2.4 4.4 2 4.7m-3.7-1s.7 1 .4 1.7-.5 1-1.5-.4a16 16 0 0 0-2.3-3c0 .1.1 2.3-.3 2.3s-2-1.9-3-3.3l-2.5-3.9v-2l-.1-2.5.3.9.4.7 3.6 4.2 1-.7 2.1 4zm-13.5-6.1s2.8 4.8 5.3 7.5a17 17 0 0 0 5.6 3.9l-8.4-9.9zm21.2 2.8a12 12 0 0 1-3-3.4c-1-1.6-1.9-4-1.8-5s.4-3.4.4-3.4 2.8 3 3.4 4.3c.5 1.4 1.7 3.3 1.4 3.5-.2.2-2.1-1.3-2.4-1s2.3 4.8 2 5m3.2-3c-.3.1-1.8-1.6-2.1-2.6l-.6-3.2-1.2-3v-3.3l1.4-.2 1.9 2.7s.7 1.5.7 3.7.3 5.6 0 5.8zm-22.5 8a42 42 0 0 1-4-6l-1-2.9.5.4s.8 3.2 4.7 7.1c4 4 4.9 4.2 4.9 4.2s.7 2.2.4 3c0 0-2.9-2.6-5.5-5.7z"/>
|
||||
<path fill="#202020" d="M313.6 235.9s-3.4-3-6-6.4a47 47 0 0 1-4.4-6.6l1.2-1a46 46 0 0 0 9.2 14m4.7-1-6-6.1c-2-2.2-3-4.4-3-4.4l1.6.6s.7 1.7 2 3.5zm-.8-7s-2.1-2.6-3.1-4.2l-2-3.8s2.8 3.3 3.6 3.5.9 0 .9 0-.4 1.2-.1 2.2zm.9-10.6s.3 1.9.1 3c-.2 1-.8 1-.8 1a16 16 0 0 0 4 4l-1.8-2.7c-.5-1-1.3-2-1-2.8.4-1 2.1.6 2.6 1l2.6 2.8s-.8-2.5-1.8-3.4z"/>
|
||||
<path fill="#202020" d="m327 222.8-1.7-4.2-1.6-5.2v2.8c-.1 1.2-.5 3-1 3.3s-.7.3-1.7 0 .7.5.7.5 1 0 1.4-.5.5-1.5 1-1.4 1 1.7 1.3 2.4z"/>
|
||||
<path fill="#202020" d="M323.7 213.4s2 2.3 3 1.3c.8-1 .3-4 .3-4s1.2.5 1.6.2c.4-.4.2-1.5.2-1.5s2.3 3.2 3.3 5.3c1.1 2 1.6 5.8 1.6 5.8s-1.8-3-2.7-5.8c-.9-2.6-2.1-3.8-2.3-3.5a5 5 0 0 0-.3 3c.2 1 1 2.1 1.5 3.5l1.1 3.4-1.6-2.5q-1-1.1-1.7-1.6c-.4-.4-1-1.2-1.7-1.4-.6-.3-1.8-.9-1.8-.4s-.3-1-.3-1z"/>
|
||||
<path fill="#171717" d="M316.8 223.3a27 27 0 0 0 4.2 6.3s-2-1.8-2.8-3a16 16 0 0 1-1.4-3.3"/>
|
||||
<path fill="#8f4620" d="M330.2 223.9c-.3 0-1.3-.3-1.4 0 0 .4.6 1.8 1.3 2.5q1 .9 1.1.6.2-.2-.2-1.4v-1.7c-.1-.3-.8 0-.8 0"/>
|
||||
<path fill="#d2a567" d="m306 209.4-1.3.7-1.4 3 .4 5.3 2.1 3c.8 1.2 3.5 4.2 4.2 4s1.4-2.3 1.5-3.4l.2-3.2 1.8 2.3c1.1 1.3 2 2.4 2.6 2.3.5 0 2-3.2 2-3.6.1-.4-3.8-10-3.8-10l-1.8-1-6.6.6z"/>
|
||||
<path fill="#ab6d29" d="m314.8 217.4 1 3.7c.5 1.2 0 2.3.3 2.3s2.3-2.7 2.3-4 0-2.5-.5-6.3.2-5 .2-5l-1.2-1-2 4.2zm-7-2.2.7 5c.3 1.2 1 3.3 1.4 3.2s1.6-3.3 1.7-4.4c0 0-.9-1.6-.8-5.5 0-4-.4-4.4-.4-4.4z"/>
|
||||
<path fill="#45392d" d="M302.5 207.5s-3.1 4.6-3 7c0 2.5.4 2 1.1 4.2s1.1 5.6 1.2 5.9c0 .2.5-.2.5-.5z"/>
|
||||
<path fill="#ab6d29" d="M302.5 208s-2.7 4.3-2.5 6.6.5 2.3 1.3 4.4c.8 2 .8 5.4.8 5.4s1-.2 1.9-.9c1-.7 1.8-2.1 1.8-2.1l-1-2.1-.6-2-.8-1 .2-4.1.7-3v-1l-1.8-.1z"/>
|
||||
<path fill="#dbad6c" d="M317.2 215.3s-1.3-.3-1.9-.6-.8-1.1-.8-1.1l.4-.8z"/>
|
||||
<path fill="#d2a567" d="M303 208.5s-2 4.3-1.7 7.2 1.9 6.6 2 6.7q.1 0 .1-1v-8.7l.9-2.8v-1.5z"/>
|
||||
<path fill="#8f4620" d="M307.8 209.5s.3 1.2.1 1.8c-.2.5-1.2 1.2-1.6 2s-1 2.8-1 2.8.4-1.1 1-1.8q1-1.2 1-.8c.2.4.4 2 .3 2.3q-.4.3-1 2c-.4 1.3 0 2.4 0 2.4l.5-2.2c.2-.6.7-1 .7-1l1 2.4s0-1.1.3-2c.1-.8 1-2 1.3-2s.8-.1-.3-.7c-.4-.2-.1-4.2.1-4.4s1.9-.2 1.7-.8l-1.6-2.2c-.1-.1-2.5 2.2-2.5 2.2"/>
|
||||
<path fill="#dbad6c" d="m317 218.1-1.5-.3c-.5 0-.6-.6-.6-.6l.2-.6 1.2.7z"/>
|
||||
<path fill="#8f4620" d="M304.4 218.6q-.1.6-.5 1.5c-.3.7-.4 1.6-.4 1.6l-.4-3.3-.3-2.4c-.2 0-.7.7-.7.7s0-1.6.3-2.3.5-1.8.3-2q-.6 0-1 .7l-.8 1.3s.3-1.3.6-1.9 1.8-2.2 2-2.8q.5-1.2.4-1.4h1s1 .8 1 1.5c0 .4-1 .9-1 1s-.8-.1-1 3.2.6 3.2.5 4.6m9.4-8.7s.2 1.8 0 2.4q-.4.8-1.1 1.8c-.4.7-.4 2.4-.4 2.4l.5-1.4.7-1q.3.1.8 1.7l.8 2.5s-.2-1.2.1-1.2.5-.1.9.2l.9.8s0-.5-.7-1.1-1-.6-1.1-1.5q-.3-1.6-.2-2.2c0-.3.5.3.9.7l1.5 1.4-.7-1v-3q-.1-1.7.4-2.1c.3-.3.4-1.6.2-1.8-.1-.2-3.5 2.4-3.5 2.4"/>
|
||||
<path fill="#1e2121" d="M324.6 206.1a24 24 0 0 0 1.5 7.1s-1-2-1.6-3.6-.9-3.5-1.3-3.6-1 .8-1 1.5.5 3.3 1.1 4.2-1-1.2-1.3-2.3l-.7-2.2s-.4 1-.3 2c.2 1.1 1.1 2.7 1.1 2.7l-1-1-.6-.7s0 1.5.4 2.1l1.2 1.7-1.3-1-.4-.8s.2 2.1.6 3.3l1.5 3s-1.2-1-2-2.9-1.2-7.3-1-8.1l1.1-1.9c.6-.8 1.3-4.7 1.3-4.7s.9 3.6 1.5 4.3q1 1 1.2 1zm-8.6-1 .8 1.3.6 1s-1 1.1-2.3 2c-1.2 1-2.8 2-3.1 1.5q-.5-.9-.4-1c.1-.1 1.4-.8 2.4-1.8a7 7 0 0 0 1.6-2.2q.4-.9.5-.9zm-10.9 3.5s.2 2.2 1.2 2.2 3.7-2.9 3.9-3 .4-.8.4-1l-.2-.8s-3 3-4 3.2c-.9 0-1.3-.6-1.3-.6m.1-3-.3 2q.1.8.2.9c.1.1-2.2.7-2.5 0-.4-.6-.1-1.6-.1-1.6h1.5c.6-.2 1.2-1.3 1.2-1.3m20.3-3.1 1.5 3.2 1.4 2.8s-1.4-1.7-1.9-2l-1.2-1 .2-1.1z"/>
|
||||
<path fill="#dbad6c" d="M302.1 207h1.3q.8-.1.8-.2l.9-1.2s-.5 1.4-.2 2.5c.3 1 1 1.1 1.2 1.1a4 4 0 0 0 2.2-1.1c.9-1 2.1-1.9 2.1-1.9s-.3 1.3.2 2.7q.7 1.8 2.2.4c1-.8 2-2.2 2.6-2.8l.7-1 1.1-1 1-5.4-.5-.7-1.4.7-1.7-.7-.5-.7-1 1.7-1 .6-.5.1-1.2.3-.5-1.1-.3-.8-.6-.3-2.4 2.5-1.4-.1-1.3 2.2-1 1.3-1 2.4z"/>
|
||||
<path fill="#8f4620" d="M313.9 201.5s.2 1.3-.5 3.6-1.6 3.9-1.6 3.9 2.4-1.5 3.6-4.2c1.1-2.6.9-5.7.9-5.7zm3-2.5s.2.4 0 2.4l-.8 4 .6 1.2c.4.7 1.2 1.8 1.7 1.6s1.6-.9 2.2-2.2 1.1-2.7 1.4-2.9q.3-.1.4.2c0 .1.3 1.3.9 1.8.5.5 1.3 1.3 1.6 1 .4-.2.8-.9.7-1.2l-1.3-4-1.6-4-1-1.6-2.8.3z"/>
|
||||
<path fill="#ab6d29" d="M321.7 195.3s.8 1.7.9 3.6c0 1.8-.4 3.8-.4 3.8s.2-2.3 0-3.7q-.6-2.1-.7-2.7z"/>
|
||||
<path fill="#4d2a15" d="M325.6 202.6v2.3c-.2.8-1.3-.5-2-3s-.5-3-1-4.3l-.9-2.2 1.5-.3zm-7 4.6s2.8-1.5 3.1-6.2c.2-2.1-1.2-5.7-1.2-5.7s0 3.8-1 6.2l-1.9 4s.7-.2 1-.6l.8-1.1s.1.7-.1 1.6l-.6 1.8zm-2.3-8.1s-.1 1-1.3 2c-1 .9-3.1 1.9-3.1 1.9s1.5-1.4 2-2.6.1-2 .1-2-.2.6-.8 1.1-1.6.6-1.6.6 0-.6.7-1.3q0-.2.2-.7c.3-1 1.1-2.3 1.1-2.3s.7 1.4 1.3 2z"/>
|
||||
<path fill="#1e2121" d="M324.7 193.6a18 18 0 0 0 .9 9s-1.4-2.2-1.7-3c-.4-1-.4-2.3-.7-3l-1-1c-.3-.2-1-.1-1-.1s.8-.4.8-1.1v-1l1.4.3h1.3zm-6 9.8s1.4-2 1.8-4.6 0-3.5 0-3.5-.6 0-1.1-.5-1.3-1.8-1.3-1.8.2 1.4 0 3c-.4 1.6-1.8 3-1.8 3s.8.4 1.4 0c1.5-.9 1.4-2.5 1.4-2.5s.3.2.3 2.2-.7 4.7-.7 4.7"/>
|
||||
<path fill="#8f4620" d="M301.2 206.9c-.3 0 1-2 1.8-3.4l2.1-3.4s.3.3.8.3a4 4 0 0 0 2.4-1.7 7 7 0 0 0 1-2.5c0-.3-.1 1.8 1 3 1 1.1.9 1 1.3 1 0 0 0 1.4-.4 2.7l-.8 3.3s.2-2.5-.3-3.2-.6 0-1 1c-.3.9-1.1 1.5-1.1 1.5s.6-1.1 1-2.3.2-1.2 0-1.2q0-.2-.6.4-.8.7-.9.6c-.1-.1.5-.4.7-1l1-1.8q.4-.5.4-1t-.2-.7-1.4 1.2l-1.3 1.3-.9 2.6-1 2.8-.6.4.9-2.4 1-3.4q-.5-.5-.8 0l-2 2.8c-1 1.4-1 3.1-1.2 3.2l-1-.1z"/>
|
||||
<path fill="#874f20" d="M325.7 192.1c0 .2 0 1.2-1 1.5a4 4 0 0 1-2.3-.2c-.2 0-.2-1.4-.2-1.4z"/>
|
||||
<path fill="#b27129" d="M306 195.4s-.2.9-.8 2c-.5 1.2-1.4 2.2-1.3 2.4s.6.7 1.4.6 1.1-4.8 1.1-4.8l-.1-.2z"/>
|
||||
<path fill="#dbad6c" d="M318.4 192.7s-.3 6.4-2.1 6.4-2.7-3.2-2.7-3.2-.1 4.3-2.4 4.3c-1 0-2.1-3.4-1.9-4 0 0-.4 2.3-1.5 3.2-2.2 1.7-3.5.9-3.6.6 0-.3 1.8-2 2-4.6 0 0 .4.1 1-.6s.7-1.6 1.3-1.5c.5.2 3-1 3-1l1.4-1.7s.2.5 1.2-.2a4 4 0 0 0 1.3-1.7l2.7 2.3z"/>
|
||||
<path fill="#b27129" d="m311.4 186.6 2.7 3.8.6-.5q.7.8.4 1.2c-.4 1-1.3 2.3-.5 3.7 0 0-.3-.8.1-1.8s.7-1.4 1-1.3c.2 0 .6 5.8 1 5.8.3 0 .9-2.7.9-4.5s.3-.3.5 0c.2.4 1.8 3 3.1 2.6s1.2-2.8 1.2-3.3-1-3.7-1-3.7l-6.1-3.9-.5 1.6c-.3 1-3.4.3-3.4.3"/>
|
||||
<path fill="#8f4620" d="M320 186s.4.4 1 1.9.7 6.4-.1 6.4-2.3-1-2.6-1.6 0-3.1-.4-3.8a8 8 0 0 1-1.2-2.7l.1-2 1.4-.5z"/>
|
||||
<path fill="#4d2a15" d="m319.6 184.5 2.6 3.9 2.3 3.3 1.2.4a2.5 2.5 0 0 1-3.2.5c-.9-.5-.4-2-1.5-4.5s-3.2-3.6-3.2-3.6l.7-.7z"/>
|
||||
<path fill="#1e2121" d="M318.2 182.4s2.3 1.5 3.1 3.2 1.3 2.7 2.3 4.3 2.1 2.1 2 2.2c0 .1-.7.3-1.2 0a5 5 0 0 1-1.4-1.6l-2.4-4.2c-.5-.7-2.3-2-2.3-1.9s.5.5 1.5 2.1a7 7 0 0 1 1.2 3.1l-1.1-2c-1-1.5-2.8-3.3-2.9-3s1 1.9 1.5 2.9l1.3 3.3-1.8-3c-1-1.5-1.2-1.3-1.6-1.8l-1.4-1.8s1 .3 1.8-.3c1-.6 1.4-1.5 1.4-1.5"/>
|
||||
<path fill="#8f4620" d="M312.3 186.7s1.5.3 2.3.2h1.1s.5.6.5 1.4-.5 2.1-.8 2.2c-.2 0-.2-1.3-.5-1.8z"/>
|
||||
<path fill="#b27129" d="M313.1 190.6s.5 1.6.1 3.9-1.7 4.6-2 4.6-.2-2.6-.4-4v-.4l-.5 1.6.4-2.6-.1-.8 1.6-2z"/>
|
||||
<path fill="#8f4620" d="M310.3 192.3c-.5.5-1.2.4-1.8.6s-.9 1-.9 1 .5-.3.7-.2c.3.1.5.1.1 1.2s-2.2 3-2.1 3c0 0 2-1.5 2.5-2.5.7-.9.6-1.4.8-1.8 0-.3.8-.7 1-.7q.3-.2.6.7l.6 2.6.8-2.6c.2-1 .2-2.9.2-2.9l-.6-.1c-.5-.1-1.5-1-1.5-1s.2 2-.5 2.7z"/>
|
||||
<path fill="#dbad6c" d="M318.3 180.8s.6 1.5-.7 2.6q-.5.5-1.4.6l-1.7-.6-4-1.6-2-.6-1-.3.2-1.1h3l3 1.2 1.3.5 1.1.2h.9l.7-.2.4-.3z"/>
|
||||
<path fill="#ab6d29" d="M318.3 180.8c0 .3-.3 1.1-.6 1.3-.3 0-.8.3-2 0s-2.3-1-3.6-1.3q-1.9-.6-3.3-.7c-1.4-.1-.5-.4-.5-.4s2.3-.3 4.3.5c2 .7 2.9 1.2 4 1.2 1.4 0 1.7-.6 1.7-.6"/>
|
||||
<path fill="#4d2a15" d="M307.6 179.6h.9q.6-.2.7-.3c.1-.1 0 .5-.2.7s-1 .1-1.2.1z"/>
|
||||
<path fill="#dbad6c" d="M315.3 184.4s1.3 1.3 1 2.4l-2.7-1.2-4.2-1.7-2.3-.7-.3-.4.6-.8.2-.8 2.8.4 3 1z"/>
|
||||
<path fill="#dbad6c" d="M312.4 186.3s2.4 3.1 1.8 4.1l-5.6-3.5-2 3.3-4.7-2.3s3.8-3 4.2-3.5l.5-.7 2 .4 3.4 1z"/>
|
||||
<path fill="#ab6d29" d="M311 181.6s2 .5 3.3 1.2 3 .8 3 .8-.6.7-2 .8c-.4 0-1.4-.8-2-1.3s-2.6-1-2.6-1z"/>
|
||||
<path fill="#4d2a15" d="M307.6 180.6s1.4.3 2.2.7c1 .3 1 .2 1.2.1q.4-.1.3-.2c-.1-.1.2 1-.5 1s-1-.3-1.8-.7c-1-.4-1.5 0-1.5 0v-1z"/>
|
||||
<path fill="#ab6d29" d="M315.4 186s1 .7.9.9q-.3.1-1.6.4a3 3 0 0 1-2-.4c-.6-.2-1-1.3-2.5-2l-2.8-.9-1.3-.2 1-.4 3.2.6 2.8.9 1.7.8.6.4zm-5.4 2 .6 2.6-.4 1.5-.8.6-.8-.3-.3-.5s.4-.6 0-1.1c-.3-.6-2-1.2-2-1.2s.7-1.3 1.4-1.6c.8-.3.4-1.2.4-1.2z"/>
|
||||
<path fill="#4d2a15" d="M306.8 182.8s.5.4 1.5.5q.8 0 2.2.5l1-.3-.5.4c.9.2 2 .7 2.5.9a6 6 0 0 1 2 1.3l-2-1-3-.9c-2-.3-4-.2-4.3-.4-.4 0 .1-.1.4-.3.2-.2.2-.7.2-.7"/>
|
||||
<path fill="#ab6d29" d="M314 189.8s.7.7 0 .9-2.4.2-3.2-.7l-.6-1.2-2.4-1.7c-.7-.5.3-.5.3-.5l3.6 1.5z"/>
|
||||
<path fill="#4d2a15" d="M314 189.9s-1.2-1.8-4.9-3.3l1.2-.2h-2l-.8-.3c-2-.6-2-.6-2.2-.8q-.2-.3-.6.3l-.7 1a5 5 0 0 1 2.5-.1c1.1.3 1 .7 1 1-.1.5-1.4 2-1.3 2.1.2 0 1-1.5 2-1.3q1.3.6 1.2.8c-.1.2 0-.6-.2-.8s-1.3-1.3-1-1.3q.6 0 3.3 1.2c1.8.9 2 1.1 2.6 1.7z"/>
|
||||
<path fill="#dbad6c" d="M308.1 187s2.8.8 2.7 3.8-2.3 2.4-2.5 1.3.3.5 1 .4q1.2-.3 1-2.2 0-1.4-1-2.2l-1.2-1z"/>
|
||||
<path fill="#6c3f18" d="M296 179.9s.4.2-.4 2.3-1.3 2.8-2.5 4.2c-2.2 2.4-3.2 2.5-3 3.5s1.1.8 1.3.8 4.3-6 4.3-6l.9-3.5-.2-1-.3-.3z"/>
|
||||
<path fill="#dbad6c" d="M306.1 175.6s1.2 1.8.8 5c-.3 3.4-4.7 6.3-4.7 6.3l-6.4 4.4-2.7-.2h-.8q-.7-.3-.9-.5l-.5-1.2.9-1 2.3-2.3 1.4-2s.7-1.3.8-2.5q-.1-1.7-.2-1.7l.5.8.3 1.8-.2 2 1.6-1.2 2.2-1s.7 0 1-1.3c.5-1.2.9-3 .9-3.8l-.1-1.8h.3c.2 0 .7 1.2.7 1.7l.4 2.8 1-1 1-1.5q.3-.9.4-1.8"/>
|
||||
<path fill="#904720" d="M306.8 192.2s.5.4.3 1.6-1.1 1.8-1.6 1.8V194l-1.4-1.2-1.5-.4.3-.3c.1-.2 1.7-.8 1.7-.8z"/>
|
||||
<path fill="#ab6d29" d="M305.7 192.2s.5.4 1.2.3 1-1.3.6-1.8-.2 1-.7 1.3c-.4.1-1-1.2-1.5-1.3-.7-.1-1.6.3-1.9.7s1 0 1 0l.7.3h.5z"/>
|
||||
<path fill="#904720" d="M296.5 187.6s.8.3 1.7.1l3.1-1 1.8-1.3c.7-.7 3.1-2.2 3.4-5.1.2-3-.4-4.7-.4-4.7s3.5 3.8.5 8.2c-2 2.8-3.8 3.7-3.8 3.7s3.4-1 3.7-.2-.1 2-.2 2.3c0 0 1.9.4 2.2 1.4.1.6-2.2-.7-4-.2s-2.5 1.4-2.5 1.4-.4-.5-2-.5c-1.5 0-2.2.7-3.1.7-1 0-3.7-.6-4.2-1.4l1.8-2.2c.8-1.6 2-1.2 2-1.2"/>
|
||||
<path fill="#ab6d29" d="M303.8 179.7s1.3-1.3 1.8-2.3q.5-1.6.5-1.8c0-.2.2 1-.6 2.3s-1.7 2-1.7 2z"/>
|
||||
<path fill="#904720" d="M303.4 176.7s1.1 4.4 0 6.1c-1.3 1.8-6.5 4.1-6.5 4.1s4-2.1 5.2-4.6 1.1-4.5 1.1-4.5z"/>
|
||||
<path fill="#1e2121" d="M298.2 187.7s1.7 0 2.6-.6 2.3-1.7 2.3-1.7-1.2 1-1.6 1q-.6-.1-.5-.9s-.3.8-1 1.4c-.8.5-1.8.8-1.8.8m3.9-5.4s1.4-1.4 1.4-4.4-1.2-2.5-1.2-2.5 1 .7.7 3c-.2 2.3-1 4-1 4zm1.7.3s1.6-.3 2.1-1.3.6-2.7.6-2.7-.2 1.7-.7 2.3-2 1.7-2 1.7m-1 9.5s.8-1.5 1.9-1.1 1 1.2 1 1.2-.4-.6-1.2-.7-1.6.6-1.6.6zm-2.9-2.7 3.7-1 3-1s-1.2 1.3-3 2.3c-1.6 1-3 1-3 1s3.2-1.4 3.4-2c0 0-3 .9-4 .7z"/>
|
||||
<path fill="#fff" d="M296.2 185.8a2.6 2.7 67.8 0 1-3 4.4"/>
|
||||
<path fill="#f16e16" d="M296.1 186.1a2.3 2.4 67.8 0 1-2.7 3.8"/>
|
||||
<path d="M295 187.4a1 1 0 1 1-.8 1.4"/>
|
||||
<path fill="#d5d3ca" d="M295.2 188.6a.3.3 0 1 1-.6-.1l.3-.3a.3.3 0 0 1 .3.4"/>
|
||||
<path fill="#ab6d29" d="M296.8 184.2s1.6-1.5 1.9-3.5q.3-3.1.1-3.2l.9 1 .3 1.4-.5 2.6 1.6-.8c.6-.8 1.5-4.2 1.2-6.3 0 0 .4 1-.2 3.8-.6 2.9-1 3.2-3.2 4.4a10 10 0 0 0-3.8 4.2l-2.3 3 1.6-2.6c.8-1.8 1.7-2.8 1.7-2.8z"/>
|
||||
<path fill="#904720" d="M296.1 185.4s.7-2 .7-3.1-.7-2.4-.7-2.4 1-.1 1 2.2c.1 2.4-.4 2.6-1 3.3"/>
|
||||
<path fill="#4d2a15" d="M299.2 182.8s.7-1.7.7-3c0-1.1-1-2.3-1-2.3s1.1.3 1.2 2.4c.1 2.2-.2 2.2-1 3z"/>
|
||||
<path fill="#ab6d29" d="M292.1 191s-.6-.8-.5-1.3 0-.7 1.4-2.2a13 13 0 0 0 2.5-3c.3-.9 1.5-3 .6-4.6 0 0 .6 2.4-.8 4.3a16 16 0 0 1-3.3 3.7q-1.5 1-1.2 1.7 0 .9.3 1c.4.3 1 .3 1 .3z"/>
|
||||
<path fill="#6c4119" d="M305.5 195.6s.3 0 .5-.3.2-1-.3-1.6a3 3 0 0 0-1.7-1.1l-2-.4s.4.8 1.3 1.3c.4.2 1.2 0 1.6.4s.6 1.7.6 1.7"/>
|
||||
<path fill="#6c4119" d="M305.5 195.6s1.5-.5 1.6-2l-.1-1.2s.2.5.8.7l.6-.2s-1 2.8-3 2.7z"/>
|
||||
<path fill="#bf802d" d="m294.8 195.3.8.8.9 1 3.7-1 1.2-1.2-1-1.6h-2.7l-3 2z"/>
|
||||
<path fill="#f9c83a" stroke="#8f4620" stroke-width=".4" d="m303.8 194-.7-.9-.7-.6c-.6-.3-2.8-.3-2.8-.3l-1.6.3s-.5.5-1.3.3l-2.6-1-1.9-.7s-1.3-.6-1.6-.5-1.5 1.3-1.5 1.3-.2.7.3.7-.7.2-.7.2-2.8 1.6-3.2 4.4c-.5 2.7 4.6 6.8 6.5 4.7 0 0-2.8-2-2.2-3.7q.7-2.6 4-3c2.1 0 2.3-.3 3.2-1s2.7-1 4 .3-5 2.7-5 2.7l.7 1s7.7-2.7 7-4.1z"/>
|
||||
<path fill="#fcf3d8" d="M289.4 200.7s-3.1-.8-2.9-3.7c.3-2.8 3-3.9 3.4-4s.3-1.6.8-1.8a2 2 0 0 1 2 .5l1.4.8s-5.5 2.4-5.5 5.6c0 2.1.8 2.5.8 2.5z"/>
|
||||
<path fill="#fdeaaf" d="M303.8 193.8s-.4.2-.5 0c-.6-1-2-1.4-3-1.3-1.5 0-2.4.5-3.4.5s-.7-.1-1.8-.2c-1.1 0-3.5-1.8-4-1.6q-.9.5-.8 1.1c.1.4-1 .4-1 .1-.2-.2.7-1.7 1.7-1.7 2.6 0 4.6 1.7 5.8 1.7s1.7-.7 3.4-.7 3.5.8 3.6 2z"/>
|
||||
<path fill="#513625" d="M295.2 195.8s1.3-.2 2.2-.6l2.2-.8-2 1.2-2 .5z"/>
|
||||
<path fill="#f9c83a" d="M290.8 202.3c-.2 0-1.3 0-3-1.1-1.8-1.2-2.3-3.2-2.3-3.2s-.4-1.9 1.4-3.8 2.1-1.3 2.2-1.2q0 0 0 .1l-1.7 1.3-.7 1.3-.7 1.2v1.4l.8 1.5 2.5 1.5z"/>
|
||||
<path fill="#8b5122" d="M289.8 191.4v-.2.3-.3.3-.3l-.3.2h.2v-.2l-.2.2.2-.2h-.2v.2l.2-.2h-.2.2-.2.2-.2.2l-.2-.1.2.1-.2-.1-.1.1-.4.5-.2.6v.1q0 .5.4.6h1.4l.1-.4-.3-.2-.7.1h-.3v-.4l.3-.5.2-.1zl.1-.2-.3-.2-.2.3.3.2z"/>
|
||||
<path fill="#f9c83a" d="m295.1 194.1-3.8 1.1c-.3.2 1.2 0 2.4 0l1.3.1.9-.2c1.4-.5 4.4-1.6 4.7-.3.2 1-4.1 2-4.1 2v.5l3.4-.9 1.9-1 .5-.9-1.7-1.2H298l-1.2.3z"/>
|
||||
<path fill="#8f4620" d="M289.7 199.5c.3.8.9 2 1.6 2.3 0 .1-.5.5-1.7.1-1.2-.3-3-.7-4.1-4v.7l.7 1.3 1.1 1.2 1.9 1.1 1.2.3 1-.2.6-.4-1.1-1-1.4-2.3z"/>
|
||||
<path fill="#fcca3d" d="M302.1 232.6v1.2h-.7v-1.5zm-4.7-34.4-1.2-1.4-.8.1 1.2 1.8z"/>
|
||||
<path fill="#816c2a" d="m302 235.5-1.7-1-2.4-.6v.3h.2l2.1.6 1.7 1zm0-3.1h-3l-1.3.7.1.2a4 4 0 0 1 2.6-.7l1.4.1v-.3zm-.4-2.7-2.6 1.4-1.6 1.2.2.2.5-.4 2.6-1.6 1-.5zm-1.7-2.7s0 .7-.3 1.2l-.6.8-2.5 2.6.2.3 2.5-2.7.7-.8q.4-1 .3-1.4zm-2.1-1.2a4 4 0 0 1-.2 2.2l-1 2.2-.4.9-.2.3.2.2s1.3-2.2 1.7-3.5q.3-.7.2-1.5v-.9zm-2.1-.3v1.2q0 1-.2 1.7l-.7 1.8-.3 1 .3.1 1-2.8q.3-.8.2-1.8v-1.2zm-1.6 0v1.2l-.3 2-.5 2.5h.3l.2-.8.3-1.7c.3-1 .3-3.2.3-3.2zm-1.8.3v2.9l-.4 2.5h.3l.4-2.4.1-1.4v-1.6zm-1.3.2v.2l-.3 2.2-.6 1.9-.2 1h.3l.8-2.9.3-2.2v-.2zm-1.6 0v.7q.1 1-.4 2l-1.3 1.6-.7.4-.2.2.1.3s1.7-1 2.4-2.3q.5-1.2.5-2.2v-.7zm-.9-.3v.2l-1 1.9q-.6.6-1.3 1.1l-.8.5.2.3s1.4-.8 2.1-1.7l1.1-2.2h-.3zm-1.5-.7v.1l-1 1.3q-.2.3-.9.6l-.6.4.1.3.7-.4 1-.7.7-.9.3-.6zm-.7-1-.3.3-.9 1-.5.4-.4.3.1.3.7-.4c.7-.6 1.5-1.7 1.5-1.7zm-.4-.6-.2.2-.9.6-.8.3v.4l.6-.3c.7-.3 1.5-1 1.5-1zm-.2-.7-.8.4-.6.3-.4.2v.3q.3 0 .5-.2l1.4-.7zm-.4-1.3-.5.5-.9.3v.3a2 2 0 0 0 1.2-.5l.5-.4zm.1-2.2-.6.5q-.5.4-.7 1h-.1v.5l.2-.2.2-.2q.1-.4.7-.9l.5-.5zm10.7-12.8h1.6l.1-.2v-.1h-.1v.3-.1h-.2.1-.1v-.2l.1.1v-.1.1-.1h-1.5zm0-1h.2q.3 0 .6-.2.6-.2 1-.6l.5-.3h.3v-.4l-.6.2-1 .7-.8.3zm0-1.5.7-.2 1.2-.8q.6-.4 1-.4v-.3q-.4 0-.8.2l-1.2.7-1 .5v.3zm-.6-1.4 1.5-1 1.6-1.2-.1-.3-1.7 1.2q-.8.8-1.5 1l.2.4zm-1-1.5 3.2-2.3-.2-.3-3.2 2.3zm-1.5-1.6a21 21 0 0 1 3.4-2.3l-.2-.2-1.5 1-1.9 1.3zm-1-1 2.6-1.8.8-.5-.1-.3-.8.5-2.7 2z"/>
|
||||
<path fill="#78732e" d="m294.5 195.4.1.1 2.5 2.5q1.6 1.9 1.8 4.1v.5a10 10 0 0 1-2.5 5c-2 2.3-4.8 4.4-7 6.4a18 18 0 0 0-3 3.1 6 6 0 0 0-1.2 3.7 6 6 0 0 0 1.1 3.4 4 4 0 0 0 3.9 2c1.8 0 3.8-.7 5.6-.7q2.4-.2 4.4 1.9c1.3 1.4 1.7 3.6 1.7 5.7q0 2.4-.4 4.2l-.4 1.8h.3s.8-2.8.8-6c0-2.1-.4-4.5-1.8-6a6 6 0 0 0-4.6-1.9c-1.9 0-3.9.6-5.6.6a4 4 0 0 1-3.6-1.8 6 6 0 0 1-1-3.3v-.1q0-2.4 1.9-4.3c1.8-2 4.5-4 7-6.2 2.3-2.2 4.4-4.5 4.7-7.5v-.5c0-1.8-1.1-3.5-2.3-4.8l-2.3-2.2z"/>
|
||||
<path fill="#a8ac71" d="m292.1 198.4-.4-.3-.3.1.6.5zm1 1-.3-.3h-.1l.2.4z"/>
|
||||
<path fill="#78732e" d="m294.5 201-.2-.4-.2.2zm1 1.5-.1-.3h-.3l.4.5zm.7 1.5-.2-.4v.4zm0 1.5v-.4l-.2-.1v.5zm0 1v-.5l-.1-.1v.6zM284 221.1l.1-.7c.1-.3-.3.1-.3.1v.5z"/>
|
||||
<path fill="#fff" d="m284 222.1-.3.1.1.5.1-.2z"/>
|
||||
<path fill="#78732e" d="M284 223.9v-.4h-.2v.6z"/>
|
||||
<path fill="#fff" d="M284 224.9v-.4h-.1v.4zm.3 1.4v-.4l-.2.1zm.4 1.4-.1-.5h-.2l.2.6z"/>
|
||||
<path fill="#a8ac71" d="m285.6 229.7-.2-.3h-.2zm1.5 1.4-.5-.3c-.3-.3-.1.2-.1.2l.4.2zm9.8.8-.4-.3q-.2-.1.2.4c.1.3.2-.1.2-.1"/>
|
||||
<path fill="#fff" d="m297.7 232.5-.3-.3v.3h.2z"/>
|
||||
<path fill="#a8ac71" d="M297.9 233q-.2-.1-.2.1l.2.3zm0 1.3v-.5q0-.1-.1 0v.5z"/>
|
||||
<path fill="#fff" d="m297.4 235.7.2-.4h-.2zm-14.8-52s.5-.2.1.4l.3-.5h-.5z"/>
|
||||
<path fill="#f9c83a" d="m294.6 195 .4.3h-.5z"/>
|
||||
<path fill="#8f4620" d="m295 195.3-.7.1c-.2 0 .2-.2.2-.2l.4.1z"/>
|
||||
<path fill="#977c2e" d="M301 239.1s.3 0 .5-.3-.1.4-.1.4l-.3.1-.2-.2z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 83 KiB |
@@ -0,0 +1,26 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-my" viewBox="0 0 640 480">
|
||||
<g clip-path="url(#my-a)">
|
||||
<path fill="#C00" d="M0 0h640v480H0z"/>
|
||||
<path fill="#C00" d="M0 0h640v34.3H0z"/>
|
||||
<path fill="#fff" d="M0 34.3h640v34.3H0z"/>
|
||||
<path fill="#C00" d="M0 68.6h640v34.3H0z"/>
|
||||
<path fill="#fff" d="M0 102.9h640V137H0z"/>
|
||||
<path fill="#C00" d="M0 137.1h640v34.3H0z"/>
|
||||
<path fill="#fff" d="M0 171.4h640v34.3H0z"/>
|
||||
<path fill="#C00" d="M0 205.7h640V240H0z"/>
|
||||
<path fill="#fff" d="M0 240h640v34.3H0z"/>
|
||||
<path fill="#C00" d="M0 274.3h640v34.3H0z"/>
|
||||
<path fill="#fff" d="M0 308.6h640v34.3H0z"/>
|
||||
<path fill="#C00" d="M0 342.9h640V377H0z"/>
|
||||
<path fill="#fff" d="M0 377.1h640v34.3H0z"/>
|
||||
<path fill="#C00" d="M0 411.4h640v34.3H0z"/>
|
||||
<path fill="#fff" d="M0 445.7h640V480H0z"/>
|
||||
<path fill="#006" d="M0 .5h320v274.3H0z"/>
|
||||
<path fill="#FC0" d="m207.5 73.8 6 40.7 23-34-12.4 39.2 35.5-20.8-28.1 30 41-3.2-38.3 14.8 38.3 14.8-41-3.2 28.1 30-35.5-20.8 12.3 39.3-23-34.1-6 40.7-5.9-40.7-23 34 12.4-39.2-35.5 20.8 28-30-41 3.2 38.4-14.8-38.3-14.8 41 3.2-28.1-30 35.5 20.8-12.4-39.3 23 34.1zm-33.3 1.7a71 71 0 0 0-100 65 71 71 0 0 0 100 65 80 80 0 0 1-83.2 6.2 80 80 0 0 1-43.4-71.2 80 80 0 0 1 126.6-65"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="my-a">
|
||||
<path fill="#fff" d="M0 0h640v480H0z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-no" viewBox="0 0 640 480">
|
||||
<path fill="#ed2939" d="M0 0h640v480H0z"/>
|
||||
<path fill="#fff" d="M180 0h120v480H180z"/>
|
||||
<path fill="#fff" d="M0 180h640v120H0z"/>
|
||||
<path fill="#002664" d="M210 0h60v480h-60z"/>
|
||||
<path fill="#002664" d="M0 210h640v60H0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 318 B |
@@ -0,0 +1,36 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-nz" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<g id="nz-b">
|
||||
<g id="nz-a">
|
||||
<path d="M0-.3v.5l1-.5z"/>
|
||||
<path d="M.2.3 0-.1l1-.2z"/>
|
||||
</g>
|
||||
<use xlink:href="#nz-a" transform="scale(-1 1)"/>
|
||||
<use xlink:href="#nz-a" transform="rotate(72 0 0)"/>
|
||||
<use xlink:href="#nz-a" transform="rotate(-72 0 0)"/>
|
||||
<use xlink:href="#nz-a" transform="scale(-1 1)rotate(72)"/>
|
||||
</g>
|
||||
</defs>
|
||||
<path fill="#00247d" fill-rule="evenodd" d="M0 0h640v480H0z"/>
|
||||
<g transform="translate(-111 36.1)scale(.66825)">
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="translate(900 120)scale(45.4)"/>
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="matrix(30 0 0 30 900 120)"/>
|
||||
</g>
|
||||
<g transform="rotate(82 525.2 114.6)scale(.66825)">
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="rotate(-82 519 -457.7)scale(40.4)"/>
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="rotate(-82 519 -457.7)scale(25)"/>
|
||||
</g>
|
||||
<g transform="rotate(82 525.2 114.6)scale(.66825)">
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="rotate(-82 668.6 -327.7)scale(45.4)"/>
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="rotate(-82 668.6 -327.7)scale(30)"/>
|
||||
</g>
|
||||
<g transform="translate(-111 36.1)scale(.66825)">
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="translate(900 480)scale(50.4)"/>
|
||||
<use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="matrix(35 0 0 35 900 480)"/>
|
||||
</g>
|
||||
<path fill="#012169" d="M0 0h320v240H0z"/>
|
||||
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
|
||||
<path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
|
||||
<path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
|
||||
<path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ph" viewBox="0 0 640 480">
|
||||
<path fill="#0038a8" d="M0 0h640v240H0z"/>
|
||||
<path fill="#ce1126" d="M0 240h640v240H0z"/>
|
||||
<path fill="#fff" d="M415.7 240 0 480V0"/>
|
||||
<path fill="#fcd116" d="M26.7 42.4 41 55l16.6-9.2-7.4 17.5 14 13-19-1.6-8.1 17.2-4.3-18.5L14 71l16.3-10zm323.8 172.3.4 19 18 6.3-18 6.2-.4 19-11.5-15.1-18.2 5.5 10.8-15.6-10.8-15.6 18.2 5.5zM37.2 388.1l8 17.2 19-1.6-13.9 13 7.4 17.5-16.6-9.1-14.4 12.4 3.6-18.7L14 409l18.9-2.4zm114.2-249-6.2 6.2 3.1 47-3 .3-5.7-42.9-5.1 5 7.6 38.4a48 48 0 0 0-17.2 7.1l-21.7-32.4H96l26.4 34.3-2.4 2-31.1-35.5h-8.8v8.8l35.4 31-2 2.5-34.3-26.3v7.1l32.5 21.7q-5.2 7.8-7.1 17.2L66.3 223l-5.1 5 42.9 5.7q-.3 1.6-.3 3.1l-47-3-6.2 6.2 6.2 6.2 47-3.1.3 3.1-42.9 5.7 5 5 38.4-7.6a48 48 0 0 0 7.1 17.2l-32.5 21.7v7.2l34.3-26.3 2 2.4-35.4 31v8.8H89l31-35.4 2.5 2L96 312.2h7.2l21.7-32.5q7.8 5.2 17.2 7.1l-7.6 38.4 5 5 5.7-42.9q1.5.3 3.1.3l-3 47 6.1 6.2 6.3-6.2-3.1-47 3-.3 5.7 43 5.1-5.1-7.6-38.4a48 48 0 0 0 17.2-7.1l21.7 32.5h7.2l-26.4-34.3 2.4-2 31.1 35.4h8.8v-8.8l-35.4-31 2-2.4 34.3 26.3v-7.2l-32.5-21.7q5.2-7.8 7.1-17.2l38.3 7.6 5.1-5-42.9-5.7q.3-1.5.3-3.1l47 3 6.2-6.1-6.2-6.2-47 3-.3-3 42.9-5.7-5-5-38.4 7.5a48 48 0 0 0-7.1-17.2l32.5-21.7v-7.1l-34.3 26.3-2-2.4 35.4-31v-8.9H214l-31 35.5-2.5-2 26.4-34.3h-7.2L178 200.2q-7.8-5.2-17.2-7.1l7.6-38.3-5-5-5.7 42.8-3.1-.3 3-47z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pl" viewBox="0 0 640 480">
|
||||
<g fill-rule="evenodd">
|
||||
<path fill="#fff" d="M640 480H0V0h640z"/>
|
||||
<path fill="#dc143c" d="M640 480H0V240h640z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 219 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ro" viewBox="0 0 640 480">
|
||||
<g fill-rule="evenodd" stroke-width="1pt">
|
||||
<path fill="#00319c" d="M0 0h213.3v480H0z"/>
|
||||
<path fill="#ffde00" d="M213.3 0h213.4v480H213.3z"/>
|
||||
<path fill="#de2110" d="M426.7 0H640v480H426.7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 302 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ru" viewBox="0 0 640 480">
|
||||
<path fill="#fff" d="M0 0h640v160H0z"/>
|
||||
<path fill="#0039a6" d="M0 160h640v160H0z"/>
|
||||
<path fill="#d52b1e" d="M0 320h640v160H0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 225 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-se" viewBox="0 0 640 480">
|
||||
<path fill="#005293" d="M0 0h640v480H0z"/>
|
||||
<path fill="#fecb00" d="M176 0v192H0v96h176v192h96V288h368v-96H272V0z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 209 B |
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sg" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<clipPath id="sg-a">
|
||||
<path fill-opacity=".7" d="M0 0h640v480H0z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g fill-rule="evenodd" clip-path="url(#sg-a)">
|
||||
<path fill="#fff" d="M-20 0h720v480H-20z"/>
|
||||
<path fill="#df0000" d="M-20 0h720v240H-20z"/>
|
||||
<path fill="#fff" d="M146 40.2a84.4 84.4 0 0 0 .8 165.2 86 86 0 0 1-106.6-59 86 86 0 0 1 59-106c16-4.6 30.8-4.7 46.9-.2z"/>
|
||||
<path fill="#fff" d="m133 110 4.9 15-13-9.2-12.8 9.4 4.7-15.2-12.8-9.3 15.9-.2 5-15 5 15h15.8zm17.5 52 5 15.1-13-9.2-12.9 9.3 4.8-15.1-12.8-9.4 15.9-.1 4.9-15.1 5 15h16zm58.5-.4 4.9 15.2-13-9.3-12.8 9.3 4.7-15.1-12.8-9.3 15.9-.2 5-15 5 15h15.8zm17.4-51.6 4.9 15.1-13-9.2-12.8 9.3 4.8-15.1-12.9-9.4 16-.1 4.8-15.1 5 15h16zm-46.3-34.3 5 15.2-13-9.3-12.9 9.4 4.8-15.2-12.8-9.4 15.8-.1 5-15.1 5 15h16z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 889 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-th" viewBox="0 0 640 480">
|
||||
<g fill-rule="evenodd">
|
||||
<path fill="#f4f5f8" d="M0 0h640v480H0z"/>
|
||||
<path fill="#2d2a4a" d="M0 162.5h640v160H0z"/>
|
||||
<path fill="#a51931" d="M0 0h640v82.5H0zm0 400h640v80H0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 284 B |
@@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tr" viewBox="0 0 640 480">
|
||||
<g fill-rule="evenodd">
|
||||
<path fill="#e30a17" d="M0 0h640v480H0z"/>
|
||||
<path fill="#fff" d="M407 247.5c0 66.2-54.6 119.9-122 119.9s-122-53.7-122-120 54.6-119.8 122-119.8 122 53.7 122 119.9"/>
|
||||
<path fill="#e30a17" d="M413 247.5c0 53-43.6 95.9-97.5 95.9s-97.6-43-97.6-96 43.7-95.8 97.6-95.8 97.6 42.9 97.6 95.9z"/>
|
||||
<path fill="#fff" d="m430.7 191.5-1 44.3-41.3 11.2 40.8 14.5-1 40.7 26.5-31.8 40.2 14-23.2-34.1 28.3-33.9-43.5 12-25.8-37z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 549 B |
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-us" viewBox="0 0 640 480">
|
||||
<path fill="#bd3d44" d="M0 0h640v480H0"/>
|
||||
<path stroke="#fff" stroke-width="37" d="M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640"/>
|
||||
<path fill="#192f5d" d="M0 0h364.8v258.5H0"/>
|
||||
<marker id="us-a" markerHeight="30" markerWidth="30">
|
||||
<path fill="#fff" d="m14 0 9 27L0 10h28L5 27z"/>
|
||||
</marker>
|
||||
<path fill="none" marker-mid="url(#us-a)" d="m0 0 16 11h61 61 61 61 60L47 37h61 61 60 61L16 63h61 61 61 61 60L47 89h61 61 60 61L16 115h61 61 61 61 60L47 141h61 61 60 61L16 166h61 61 61 61 60L47 192h61 61 60 61L16 218h61 61 61 61 60z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 648 B |
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-za" viewBox="0 0 640 480">
|
||||
<defs>
|
||||
<clipPath id="za-a">
|
||||
<path fill-opacity=".7" d="M-71.9 0h682.7v512H-71.9z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#za-a)" transform="translate(67.4)scale(.93748)">
|
||||
<g fill-rule="evenodd" stroke-width="1pt">
|
||||
<path fill="#000001" d="M-71.9 407.8V104.4L154 256.1z"/>
|
||||
<path fill="#000c8a" d="m82.2 512.1 253.6-170.6H696V512H82.2z"/>
|
||||
<path fill="#e1392d" d="M66 0h630v170.8H335.7S69.3-1.7 66 0"/>
|
||||
<path fill="#ffb915" d="M-71.9 64v40.4L154 256-72 407.8v40.3l284.5-192z"/>
|
||||
<path fill="#007847" d="M-71.9 64V0h95l301.2 204h371.8v104.2H324.3L23 512h-94.9v-63.9l284.4-192L-71.8 64z"/>
|
||||
<path fill="#fff" d="M23 0h59.2l253.6 170.7H696V204H324.3zm0 512.1h59.2l253.6-170.6H696v-33.2H324.3L23 512z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 860 B |
@@ -0,0 +1,3 @@
|
||||
<svg height="30" width="30" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 17 14">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"></path>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 260 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M13.09 3.294c1.924.95 3.422 1.69 5.472.692a1 1 0 0 1 1.438.9v9.54a1 1 0 0 1-.562.9c-2.981 1.45-5.382.24-7.25-.701a38.739 38.739 0 0 0-.622-.31c-1.033-.497-1.887-.812-2.756-.77-.76.036-1.672.357-2.81 1.396V21a1 1 0 1 1-2 0V4.971a1 1 0 0 1 .297-.71c1.522-1.506 2.967-2.185 4.417-2.255 1.407-.068 2.653.453 3.72.967.225.108.443.216.655.32Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 463 B |
@@ -1,50 +1,253 @@
|
||||
const getRates = require("../util/exchangeRate");
|
||||
const { calculatePlanProgress, updatePlanProgressInDB } = require("../util/calculations");
|
||||
const status = require("../util/statuses");
|
||||
const bcrypt = require('bcrypt');
|
||||
const ObjectId = require('mongodb').ObjectId;
|
||||
const session = require("express-session");
|
||||
const bcrypt = require("bcrypt");
|
||||
const joi = require("joi");
|
||||
const salt = 12;
|
||||
|
||||
module.exports = (middleware, users) => {
|
||||
/**
|
||||
* getAssetSchema returns correct joi object
|
||||
* to validate req.body depending on asset type
|
||||
* @param {string} type of asset
|
||||
* @returns {joi.object} schema
|
||||
*/
|
||||
const getAssetSchema = (type) => {
|
||||
let assetSchema;
|
||||
|
||||
switch (type) {
|
||||
case "other":
|
||||
assetSchema = joi.object({
|
||||
type: joi.string().valid("other", "stock", "saving").required(),
|
||||
name: joi.string().alphanum().min(3).max(30).required(),
|
||||
value: joi.number().min(0).required(),
|
||||
purchaseDate: joi.date().required(),
|
||||
description: joi.string().alphanum().max(240),
|
||||
id: joi.string().alphanum(), // May be passed when updating existing asset
|
||||
});
|
||||
break;
|
||||
case "saving":
|
||||
assetSchema = joi.object({
|
||||
type: joi.string().valid("other", "stock", "saving").required(),
|
||||
name: joi.string().alphanum().min(3).max(30).required(),
|
||||
value: joi.number().min(0).required(),
|
||||
id: joi.string().alphanum(), // May be passed when updating existing asset
|
||||
});
|
||||
break;
|
||||
case "stock":
|
||||
assetSchema = joi.object({
|
||||
type: joi.string().valid("other", "stock", "saving").required(),
|
||||
ticker: joi.string().alphanum().min(3).max(5).required(),
|
||||
price: joi.number().min(0).required(),
|
||||
quantity: joi.number().min(1).required(),
|
||||
purchaseDate: joi.date().required(),
|
||||
id: joi.string().alphanum(), // May be passed when updating existing asset
|
||||
});
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
};
|
||||
|
||||
return assetSchema;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {function} middleware handler
|
||||
* @param {MongoClient.collection} users db collection
|
||||
* @param {MongoClient.collection} assets db collection
|
||||
* @returns {express.Router} user protected routes router
|
||||
*/
|
||||
module.exports = (middleware, users, plans, assets) => {
|
||||
const router = require("express").Router();
|
||||
|
||||
router.use(middleware);
|
||||
|
||||
router.get('/home', async (req, res) => {
|
||||
res.render('home', { user: req.user });
|
||||
// if no session with geoData
|
||||
if (!req.session.geoData) {
|
||||
req.session.geoData = {
|
||||
country: null,
|
||||
toCurrencyRates: [],
|
||||
};
|
||||
}
|
||||
|
||||
res.render('dashboard', { user: req.user, geoData: req.session.geoData });
|
||||
|
||||
return res.status(status.Ok);
|
||||
});
|
||||
|
||||
router.get('/assets', (req, res) => {
|
||||
res.render('assets', { user: req.user });
|
||||
router.get('/assets', async (req, res) => {
|
||||
let userAssets = await assets.find({ userId: new ObjectId(req.session.user._id) }).toArray();
|
||||
res.render('assets', {
|
||||
user: req.session.user,
|
||||
errMessage: req.session.errMessage,
|
||||
assets: userAssets,
|
||||
geoData: req.session.geoData });
|
||||
return res.status(status.Ok);
|
||||
});
|
||||
|
||||
router.get('/plans', (req, res) => {
|
||||
res.render('plans', { user: req.user });
|
||||
return res.status(status.Ok);
|
||||
router.get('/plans', async (req, res) => {
|
||||
try {
|
||||
// console.log(new ObjectId(req.session.user._id));
|
||||
const userPlansFromDB = await plans.find({userId: new ObjectId(req.session.user._id) }).toArray();
|
||||
// console.log(userPlansFromDB);
|
||||
|
||||
// Use a for...of loop for proper async/await behavior in series for updates
|
||||
for (const plan of userPlansFromDB) {
|
||||
const percentage = await calculatePlanProgress(plan, assets, req.session.user._id);
|
||||
await updatePlanProgressInDB(plan._id, percentage, plans); // Pass the 'plans' collection
|
||||
}
|
||||
|
||||
// Re-fetch plans to get updated progress for rendering
|
||||
const updatedUserPlans = await plans.find({ userId: new ObjectId(req.session.user._id) }).toArray();
|
||||
|
||||
res.render('plans', {
|
||||
user: req.session.user,
|
||||
plans: updatedUserPlans, // Send the most up-to-date plans
|
||||
geoData: req.session.geoData
|
||||
});
|
||||
} catch (err) {
|
||||
console.error("Error fetching plans:", err);
|
||||
req.session.errMessage = "Could not load your plans. Please try again.";
|
||||
res.status(status.InternalServerError).redirect('/home');
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/plans/:id', async (req, res) => {
|
||||
|
||||
try {
|
||||
const planId = req.params.id;
|
||||
let userAssets = await assets.find({ userId: new ObjectId(req.session.user._id) }).toArray();
|
||||
|
||||
|
||||
if (!ObjectId.isValid(planId)) {
|
||||
req.session.errMessage = "Invalid plan ID format.";
|
||||
return res.status(status.BadRequest).redirect('/plans');
|
||||
}
|
||||
|
||||
const plan = await plans.findOne({ userId: new ObjectId(req.session.user._id), _id: new ObjectId(planId) });
|
||||
|
||||
if (!plan) {
|
||||
console.log(`Plan not found with ID: ${planId} for user: ${req.session.user.email}`);
|
||||
req.session.errMessage = "Plan not found or you do not have permission to view it.";
|
||||
return res.status(status.NotFound).redirect('/plans');
|
||||
}
|
||||
// console.log("Found plan:", plan);
|
||||
|
||||
// The plan.progress should be up-to-date from the database as it was updated in the /plans route
|
||||
// or when assets/plans are modified. If an immediate recalculation for this specific view is absolutely needed,
|
||||
// (e.g., if assets were modified without an immediate plan progress update elsewhere),
|
||||
// you could do it here:
|
||||
// const currentProgress = await calculatePlanProgress(plan, assets, req.session.user._id);
|
||||
// plan.progress = currentProgress; // This would only update the 'plan' object for this render, not in DB
|
||||
|
||||
res.render('planDetail', {
|
||||
user: req.session.user,
|
||||
plan: plan, // This plan object will have the progress from the database
|
||||
geoData: req.session.geoData,
|
||||
assets: userAssets,
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
console.error("Error fetching plan:", err);
|
||||
req.session.errMessage = "Could not load your plan. Please try again.";
|
||||
res.status(status.InternalServerError).redirect('/home');
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/newPlan', (req, res) => {
|
||||
if(!req.session.user.financialData){
|
||||
req.session.errMessage = "Please complete your financial data before creating a plan.";
|
||||
return res.status(status.Unauthorized).redirect('/questionnaire');
|
||||
}
|
||||
const errMessage = req.session.errMessage;
|
||||
req.session.errMessage = "";
|
||||
res.render('newPlan', {
|
||||
user: req.session.user,
|
||||
errMessage: errMessage,
|
||||
geoData: req.session.geoData
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/newPlan', async (req, res) => {
|
||||
const planSchema = joi.object({
|
||||
name: joi.string().min(3).max(100).required(),
|
||||
retirementAge: joi.number().min(18).max(120).required(),
|
||||
retirementExpenses: joi.number().min(0).required(),
|
||||
retirementAssets: joi.number().min(0).required(),
|
||||
retirementLiabilities: joi.number().min(0).required(),
|
||||
});
|
||||
|
||||
const validationOptions = { convert: true, abortEarly: false };
|
||||
const { error, value } = planSchema.validate(req.body, validationOptions);
|
||||
|
||||
if (error) {
|
||||
console.error("Plan validation error:", error.details);
|
||||
req.session.errMessage = "Invalid input: " + error.details.map(d => d.message.replace(/"/g, '')).join(', ');
|
||||
res.status(status.BadRequest).redirect("/newPlan");
|
||||
return;
|
||||
}
|
||||
const newPlan = {
|
||||
userId: new ObjectId(req.session.user._id),
|
||||
name: value.name,
|
||||
retirementAge: value.retirementAge,
|
||||
retirementExpenses: value.retirementExpenses,
|
||||
retirementAssets: value.retirementAssets,
|
||||
retirementLiabilities: value.retirementLiabilities,
|
||||
progress: "0"
|
||||
};
|
||||
|
||||
try{
|
||||
await plans.insertOne({userId: new ObjectId(req.session.user._id), ...newPlan});
|
||||
req.session.errMessage = "";
|
||||
res.redirect('/plans');
|
||||
}
|
||||
catch(err){
|
||||
console.error("Error saving plan:", err);
|
||||
req.session.errMessage = "An error occurred while saving your plan. Please try again.";
|
||||
res.status(status.InternalServerError).redirect("/newPlan");
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/more', (req, res) => {
|
||||
res.render('more', { user: req.user });
|
||||
res.render('more', {
|
||||
user: req.session.user,
|
||||
geoData: req.session.geoData
|
||||
});
|
||||
return res.status(status.Ok);
|
||||
});
|
||||
|
||||
router.get('/profile', (req, res) => {
|
||||
res.render('profile', { user: req.user, errMessage: req.session.errMessage });
|
||||
res.render('profile', {
|
||||
user: req.session.user,
|
||||
errMessage: req.session.errMessage,
|
||||
geoData: req.session.geoData
|
||||
});
|
||||
return res.status(status.Ok);
|
||||
});
|
||||
|
||||
router.get('/settings', (req, res) => {
|
||||
res.render('settings', { user: req.user });
|
||||
res.render('settings', {
|
||||
user: req.session.user,
|
||||
geoData: req.session.geoData
|
||||
});
|
||||
return res.status(status.Ok);
|
||||
});
|
||||
|
||||
router.get('/questionnaire', (req, res) => {
|
||||
const errMessage = req.session.errMessage;
|
||||
req.session.errMessage = "";
|
||||
res.render('questionnaire', { user: req.user, errMessage: errMessage });
|
||||
res.render('questionnaire', {
|
||||
user: req.session.user,
|
||||
errMessage: errMessage,
|
||||
geoData: req.session.geoData
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/questionnaire', (req, res) => {
|
||||
// console.log("Questionnaire POST body:", req.body);
|
||||
|
||||
const questionnaireSchema = joi.object({
|
||||
dob: joi.date().required(),
|
||||
education: joi.string().valid('primary', 'secondary', 'tertiary', 'postgraduate').required(),
|
||||
@@ -53,10 +256,6 @@ module.exports = (middleware, users) => {
|
||||
expenses: joi.number().min(0).required(),
|
||||
assets: joi.number().min(0).required(),
|
||||
liabilities: joi.number().min(0).required(),
|
||||
retirementAge: joi.number().min(18).max(120).required(),
|
||||
retirementExpenses: joi.number().min(0).required(),
|
||||
retirementAssets: joi.number().min(0).required(),
|
||||
retirementLiabilities: joi.number().min(0).required(),
|
||||
});
|
||||
|
||||
const validationOptions = { convert: true, abortEarly: false };
|
||||
@@ -70,7 +269,7 @@ module.exports = (middleware, users) => {
|
||||
}
|
||||
|
||||
users.updateOne(
|
||||
{ email: req.session.email },
|
||||
{ _id: new ObjectId(req.session.user._id) },
|
||||
{
|
||||
$set: {
|
||||
financialData: true,
|
||||
@@ -81,23 +280,20 @@ module.exports = (middleware, users) => {
|
||||
expenses: value.expenses,
|
||||
assets: value.assets,
|
||||
liabilities: value.liabilities,
|
||||
retirementAge: value.retirementAge,
|
||||
retirementExpenses: value.retirementExpenses,
|
||||
retirementAssets: value.retirementAssets,
|
||||
retirementLiabilities: value.retirementLiabilities,
|
||||
}
|
||||
}
|
||||
).then((result) => {
|
||||
if (result.matchedCount === 0) {
|
||||
console.log(`User not found during questionnaire update: ${req.session.email}`);
|
||||
console.log(`User not found during questionnaire update: ${req.session.user.email}`);
|
||||
req.session.errMessage = "User session invalid. Please log in again.";
|
||||
res.status(status.NotFound).redirect("/login");
|
||||
return;
|
||||
}
|
||||
if (result.modifiedCount === 0 && result.matchedCount === 1) {
|
||||
console.log(`User questionnaire data unchanged (already up-to-date): ${req.session.email}`);
|
||||
console.log(`User questionnaire data unchanged (already up-to-date): ${req.session.user.email}`);
|
||||
}
|
||||
|
||||
req.session.user.financialData = true;
|
||||
req.session.errMessage = "";
|
||||
res.status(status.Ok).redirect("/home");
|
||||
|
||||
@@ -125,7 +321,6 @@ module.exports = (middleware, users) => {
|
||||
}
|
||||
|
||||
let update = {
|
||||
// email: req.body.email,
|
||||
name: req.body.name,
|
||||
};
|
||||
|
||||
@@ -161,5 +356,190 @@ module.exports = (middleware, users) => {
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/createAsset", async (req, res) => {
|
||||
// Create asset, each asset has different data structure based on type
|
||||
const type = req.body.type;
|
||||
const assetSchema = getAssetSchema(type);
|
||||
|
||||
if (!assetSchema) {
|
||||
console.error("Modified asset type, rejected");
|
||||
req.session.errMessage = "Invalid input";
|
||||
return res.status(status.BadRequest).redirect("/assets");
|
||||
}
|
||||
|
||||
const valid = assetSchema.validate(req.body);
|
||||
|
||||
if (valid.err) {
|
||||
req.session.errMessage = "Invalid input",
|
||||
res.status(status.BadRequest);
|
||||
return res.redirect("/assets");
|
||||
}
|
||||
|
||||
let newAsset = {
|
||||
userId: new ObjectId(req.session.user._id),
|
||||
...req.body,
|
||||
updatedAt: new Date(),
|
||||
};
|
||||
|
||||
if (type == "stock") {
|
||||
newAsset.quantity = parseInt(newAsset.quantity);
|
||||
newAsset.price = parseFloat(newAsset.price)
|
||||
newAsset.value = newAsset.quantity * newAsset.price;
|
||||
newAsset.name = `${newAsset.ticker} Stock`;
|
||||
}
|
||||
newAsset.value = parseFloat(newAsset.value);
|
||||
|
||||
assets.insertOne(newAsset, (err, _) => {
|
||||
if (err) {
|
||||
console.error("Error creating asset: ", err);
|
||||
req.session.errMessage = "Internal server error";
|
||||
return res.status(status.InternalServerError).redirect("/assets");
|
||||
}
|
||||
});
|
||||
|
||||
req.session.errMessage = "";
|
||||
return res.status(status.Ok).redirect("/assets");
|
||||
});
|
||||
|
||||
router.post("/updateAsset", async (req, res) => {
|
||||
const type = req.body.type;
|
||||
const assetSchema = getAssetSchema(type);
|
||||
|
||||
if (!assetSchema) {
|
||||
console.error("Modified asset type, rejected");
|
||||
req.session.errMessage = "Invalid input";
|
||||
return res.status(status.BadRequest).redirect("/assets");
|
||||
}
|
||||
|
||||
const valid = assetSchema.validate(req.body);
|
||||
|
||||
if (valid.err) {
|
||||
req.session.errMessage = "Invalid input",
|
||||
res.status(status.BadRequest);
|
||||
return res.redirect("/assets");
|
||||
}
|
||||
|
||||
if (req.body.userId != req.session.user._id) {
|
||||
req.session.errMessage = "Cannot change asset owner",
|
||||
res.status(status.BadRequest);
|
||||
return res.redirect("/assets");
|
||||
}
|
||||
|
||||
let update = { ...req.body, updatedAt: new Date() };
|
||||
if (type == "stock") {
|
||||
update.quantity = parseInt(update.quantity);
|
||||
update.price = parseFloat(update.price)
|
||||
update.value = update.quantity * update.price;
|
||||
update.name = `${update.ticker} Stock`;
|
||||
}
|
||||
update.value = parseFloat(update.value);
|
||||
delete update.id
|
||||
|
||||
assets.updateOne(
|
||||
{ "_id": new ObjectId(req.body.id) },
|
||||
{ $set: update },
|
||||
).then((result) => {
|
||||
if (result.matchedCount === 0) {
|
||||
console.log(`Asset not found: ${req.body.id}`);
|
||||
req.session.errMessage = "Unable to update asset";
|
||||
return res.status(status.NotFound).redirect("/assets");
|
||||
}
|
||||
if (result.modifiedCount === 0 && result.matchedCount === 1) {
|
||||
console.log(`Asset data unchanged (already up-to-date): ${req.body.id}`);
|
||||
}
|
||||
|
||||
req.session.errMessage = "";
|
||||
return res.status(status.Ok).redirect("/assets");
|
||||
|
||||
}).catch((err) => {
|
||||
console.error("Error updating asset: ", err);
|
||||
req.session.errMessage = "An error occurred while saving your information. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/assets");
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/deleteAsset", (req, res) => {
|
||||
const id = new ObjectId(req.body.id);
|
||||
|
||||
assets.deleteOne(
|
||||
{ "_id": id }
|
||||
).then((result) => {
|
||||
if (result.deletedCount === 0) {
|
||||
console.error(`Asset not found: ${req.body.id}`);
|
||||
req.session.errMessage = "Unable to delete asset. Please try again.";
|
||||
return res.status(status.NotFound).redirect("/assets");
|
||||
}
|
||||
|
||||
if (!result.acknowledged) {
|
||||
console.error("Error deleting asset: ", err);
|
||||
req.session.errMessage = "An error occurred while deleting an asset. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/assets");
|
||||
}
|
||||
|
||||
req.session.errMessage = "";
|
||||
return res.status(status.Ok).redirect("/assets");
|
||||
|
||||
}).catch((err) => {
|
||||
console.error("Error deleting asset: ", err);
|
||||
req.session.errMessage = "An error occurred while deleting an asset. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/assets");
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/deleteUser", (req, res) => {
|
||||
// not as critical if results aren't as expected only if crashing
|
||||
assets.deleteMany({ userId: new ObjectId(req.session.user._id) }).catch((err) => {
|
||||
console.error("Error deleting user assets: ", err);
|
||||
req.session.errMessage = "An error occured while deleting your account. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/profile");
|
||||
});
|
||||
|
||||
plans.deleteMany({ userId: new ObjectId(req.session.user._id) }).catch((err) => {
|
||||
console.error("Error deleting user assets: ", err);
|
||||
req.session.errMessage = "An error occured while deleting your account. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/profile");
|
||||
});
|
||||
|
||||
users.deleteOne(
|
||||
{ _id: new ObjectId(req.session.user._id) },
|
||||
).then((result) => {
|
||||
if (result.deletedCount === 0) {
|
||||
console.error(`User not found: ${req.body.id}`);
|
||||
req.session.errMessage = "Unabled to delete account. Please try again.";
|
||||
return res.status(status.NotFound).redirect("/profile");
|
||||
}
|
||||
|
||||
if (!result.acknowledged) {
|
||||
console.error("Error deleting user: ", err);
|
||||
req.session.errMessage = "An error occured while deleting your account. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/profile");
|
||||
}
|
||||
|
||||
// Direct to logout to destroy session
|
||||
req.session.destroy();
|
||||
return res.status(status.Ok).redirect("/signup");
|
||||
}).catch((err) => {
|
||||
console.error("Error deleting user: ", err);
|
||||
req.session.errMessage = "An error occured while deleting your account. Please try again.";
|
||||
return res.status(status.InternalServerError).redirect("/profile");
|
||||
});
|
||||
});
|
||||
router.get("/exRates/:lat/:lon", async (req, res) => {
|
||||
if (!req.session.geoData.country) {
|
||||
const response = await fetch(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${req.params.lat},${req.params.lon}&result_type=country&key=${process.env.GEOLOCATION_API}`);
|
||||
const data = await response.json();
|
||||
|
||||
country = data.results[0].formatted_address;
|
||||
let results = await getRates(country);
|
||||
req.session.geoData = {
|
||||
country: results.abbreviation,
|
||||
toCurrencyRates: results.exRates,
|
||||
geoData: req.session.geoData
|
||||
}
|
||||
}
|
||||
|
||||
return res.status(status.Ok).send({ data: req.session.geoData });
|
||||
})
|
||||
|
||||
return router;
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
const ObjectId = require('mongodb').ObjectId;
|
||||
|
||||
async function calculatePlanProgress(plans, assets, userId) {
|
||||
if (!plans || typeof plans.retirementAssets === 'undefined') {
|
||||
console.error("Invalid plan document provided to calculatePlanProgress:", plans);
|
||||
return 0;
|
||||
}
|
||||
if (!assets || typeof assets.find !== 'function') {
|
||||
console.error("Invalid assetsCollection provided to calculatePlanProgress");
|
||||
return 0;
|
||||
}
|
||||
|
||||
try {
|
||||
const userAssets = await assets.find({ userId: new ObjectId(userId) }).toArray();
|
||||
const totalUserAssetValue = userAssets.reduce((total, asset) => total + asset.value, 0);
|
||||
let percentage = 0;
|
||||
|
||||
if (plans.retirementAssets > 0) {
|
||||
percentage = (totalUserAssetValue / plans.retirementAssets) * 100;
|
||||
}
|
||||
return percentage;
|
||||
} catch (err) {
|
||||
console.error("Error in calculatePlanProgress:", err);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
async function updatePlanProgressInDB(planId, percentage, plans) {
|
||||
if (!plans || typeof plans.updateOne !== 'function') {
|
||||
console.error("Error with the plans collection");
|
||||
return;
|
||||
}
|
||||
if (typeof percentage !== 'number' || isNaN(percentage)) {
|
||||
console.error(`Error with the percentage: ${percentage}`);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await plans.updateOne({ _id: new ObjectId(planId) }, { $set: { progress: parseFloat(percentage.toFixed(2)) } });
|
||||
} catch (err) {
|
||||
console.error("Error in updatePlanProgressInDB:", err);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { calculatePlanProgress, updatePlanProgressInDB };
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"countries": [
|
||||
{
|
||||
"country": "United States",
|
||||
"currency_abbreviation": "USD"
|
||||
},
|
||||
{
|
||||
"country": "Eurozone",
|
||||
"currency_abbreviation": "EUR"
|
||||
},
|
||||
{
|
||||
"country": "United Kingdom",
|
||||
"currency_abbreviation": "GBP"
|
||||
},
|
||||
{
|
||||
"country": "Japan",
|
||||
"currency_abbreviation": "JPY"
|
||||
},
|
||||
{
|
||||
"country": "Switzerland",
|
||||
"currency_abbreviation": "CHF"
|
||||
},
|
||||
{
|
||||
"country": "Canada",
|
||||
"currency_abbreviation": "CAD"
|
||||
},
|
||||
{
|
||||
"country": "Australia",
|
||||
"currency_abbreviation": "AUD"
|
||||
},
|
||||
{
|
||||
"country": "China",
|
||||
"currency_abbreviation": "CNY"
|
||||
},
|
||||
{
|
||||
"country": "India",
|
||||
"currency_abbreviation": "INR"
|
||||
},
|
||||
{
|
||||
"country": "Russia",
|
||||
"currency_abbreviation": "RUB"
|
||||
},
|
||||
{
|
||||
"country": "Brazil",
|
||||
"currency_abbreviation": "BRL"
|
||||
},
|
||||
{
|
||||
"country": "Mexico",
|
||||
"currency_abbreviation": "MXN"
|
||||
},
|
||||
{
|
||||
"country": "South Korea",
|
||||
"currency_abbreviation": "KRW"
|
||||
},
|
||||
{
|
||||
"country": "Indonesia",
|
||||
"currency_abbreviation": "IDR"
|
||||
},
|
||||
{
|
||||
"country": "Bulgaria",
|
||||
"currency_abbreviation": "BGN"
|
||||
},
|
||||
{
|
||||
"country": "Czech Republic",
|
||||
"currency_abbreviation": "CZK"
|
||||
},
|
||||
{
|
||||
"country": "Denmark",
|
||||
"currency_abbreviation": "DKK"
|
||||
},
|
||||
{
|
||||
"country": "Hong Kong",
|
||||
"currency_abbreviation": "HKD"
|
||||
},
|
||||
{
|
||||
"country": "Hungary",
|
||||
"currency_abbreviation": "HUF"
|
||||
},
|
||||
{
|
||||
"country": "Israel",
|
||||
"currency_abbreviation": "ILS"
|
||||
},
|
||||
{
|
||||
"country": "Iceland",
|
||||
"currency_abbreviation": "ISK"
|
||||
},
|
||||
{
|
||||
"country": "Malaysia",
|
||||
"currency_abbreviation": "MYR"
|
||||
},
|
||||
{
|
||||
"country": "Norway",
|
||||
"currency_abbreviation": "NOK"
|
||||
},
|
||||
{
|
||||
"country": "New Zealand",
|
||||
"currency_abbreviation": "NZD"
|
||||
},
|
||||
{
|
||||
"country": "Philippines",
|
||||
"currency_abbreviation": "PHP"
|
||||
},
|
||||
{
|
||||
"country": "Poland",
|
||||
"currency_abbreviation": "PLN"
|
||||
},
|
||||
{
|
||||
"country": "Romania",
|
||||
"currency_abbreviation": "RON"
|
||||
},
|
||||
{
|
||||
"country": "Sweden",
|
||||
"currency_abbreviation": "SEK"
|
||||
},
|
||||
{
|
||||
"country": "Singapore",
|
||||
"currency_abbreviation": "SGD"
|
||||
},
|
||||
{
|
||||
"country": "Thailand",
|
||||
"currency_abbreviation": "THB"
|
||||
},
|
||||
{
|
||||
"country": "Turkey",
|
||||
"currency_abbreviation": "TRY"
|
||||
},
|
||||
{
|
||||
"country": "South Africa",
|
||||
"currency_abbreviation": "ZAR"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
const countries = require("./countries.json").countries;
|
||||
|
||||
async function getRates(country) {
|
||||
let abbr;
|
||||
countries.forEach(c => {
|
||||
if (c.country === country) {
|
||||
abbr = c.currency_abbreviation;
|
||||
}
|
||||
});
|
||||
|
||||
const res = await fetch(`https://api.frankfurter.dev/v1/latest?base=${abbr}`);
|
||||
const data = await res.json();
|
||||
let rates = data.rates;
|
||||
|
||||
return { exRates: rates, abbreviation: abbr };
|
||||
}
|
||||
|
||||
module.exports = getRates;
|
||||
@@ -2,8 +2,342 @@
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main>
|
||||
The Assets Page
|
||||
|
||||
<!-- Create Asset popup Modal -->
|
||||
<dialog id="create-asset-modal" class="w-lg mx-auto bg-white p-8 mt-10 rounded-lg shadow-md">
|
||||
<div class="flex flex-row justify-between">
|
||||
<h2 class="text-lg font-bold mb-2">Create New Asset</h2>
|
||||
<form method="dialog">
|
||||
<button
|
||||
onclick="resetAll()"
|
||||
type="submit"
|
||||
class="text-center py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="my-4">
|
||||
<label class="block text-sm font-medium text-gray-700">Asset Type</label>
|
||||
<div class="mt-1 space-x-4">
|
||||
<label class="inline-flex items-center">
|
||||
<input checked onclick="selectAssetForm('create-other-asset-form')" id="asset-other" type="radio" name="type" value="other" class="form-radio h-4 w-4 text-indigo-600 border-gray-300 focus:ring-indigo-500 cursor-pointer">
|
||||
<span class="ml-2 text-sm text-gray-700">Other Assets</span>
|
||||
</label>
|
||||
<label class="inline-flex items-center">
|
||||
<input onclick="selectAssetForm('create-saving-asset-form')" id="asset-saving" type="radio" name="type" value="saving" class="form-radio h-4 w-4 text-indigo-600 border-gray-300 focus:ring-indigo-500 cursor-pointer">
|
||||
<span class="ml-2 text-sm text-gray-700">Savings</span>
|
||||
</label>
|
||||
<label class="inline-flex items-center">
|
||||
<input onclick="selectAssetForm('create-stock-asset-form')" id="asset-stock" type="radio" name="type" value="stock" class="form-radio h-4 w-4 text-indigo-600 border-gray-300 focus:ring-indigo-500 cursor-pointer">
|
||||
<span class="ml-2 text-sm text-gray-700">Stocks</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Create other asset form -->
|
||||
<form method="POST" action="/createAsset" id="create-other-asset-form">
|
||||
<input style="display: none;" value="other" name="type" type="text">
|
||||
|
||||
<label for="name" class="block text-sm font-medium text-gray-700 mt-2">Asset Name</label>
|
||||
<input required id="name" type="text" name="name" minlength="3" maxlength="30" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="value" class="block text-sm font-medium text-gray-700 mt-2">Asset Value</label>
|
||||
<input required placeholder="CAD" min="0" id="value" type="number" name="value" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="purchaseDate" class="block text-sm font-medium text-gray-700 mt-2">Date of Purchase</label>
|
||||
<input required type="date" id="purchaseDate" name="purchaseDate" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="description" class="block text-sm font-medium text-gray-700 mt-2">Description</label>
|
||||
<textarea maxlength="240" id="description" name="description" rows="4" cols="50" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm"></textarea>
|
||||
|
||||
<div class="mt-6 flex flex-row justify-between">
|
||||
<button
|
||||
type="reset"
|
||||
onclick="document.getElementById('create-other-asset-form').reset()"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Clear
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Create
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- Create savings asset form -->
|
||||
<form style="display: none;" method="POST" action="/createAsset" id="create-saving-asset-form">
|
||||
<input style="display: none;" value="saving" name="type" type="text">
|
||||
|
||||
<label for="name" class="block text-sm font-medium text-gray-700 mt-2">Savings Name</label>
|
||||
<input required id="name" type="text" name="name" minlength="3" maxlength="30" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="value" class="block text-sm font-medium text-gray-700 mt-2">Savings Value</label>
|
||||
<input required placeholder="CAD" min="0" id="value" type="number" name="value" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<div class="mt-6 flex flex-row justify-between">
|
||||
<button
|
||||
type="reset"
|
||||
onclick="document.getElementById('create-saving-asset-form').reset()"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Clear
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Create
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- Create stock asset form -->
|
||||
<form style="display: none;" method="POST" action="/createAsset" id="create-stock-asset-form">
|
||||
<input style="display: none;" value="stock" name="type" type="text">
|
||||
|
||||
<label for="ticker" class="block text-sm font-medium text-gray-700 mt-2">Stock Ticker</label>
|
||||
<input required id="ticker" type="text" name="ticker" minlength="3" maxlength="5" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="price" class="block text-sm font-medium text-gray-700 mt-2">Price per Share</label>
|
||||
<input required placeholder="CAD" min="0" id="price" type="number" name="price" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="quantity" class="block text-sm font-medium text-gray-700 mt-2">Quantity of Shares</label>
|
||||
<input required type="number" min="1" id="quantity" name="quantity" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<label for="purchaseDate" class="block text-sm font-medium text-gray-700 mt-2">Date of Purchase</label>
|
||||
<input required type="date" id="purchaseDate" name="purchaseDate" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
|
||||
<div class="mt-6 flex flex-row justify-between">
|
||||
<button
|
||||
type="reset"
|
||||
onclick="document.getElementById('create-stock-asset-form').reset()"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Clear
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Create
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<% if (errMessage != "") { %>
|
||||
<div class="max-w-md mx-auto mb-10 rounded-lg shadow-md text-white font-bold bg-red-400 py-4 text-center"><%= errMessage %></div>
|
||||
<% } %>
|
||||
|
||||
<!-- Main display -->
|
||||
<section>
|
||||
<div class="mt-8 max-w-md mx-auto bg-white px-8 py-6 rounded-lg shadow-md flex flex-col justify-center">
|
||||
<div class="flex flex-row justify-between text-right">
|
||||
<h1 class="text-2xl font-bold tracking-tight leading-none">Assets:</h1>
|
||||
<h1 class="text-xl font-medium tracking-tight leading-none"><%= assets.length %></h1>
|
||||
</div>
|
||||
<div class="flex flex-row justify-between text-right mt-6">
|
||||
<h1 class="text-2xl font-bold tracking-tight leading-none">Total Value:</h1>
|
||||
<h1 class="text-xl font-medium tracking-tight leading-none">
|
||||
<!-- sum of assets array values and formated as proper dollar amount -->
|
||||
$<%= assets.reduce((total, e) => total + e.value, 0).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) %>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-md my-6 max-w-md mx-auto px-4 flex flex-row justify-between">
|
||||
<a href="/home" class="text-center w-sm py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
Back to Dashboard
|
||||
</a>
|
||||
<button
|
||||
class="text-center w-sm py-2 py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
onclick="document.getElementById('create-asset-modal').showModal()"
|
||||
>
|
||||
Add New Asset
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="h-px my-8 bg-gray-500 border-0 mx-10">
|
||||
|
||||
<!-- list each asset and create hidden popup modal for view/edit -->
|
||||
<section class="mt-6">
|
||||
<% if (assets.length == 0) { %>
|
||||
<div class="max-w-md mx-auto mb-10 rounded-lg shadow-md text-white font-bold bg-red-400 py-4 text-center">
|
||||
You have no assets, create a new asset.
|
||||
</div>
|
||||
<% } %>
|
||||
<% assets.forEach((asset) => { %>
|
||||
<!-- Clickable asset list item -->
|
||||
<div class="mt-4 max-w-md mx-auto bg-white rounded-lg shadow-md">
|
||||
<button onclick="document.getElementById('<%= asset._id %>-modal').showModal()" style="width: 100%; height: 100%;" class="px-4 py-4 cursor-pointer">
|
||||
<div class="flex flex-row justify-between">
|
||||
<div class="flex flex-row justify-between">
|
||||
<div class="mx-2">Icon</div>
|
||||
<div class="mx-2"><h3><%= asset.name %></h3></div>
|
||||
</div>
|
||||
<div>
|
||||
<h3><strong>
|
||||
$<%= asset.value.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) %>
|
||||
</strong></h3>
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Confirm delete asset modal -->
|
||||
<dialog id="<%= asset._id %>-delete-modal" class="w-lg mx-auto bg-transparent p-8 mt-10 rounded-lg shadow-md">
|
||||
<div class="relative p-4 w-full max-w-md h-full md:h-auto">
|
||||
<!-- Modal content -->
|
||||
<div class="relative p-4 text-center bg-white rounded-lg shadow dark:bg-gray-800 sm:p-5">
|
||||
<form method="dialog">
|
||||
<button type="submit" class="text-gray-400 absolute top-2.5 right-2.5 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white">
|
||||
<svg aria-hidden="true" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg>
|
||||
<span class="sr-only">Close modal</span>
|
||||
</button>
|
||||
</form>
|
||||
<svg class="text-gray-400 dark:text-gray-500 w-11 h-11 mb-3.5 mx-auto" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z" clip-rule="evenodd"></path></svg>
|
||||
<p class="mb-4 text-gray-500 dark:text-gray-300">Are you sure you want to delete this item?</p>
|
||||
<div class="flex justify-center items-center space-x-4">
|
||||
<div style="width: 100%;">
|
||||
<form method="dialog" style="width: 100%;">
|
||||
<button
|
||||
type="submit"
|
||||
class="py-2 px-3 text-sm font-medium text-gray-500 bg-white rounded-lg border border-gray-200 hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-primary-300 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-600"
|
||||
>
|
||||
No, cancel
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div style="width: 100%;">
|
||||
<form method="POST" action="/deleteAsset">
|
||||
<input id="id-delete-<%= asset._id %>" name="id" type="text" hidden value="<%= asset._id %>">
|
||||
<button
|
||||
type="submit"
|
||||
class="py-2 px-3 text-sm font-medium text-center text-white bg-red-600 rounded-lg hover:bg-red-700 focus:ring-4 focus:outline-none focus:ring-red-300 dark:bg-red-500 dark:hover:bg-red-600 dark:focus:ring-red-900"
|
||||
>
|
||||
Yes, I'm sure
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<!-- View/edit popup modal for asset -->
|
||||
<dialog id="<%= asset._id %>-modal" class="w-lg mx-auto bg-white p-8 mt-10 rounded-lg shadow-md">
|
||||
<div class="flex flex-row justify-between">
|
||||
<div style="width: 45%;">
|
||||
<form method="dialog" style="width: 100%;">
|
||||
<button
|
||||
style="width: 100%;"
|
||||
onclick="lockAsset('<%= asset._id %>')"
|
||||
type="submit"
|
||||
class="text-center w-sm py-2 py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div style="width: 45%;">
|
||||
<button
|
||||
style="width: 100%;"
|
||||
type="submit"
|
||||
class="text-center w-sm py-2 py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-red-600 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 cursor-pointer"
|
||||
onclick="document.getElementById('<%= asset._id %>-delete-modal').showModal()"
|
||||
>
|
||||
Delete
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="flex flex-row justify-between">
|
||||
<div>
|
||||
ICON
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
id="edit-<%= asset._id %>"
|
||||
onclick="unlockAsset('<%= asset._id %>')"
|
||||
class="py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
>
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="<%= asset._id %>-form" method="POST" action="/updateAsset">
|
||||
<input id="type-<%= asset._id %>" name="type" type="text" hidden value="<%= asset.type %>">
|
||||
<input id="id-<%= asset._id %>" name="id" type="text" hidden value="<%= asset._id %>">
|
||||
<input id="userId-<%= asset.userId %>" name="userId" type="text" hidden value="<%= asset.userId %>">
|
||||
|
||||
<% if (asset.type != "stock") { %>
|
||||
<label for="name" class="block text-sm font-medium text-gray-700 mt-6">Name</label>
|
||||
<input id="name-<%= asset._id %>" disabled type="text" name="name" value="<%= asset.name %>" class="mt-1 mb-2 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none">
|
||||
<% } else { %>
|
||||
<label for="ticker" class="block text-sm font-medium text-gray-700 mt-2">Stock Ticker</label>
|
||||
<input id="ticker-<%= asset._id %>" disabled type="text" name="ticker" value="<%= asset.ticker %>" class="mt-1 mb-2 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none">
|
||||
<% } %>
|
||||
|
||||
<hr class="h-px mt-6 mb-4 bg-gray-500 border-0 mx-10">
|
||||
|
||||
<% if (asset.type != "stock") { %>
|
||||
<label for="value" class="block text-sm font-medium text-gray-700">Value</label>
|
||||
<input id="value-<%= asset._id %>" disabled type="number" name="value" value="<%= asset.value %>" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none">
|
||||
<% } else { %>
|
||||
<label for="price" class="block text-sm font-medium text-gray-700 mt-2">Price per Share</label>
|
||||
<input id="price-<%= asset._id %>" disabled type="number" name="price" value="<%= asset.price %>" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none">
|
||||
|
||||
<label for="quantity" class="block text-sm font-medium text-gray-700 mt-2">Quantity of Shares</label>
|
||||
<input id="quantity-<%= asset._id %>" disabled type="number" name="quantity" value="<%= asset.quantity %>" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none">
|
||||
<% } %>
|
||||
|
||||
<% if (asset.type == "other") { %>
|
||||
<label for="description" class="block text-sm font-medium text-gray-700 mt-2">Description</label>
|
||||
<textarea disabled maxlength="240" id="description-<%= asset._id %>" name="description" rows="4" cols="50" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none"><%= asset.description %></textarea>
|
||||
<% } %>
|
||||
|
||||
<% if (asset.type != "saving") { %>
|
||||
<label for="purchaseDate" class="block text-sm font-medium text-gray-700 mt-2">Purchased on</label>
|
||||
<input id="purchaseDate-<%= asset._id %>" disabled type="date" name="purchaseDate" value="<%= asset.purchaseDate %>" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none">
|
||||
<% } %>
|
||||
|
||||
<br>
|
||||
<small class="block text-sm font-medium text-gray-700">Last Modified: <%= asset.updatedAt %></small>
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<button id="save-<%= asset._id %>" disabled type="submit" class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-not-allowed">
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
<% }) %>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<div class="mt-20"></div>
|
||||
|
||||
<script src="/static/scripts/assetManager.js"></script>
|
||||
<script>
|
||||
// Ensure all assets popup modals are locked and reset on page load
|
||||
let assetIds = [];
|
||||
<% assets.forEach((asset) => { %>
|
||||
assetIds.push("<%= asset._id %>");
|
||||
<% }) %>
|
||||
// EJS or JS may say this is an error above.
|
||||
// I assure you its not, just leave it be.
|
||||
|
||||
assetIds.forEach((id) => lockAsset(id));
|
||||
</script>
|
||||
|
||||
<%- include("./partials/navBar") %>
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -0,0 +1,104 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main>
|
||||
<!-- Buttons -->
|
||||
<div class="flex justify-end gap-4 px-5 py-6">
|
||||
<button class="cursor-pointer min-w-[150px] bg-green-600 px-4 py-2 text-white rounded hover:bg-green-800" type="button">Add Asset</button>
|
||||
<a href="/newPlan" class="cursor-pointer min-w-[150px] bg-green-600 px-4 py-2 text-white rounded hover:bg-green-800" type="button">Create new plan </a>
|
||||
</div>
|
||||
<!--This is the cards for plans and other things-->
|
||||
<div class="mt-12">
|
||||
<div class="mb-12 grid gap-y-10 gap-x-6 md:grid-cols-2 mr-3 ml-3 xl:grid-cols-4">
|
||||
<!--box to put logo icon if we want on in a box-->
|
||||
<div class=" relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<!-- <div -->
|
||||
<!-- class="bg-clip-border mx-4 rounded-xl overflow-hidden bg-gradient-to-tr from-blue-600 to-blue-400 text-white shadow-blue-500/40 shadow-lg absolute mt-2 grid h-16 w-16 place-items-center"> -->
|
||||
<!-- </div> -->
|
||||
<div class="p-4 flex items-center justify-between">
|
||||
<p class="font-sans text-2xl leading-normal font-normal text-blue-gray-600">
|
||||
Retirement goal</p>
|
||||
<h4
|
||||
class="block text-right antialiased tracking-normal font-sans text-2xl font-semibold leading-snug text-blue-gray-900">
|
||||
$53k</h4>
|
||||
</div>
|
||||
<div class="border-t border-blue-gray-50 p-10">
|
||||
<p class=" antialiased font-sans text-base leading-relaxed font-normal text-blue-gray-600">
|
||||
<strong class="text-green-500">Make this percent bar or graph or something </strong> than lastweek
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<div class="p-4 flex items-center justify-between">
|
||||
<p class="font-sans text-2xl leading-normal font-normal text-blue-gray-600">
|
||||
Retirement goal</p>
|
||||
<h4
|
||||
class="block text-right antialiased tracking-normal font-sans text-2xl font-semibold leading-snug text-blue-gray-900">
|
||||
$53k</h4>
|
||||
</div>
|
||||
<div class="border-t border-blue-gray-50 p-10">
|
||||
<p class=" antialiased font-sans text-base leading-relaxed font-normal text-blue-gray-600">
|
||||
<strong class="text-green-500">Make this percent bar or graph or something </strong> than last
|
||||
week
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<!-- <div -->
|
||||
<!-- class="bg-clip-border mx-4 rounded-xl overflow-hidden bg-gradient-to-tr from-green-600 to-green-400 text-white shadow-green-500/40 shadow-lg absolute -mt-4 grid h-16 w-16 place-items-center"> -->
|
||||
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" -->
|
||||
<!-- class="w-6 h-6 text-white"> -->
|
||||
<!-- <path -->
|
||||
<!-- d="M6.25 6.375a4.125 4.125 0 118.25 0 4.125 4.125 0 01-8.25 0zM3.25 19.125a7.125 7.125 0 0114.25 0v.003l-.001.119a.75.75 0 01-.363.63 13.067 13.067 0 01-6.761 1.873c-2.472 0-4.786-.684-6.76-1.873a.75.75 0 01-.364-.63l-.001-.122zM19.75 7.5a.75.75 0 00-1.5 0v2.25H16a.75.75 0 000 1.5h2.25v2.25a.75.75 0 001.5 0v-2.25H22a.75.75 0 000-1.5h-2.25V7.5z"> -->
|
||||
<!-- </path> -->
|
||||
<!-- </svg> -->
|
||||
<!-- </div> -->
|
||||
<!-- we can use this later if needed not sure what it shoudl be for right now. -->
|
||||
<!-- <div class="p-4 text-right"> -->
|
||||
<!-- <p class="block antialiased font-sans text-sm leading-normal font-normal text-blue-gray-600">New Clients -->
|
||||
<!-- </p> -->
|
||||
<!-- <h4 -->
|
||||
<!-- class="block antialiased tracking-normal font-sans text-2xl font-semibold leading-snug text-blue-gray-900"> -->
|
||||
<!-- 3,462</h4> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="border-t border-blue-gray-50 p-4"> -->
|
||||
<!-- <p class="block antialiased font-sans text-base leading-relaxed font-normal text-blue-gray-600"> -->
|
||||
<!-- <strong class="text-red-500">-2%</strong> than yesterday -->
|
||||
<!-- </p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<div class="relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<div class="relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<div class="p-4 flex items-center justify-between">
|
||||
<p class="font-sans text-2xl leading-normal font-normal text-blue-gray-600">
|
||||
Retirement goal</p>
|
||||
<h4
|
||||
class="block text-right antialiased tracking-normal font-sans text-2xl font-semibold leading-snug text-blue-gray-900">
|
||||
$53k</h4>
|
||||
</div>
|
||||
<div class="border-t border-blue-gray-50 p-10">
|
||||
<p class=" antialiased font-sans text-base leading-relaxed font-normal text-blue-gray-600">
|
||||
<strong class="text-green-500">Make this percent bar or graph or something </strong> than last
|
||||
week
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-blue-gray-600">
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/flowbite@3.1.2/dist/flowbite.min.js"></script>
|
||||
<script src="/static/scripts/geolocation.js"></script>
|
||||
<!-- <script src="/static/scripts/calcExchange.js"></script> -->
|
||||
<script>
|
||||
// If no geoData provided thorugh EJS, send update request to backend
|
||||
let country = "<%= geoData.country %>";
|
||||
if (!country) getLocation();
|
||||
</script>
|
||||
|
||||
|
||||
<%- include("./partials/navBar") %>
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -1,15 +0,0 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main>
|
||||
<%- include("./partials/header") %>
|
||||
Welcome: <%= user.email %>
|
||||
The Dashboard Page
|
||||
<% if(user.authenticated) { %>
|
||||
<%= user.email %>
|
||||
<%= user.errMessage %>
|
||||
<% } %>
|
||||
</main>
|
||||
|
||||
<%- include("./partials/navBar") %>
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -1,9 +0,0 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main>
|
||||
The Index Page
|
||||
</main>
|
||||
|
||||
<%- include("./partials/navBar") %>
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -4,18 +4,18 @@
|
||||
<div class="flex justify-center items-center h-screen">
|
||||
<form action="/login" method="POST">
|
||||
<div class="w-96 p-6 shadow-1g bg-white rounded-md">
|
||||
<h1 class="text-3xl block text-center font-semibold"> Login </h1>
|
||||
<h1 class="text-3xl block text-center font-semibold">Login</h1>
|
||||
<hr class="mt-3">
|
||||
<div class="mt-3">
|
||||
<label for="email" class="block text-base mb-2">Email</label>
|
||||
<input type="text" id="email" name="email"
|
||||
class="border focus:border-gray-600 w-full text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
class="border focus:border-gray-600 w-full rounded-md text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Email" />
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<label for="password" class="block text-base mb-2">Password</label>
|
||||
<input type="password" id="password" name="password"
|
||||
class="border focus:border-gray-600 w-full text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
class="border focus:border-gray-600 w-full rounded-md text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Password" />
|
||||
</div>
|
||||
<div class="text-red-800 font-bold" id="forgor"> <%= errMessage %></div>
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main class="container mx-auto p-4">
|
||||
<h2 class="text-xl text-white font-semibold mb-4">Welcome: <%= user.name %></h2>
|
||||
<div class="max-w-md mx-auto bg-white p-8 mb-10 rounded-lg shadow-md">
|
||||
<h3 class="text-lg font-medium mb-6">Retirement Plan</h3>
|
||||
<form action="/newPlan" method="post" class="space-y-4">
|
||||
<div>
|
||||
<label for="name" class="block text-sm font-medium text-gray-700">Plan Name</label>
|
||||
<input type="text" name="name" placeholder="e.g., Retirement Plan" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
<div>
|
||||
<label for="retirementAge" class="block text-sm font-medium text-gray-700">Desired Retirement Age</label>
|
||||
<input type="number" name="retirementAge" placeholder="e.g., 65" min="18" max="120" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementExpenses" class="block text-sm font-medium text-gray-700">Estimated Monthly Retirement Expenses</label>
|
||||
<input type="number" name="retirementExpenses" min="0" placeholder="e.g., 3000" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementAssets" class="block text-sm font-medium text-gray-700">Estimated Retirement Assets</label>
|
||||
<input type="number" name="retirementAssets" min="0" placeholder="e.g., 500000" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementLiabilities" class="block text-sm font-medium text-gray-700">Estimated Retirement Liabilities</label>
|
||||
<input type="number" name="retirementLiabilities" min="0" placeholder="e.g., 50000" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button type="submit" class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">Save Plan</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -0,0 +1,24 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/headerStart") %>
|
||||
|
||||
<main>
|
||||
<section class="bg-center bg-no-repeat bg-cover bg-[url('/images/bg1.jpg')] bg-gray-400 bg-blend-multiply">
|
||||
<div class="px-4 mx-auto max-w-screen-xl text-center py-24 lg:py-56">
|
||||
<h1 class="mb-4 text-4xl font-extrabold tracking-tight leading-none text-white md:text-5xl lg:text-6xl">404 - Not found</h1>
|
||||
<p class="mb-8 text-lg font-normal text-gray-300 lg:text-xl sm:px-16 lg:px-48">It appears you stumbled accross a misleading page.</p>
|
||||
<div class="flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0">
|
||||
<a href="/" class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900">
|
||||
Go home
|
||||
<svg class="w-3.5 h-3.5 ms-2 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 10">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5h12m0 0L9 1m4 4L9 9"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="/aboutUs" class="inline-flex justify-center hover:text-gray-900 items-center py-3 px-5 sm:ms-4 text-base font-medium text-center text-white rounded-lg border border-white hover:bg-gray-100 focus:ring-4 focus:ring-gray-400">
|
||||
Learn more
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -7,4 +7,4 @@
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
|
||||
<title>RCalculator</title>
|
||||
</head>
|
||||
<body class="bg-white dark:bg-gray-900">
|
||||
<body class="bg-gray-900">
|
||||
@@ -1,11 +1,10 @@
|
||||
|
||||
<footer>
|
||||
<div class="fixed bottom-0 left-0 z-50 hidden lg:block w-full h-16 bg-gray-100 dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 p-6 text-center text-gray-500 dark:text-gray-400 text-sm">
|
||||
<footer class="mt-16">
|
||||
<div class="fixed bottom-0 left-0 z-50 hidden lg:block w-full h-16 bg-gray-800 border-t border-gray-700 p-6 text-center text-gray-400 text-sm">
|
||||
<div class="container mx-auto">
|
||||
<p>© 2025 RCalculator. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/static/scripts/geolocation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,10 +1,76 @@
|
||||
|
||||
<header>
|
||||
<nav class="bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
|
||||
<nav class="bg-gray-800 border-b border-gray-700">
|
||||
<div class="max-w-screen-xl flex flex-wrap items-center justify-between mx-auto p-4">
|
||||
<a href="/home" class="flex items-center space-x-3 rtl:space-x-reverse">
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/rekor.png" class="h-8" alt="Flowbite Logo" />
|
||||
<span class="self-center text-2xl font-semibold whitespace-nowrap dark:text-white">RCalculator</span>
|
||||
</a>
|
||||
|
||||
<% if (!geoData.country) { %>
|
||||
<div role="status" id="loading">
|
||||
<svg aria-hidden="true" class="w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="currentColor"/>
|
||||
<path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="currentFill"/>
|
||||
</svg>
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
|
||||
<div style="display: none;" class="flex items-center" id="currencyExchange">
|
||||
<div class="shrink-0 z-10 inline-flex items-center py-2.5 px-4 text-sm font-medium text-center text-gray-900 bg-gray-100 border border-gray-300 rounded-s-lg focus:ring-4 focus:outline-none focus:ring-gray-100 dark:bg-gray-700 dark:focus:ring-gray-700 dark:text-white dark:border-gray-600">
|
||||
<img src="" id="yourFlag" class="h-4 w-4 me-2" alt="">
|
||||
<p id="flagTag"></p>
|
||||
</div>
|
||||
<div class="relative w-full">
|
||||
<p id="exchange" class="block text-center p-2.5 w-30 z-20 text-sm text-gray-900 bg-gray-50 border-s-0 border border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-s-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:border-blue-500">
|
||||
</p>
|
||||
</div>
|
||||
<button id="dropdown-country-button" value="" data-dropdown-toggle="dropdown-country" class="shrink-0 z-10 inline-flex items-center py-2.5 px-4 text-sm font-medium text-center text-gray-900 bg-gray-100 border border-gray-300 rounded-e-lg hover:bg-gray-200 focus:ring-4 focus:outline-none focus:ring-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 dark:focus:ring-gray-700 dark:text-white dark:border-gray-600" type="button">
|
||||
<img src="" id="exchangeFlag" class="h-4 w-4 me-2" alt="">
|
||||
<p id="exFlagTag"></p>
|
||||
<svg class="w-2.5 h-2.5 ms-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
||||
</svg>
|
||||
</button>
|
||||
<div id="dropdown-country" class="overflow-y-auto h-40 z-10 hidden bg-white divide-y divide-gray-100 rounded-lg shadow-sm w-32 dark:bg-gray-700">
|
||||
<ul id="dropdown" class="py-2 text-sm text-gray-700 dark:text-gray-200" aria-labelledby="dropdown-country-button">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<div class="flex items-center">
|
||||
<div class="shrink-0 z-10 inline-flex items-center py-2.5 px-4 text-sm font-medium text-center text-gray-900 bg-gray-100 border border-gray-300 rounded-s-lg focus:ring-4 focus:outline-none focus:ring-gray-100 dark:bg-gray-700 dark:focus:ring-gray-700 dark:text-white dark:border-gray-600">
|
||||
<img src="/static/svgs/flags/<%= geoData.country %>.svg" id="yourFlag" class="h-4 w-4 me-2" alt="<%= geoData.country %>"> (<%= geoData.country %>)
|
||||
<p id="flagTag"></p>
|
||||
</div>
|
||||
<div class="relative w-full">
|
||||
<p id="exchange" class="block text-center p-2.5 w-30 z-20 text-sm text-gray-900 bg-gray-50 border-s-0 border border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-s-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:border-blue-500">
|
||||
$1.00 = $<%= (1 * geoData.toCurrencyRates["USD"]).toFixed(2) %>
|
||||
</p>
|
||||
</div>
|
||||
<button id="dropdown-country-button" value="" data-dropdown-toggle="dropdown-country" class="shrink-0 z-10 inline-flex items-center py-2.5 px-4 text-sm font-medium text-center text-gray-900 bg-gray-100 border border-gray-300 rounded-e-lg hover:bg-gray-200 focus:ring-4 focus:outline-none focus:ring-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 dark:focus:ring-gray-700 dark:text-white dark:border-gray-600" type="button">
|
||||
<img src="/static/svgs/flags/USD.svg" class="h-4 w-4 me-2" alt="USD"> (USD)
|
||||
<svg class="w-2.5 h-2.5 ms-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
||||
</svg>
|
||||
</button>
|
||||
<div id="dropdown-country" class="overflow-y-auto h-40 z-10 hidden bg-white divide-y divide-gray-100 rounded-lg shadow-sm w-32 dark:bg-gray-700">
|
||||
<ul id="dropdown" class="py-2 text-sm text-gray-700 dark:text-gray-200" aria-labelledby="dropdown-country-button">
|
||||
<% let countries = Object.keys(geoData.toCurrencyRates);%>
|
||||
<% countries.forEach(item => { %>
|
||||
<li>
|
||||
<button onclick="switchButton(this)" type="button" value="<%= geoData.toCurrencyRates[item] %>" class="countryButton inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600 dark:hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">
|
||||
<img src="/static/svgs/flags/<%= item %>.svg" class="h-4 w-4 me-2" alt="<%= item %>"> (<%= item %>)
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<% }); %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="hidden w-full lg:block lg:w-auto" id="navbar-solid-bg">
|
||||
<ul class="flex flex-col font-medium mt-4 rounded-lg bg-gray-50 lg:space-x-8 rtl:space-x-reverse lg:flex-row lg:mt-0 lg:border-0 lg:bg-transparent dark:bg-gray-800 lg:dark:bg-transparent dark:border-gray-700">
|
||||
<li>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<header>
|
||||
<nav class="bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
|
||||
<nav class="bg-gray-800 border-b border-gray-700">
|
||||
<div class="max-w-screen-xl flex flex-wrap items-center justify-between mx-auto p-4">
|
||||
<a href="/" class="flex items-center space-x-3 rtl:space-x-reverse">
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/rekor.png" class="h-8" alt="Flowbite Logo" />
|
||||
|
||||
@@ -1,28 +1,19 @@
|
||||
<div class="fixed bottom-0 left-0 z-50 lg:hidden w-full h-16 bg-gray-100 dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 text-sm">
|
||||
<div class="fixed bottom-0 z-50 lg:hidden w-full h-16 bg-gray-100 dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 text-sm">
|
||||
<div class="grid h-16 max-w-lg grid-cols-4 mx-auto font-medium">
|
||||
<a href="/home" class="inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path fill-rule="evenodd" d="M11.293 3.293a1 1 0 0 1 1.414 0l6 6 2 2a1 1 0 0 1-1.414 1.414L19 12.414V19a2 2 0 0 1-2 2h-3a1 1 0 0 1-1-1v-3h-2v3a1 1 0 0 1-1 1H7a2 2 0 0 1-2-2v-6.586l-.293.293a1 1 0 0 1-1.414-1.414l2-2 6-6Z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
<img src="/static/svgs/dashboard.svg" alt="dashboard">
|
||||
<span class="text-gray-500 dark:text-gray-400 text-sm">Dashboard</span>
|
||||
</a>
|
||||
<a href="/assets" class="inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path d="M10.464 8.746c.227-.18.497-.311.786-.394v2.795a2.252 2.252 0 0 1-.786-.393c-.394-.313-.546-.681-.546-1.004 0-.323.152-.691.546-1.004ZM12.75 15.662v-2.824c.347.085.664.228.921.421.427.32.579.686.579.991 0 .305-.152.671-.579.991a2.534 2.534 0 0 1-.921.42Z" />
|
||||
<path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25ZM12.75 6a.75.75 0 0 0-1.5 0v.816a3.836 3.836 0 0 0-1.72.756c-.712.566-1.112 1.35-1.112 2.178 0 .829.4 1.612 1.113 2.178.502.4 1.102.647 1.719.756v2.978a2.536 2.536 0 0 1-.921-.421l-.879-.66a.75.75 0 0 0-.9 1.2l.879.66c.533.4 1.169.645 1.821.75V18a.75.75 0 0 0 1.5 0v-.81a4.124 4.124 0 0 0 1.821-.749c.745-.559 1.179-1.344 1.179-2.191 0-.847-.434-1.632-1.179-2.191a4.122 4.122 0 0 0-1.821-.75V8.354c.29.082.559.213.786.393l.415.33a.75.75 0 0 0 .933-1.175l-.415-.33a3.836 3.836 0 0 0-1.719-.755V6Z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
<img src="/static/svgs/assets.svg" alt="assets">
|
||||
<span class="text-gray-500 dark:text-gray-400 text-sm">Assets</span>
|
||||
</a>
|
||||
<a href="/plans" class="inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M13.09 3.294c1.924.95 3.422 1.69 5.472.692a1 1 0 0 1 1.438.9v9.54a1 1 0 0 1-.562.9c-2.981 1.45-5.382.24-7.25-.701a38.739 38.739 0 0 0-.622-.31c-1.033-.497-1.887-.812-2.756-.77-.76.036-1.672.357-2.81 1.396V21a1 1 0 1 1-2 0V4.971a1 1 0 0 1 .297-.71c1.522-1.506 2.967-2.185 4.417-2.255 1.407-.068 2.653.453 3.72.967.225.108.443.216.655.32Z"/>
|
||||
</svg>
|
||||
<img src="/static/svgs/plans.svg" alt="plans">
|
||||
<span class="text-gray-500 dark:text-gray-400 text-sm">Plans</span>
|
||||
</a>
|
||||
<a href="/more" class="inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800 group">
|
||||
<svg height="30" width="30" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 17 14">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"></path>
|
||||
</svg>
|
||||
<img src="/static/svgs/more.svg" alt="more">
|
||||
<span class="text-gray-500 dark:text-gray-400 text-sm">More</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main class="container mx-auto p-4">
|
||||
<h2 class="text-xl text-white font-semibold mb-4">Welcome: <%= user.name %></h2>
|
||||
<div class="max-w-lg mx-auto bg-white p-6 sm:p-8 rounded-xl shadow-lg space-y-6 dark:bg-gray-800">
|
||||
|
||||
<div class="text-center">
|
||||
<h3 class="text-2xl font-bold text-gray-800 dark:text-white"><%= plan.name %></h3>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between mb-1">
|
||||
<span class="text-sm font-medium text-blue-700 dark:text-blue-400">Progress</span>
|
||||
<span class="text-sm font-medium text-blue-700 dark:text-blue-400"><%= plan.progress %>%</span>
|
||||
</div>
|
||||
<div class="w-full bg-gray-200 rounded-full h-3 dark:bg-gray-700">
|
||||
<div class="bg-blue-600 h-3 rounded-full dark:bg-blue-500" style="width: <%= plan.progress %>%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border-t border-gray-200 dark:border-gray-700 pt-6 space-y-4">
|
||||
<h4 class="text-lg font-semibold text-gray-700 dark:text-gray-300 mb-3">Assets:</h4>
|
||||
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-4">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 dark:text-gray-400">Number of Assets:</label>
|
||||
<p class="mt-1 text-md text-gray-900 dark:text-white"><%= assets.length %></p>
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 dark:text-gray-400">Total Value:</label>
|
||||
<p class="mt-1 text-md text-gray-900 dark:text-white"><%= assets.reduce((total, asset) => total + asset.value, 0) %></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border-t border-gray-200 dark:border-gray-700 pt-6 space-y-4">
|
||||
<h4 class="text-lg font-semibold text-gray-700 dark:text-gray-300 mb-3">Plan Details:</h4>
|
||||
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-4">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 dark:text-gray-400">Retirement Age:</label>
|
||||
<p class="mt-1 text-md text-gray-900 dark:text-white"><%= plan.retirementAge %></p>
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 dark:text-gray-400">Target Monthly Expenses:</label>
|
||||
<p class="mt-1 text-md text-gray-900 dark:text-white"><%= plan.retirementExpenses %></p>
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 dark:text-gray-400">Target Retirement Assets:</label>
|
||||
<p class="mt-1 text-md text-gray-900 dark:text-white"><%= plan.retirementAssets %></p>
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 dark:text-gray-400">Target Retirement Liabilities:</label>
|
||||
<p class="mt-1 text-md text-gray-900 dark:text-white"><%= plan.retirementLiabilities %></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border-t border-gray-200 dark:border-gray-700 pt-6 space-y-4">
|
||||
<h4 class="text-lg font-semibold text-gray-700 dark:text-gray-300 mb-3">Suggestions:</h4>
|
||||
|
||||
<div class="mt-6 p-4 bg-blue-50 border border-blue-200 rounded-lg dark:bg-gray-700 dark:border-gray-600">
|
||||
<p class="text-sm text-blue-700 dark:text-blue-300">
|
||||
USE YOUR HEAD MOCK
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<%- include("./partials/navBar") %>
|
||||
<%- include("./partials/footer") %>
|
||||
@@ -1,8 +1,23 @@
|
||||
<%- include("./partials/fileHeader") %>
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main>
|
||||
The Plans Page
|
||||
<main class="container mx-auto p-4">
|
||||
<h2 class="text-xl text-white font-semibold mb-4">Welcome: <%= user.name %></h2>
|
||||
<div class="max-w-md mx-auto bg-white p-8 mb-10 rounded-lg shadow-md space-y-4">
|
||||
<h3 class="text-lg font-medium mb-6">My Retirement Plans</h3>
|
||||
<a href="/newPlan" class="block max-w-sm p-2"><div class="text-center bg-blue-600 text-white py-1 w-full rounded-md hover:bg-blue-700 hover:text-white font-semibold">New Plan</div></a>
|
||||
<hr class="mt-3">
|
||||
<% plans.forEach(plan => { %>
|
||||
<a href="/plans/<%= plan._id %>" class="block max-w-sm p-6 bg-white border border-gray-200 rounded-lg shadow-sm hover:bg-gray-100 dark:bg-gray-800 dark:border-gray-700 dark:hover:bg-gray-700">
|
||||
<h5 class="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white"><%= plan.name %></h5>
|
||||
<div class="w-full bg-gray-200 rounded-full h-2.5 mb-4 dark:bg-gray-700">
|
||||
<div class="bg-green-600 h-2.5 rounded-full dark:bg-green-500" style="width: <%= plan.progress %>%;"></div>
|
||||
</div>
|
||||
<p class="font-normal text-gray-700 dark:text-gray-400"><%= plan.description %></p>
|
||||
</a>
|
||||
<% }) %>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<%- include("./partials/navBar") %>
|
||||
|
||||
@@ -2,6 +2,46 @@
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main>
|
||||
<!-- Confirm delete account modal -->
|
||||
<dialog id="delete-warning-modal" class="w-lg mx-auto bg-transparent p-8 mt-10 rounded-lg shadow-md">
|
||||
<div class="relative p-4 w-full max-w-md h-full md:h-auto">
|
||||
<!-- Modal content -->
|
||||
<div class="relative p-4 text-center bg-white rounded-lg shadow dark:bg-gray-800 sm:p-5">
|
||||
<form method="dialog">
|
||||
<button type="submit" class="text-gray-400 absolute top-2.5 right-2.5 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white">
|
||||
<svg aria-hidden="true" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg>
|
||||
<span class="sr-only">Close modal</span>
|
||||
</button>
|
||||
</form>
|
||||
<svg class="text-gray-400 dark:text-gray-500 w-11 h-11 mb-3.5 mx-auto" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z" clip-rule="evenodd"></path></svg>
|
||||
<p class="mb-4 text-gray-500 dark:text-gray-300">Are you sure you want to delete you account? This process cannot be undone.</p>
|
||||
<div class="flex justify-center items-center space-x-4">
|
||||
<div style="width: 100%;">
|
||||
<form method="dialog" style="width: 100%;">
|
||||
<button
|
||||
type="submit"
|
||||
class="py-2 px-3 text-sm font-medium text-gray-500 bg-white rounded-lg border border-gray-200 hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-primary-300 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-600"
|
||||
>
|
||||
No, cancel
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div style="width: 100%;">
|
||||
<form method="POST" action="/deleteUser">
|
||||
<input id="id" name="id" type="text" hidden value="<%= user._id %>">
|
||||
<button
|
||||
type="submit"
|
||||
class="py-2 px-3 text-sm font-medium text-center text-white bg-red-600 rounded-lg hover:bg-red-700 focus:ring-4 focus:outline-none focus:ring-red-300 dark:bg-red-500 dark:hover:bg-red-600 dark:focus:ring-red-900"
|
||||
>
|
||||
Yes, I'm sure
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<h2 class="ml-11 mt-5 mb-6 text-xl font-semibold mb-4 text-white">Welcome <%= user.name %></h2>
|
||||
|
||||
<% if (errMessage != "") { %>
|
||||
@@ -32,6 +72,17 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-row justify-center mx-auto p8">
|
||||
<button
|
||||
type="submit"
|
||||
class="w-xs p-3 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-red-600 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 cursor-pointer"
|
||||
onclick="document.getElementById('delete-warning-modal').showModal()"
|
||||
>
|
||||
Delete Account
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="mb-10 max-w-md mx-auto bg-white p-8 rounded-lg shadow-md">
|
||||
<div class="flex flex-row justify-between">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<%- include("./partials/header") %>
|
||||
|
||||
<main class="container mx-auto p-4">
|
||||
<h2 class="text-xl font-semibold mb-4">Welcome: <%= user.email %></h2>
|
||||
<h2 class="text-xl font-semibold mb-4">Welcome: <%= user.name %></h2>
|
||||
<div class="max-w-md mx-auto bg-white p-8 mb-10 rounded-lg shadow-md">
|
||||
<h3 class="text-lg font-medium mb-6">Financial Questionnaire</h3>
|
||||
<form action="/questionnaire" method="post" class="space-y-4">
|
||||
@@ -61,26 +61,6 @@
|
||||
<input type="number" name="liabilities" min="0" placeholder="Estimated Liabilities" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementAge" class="block text-sm font-medium text-gray-700">Desired Retirement Age</label>
|
||||
<input type="number" name="retirementAge" placeholder="e.g., 65" min="18" max="120" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementExpenses" class="block text-sm font-medium text-gray-700">Estimated Monthly Retirement Expenses</label>
|
||||
<input type="number" name="retirementExpenses" min="0" placeholder="e.g., 3000" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementAssets" class="block text-sm font-medium text-gray-700">Estimated Retirement Assets</label>
|
||||
<input type="number" name="retirementAssets" min="0" placeholder="e.g., 500000" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="retirementLiabilities" class="block text-sm font-medium text-gray-700">Estimated Retirement Liabilities</label>
|
||||
<input type="number" name="retirementLiabilities" min="0" placeholder="e.g., 50000" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button type="submit" class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">Submit Questionnaire</button>
|
||||
</div>
|
||||
|
||||
@@ -5,28 +5,28 @@
|
||||
<div class="flex justify-center items-center h-screen">
|
||||
<form action="/signup" method="POST">
|
||||
<div class="w-96 p-6 shadow-1g bg-white rounded-md">
|
||||
<h1 class="text-3xl block text-center font-semibold"> Signup </h1>
|
||||
<h1 class="text-3xl block text-center font-semibold">Signup</h1>
|
||||
<hr class="mt-3">
|
||||
<div class="mt-3">
|
||||
<label for="email" class="block text-base mb-2">Email</label>
|
||||
<input type="text" id="email" name="email"
|
||||
class="border focus:border-gray-600 w-full text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Email" />
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<label for="name" class="block text-base mb-2">Name</label>
|
||||
<input type="text" id="name" name="name"
|
||||
class="border focus:border-gray-600 w-full text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
class="border focus:border-gray-600 w-full rounded-md text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Name" />
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<label for="email" class="block text-base mb-2">Email</label>
|
||||
<input type="text" id="email" name="email"
|
||||
class="border focus:border-gray-600 w-full rounded-md text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Email" />
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<label for="password" class="block text-base mb-2">Password</label>
|
||||
<input type="password" id="password" name="password"
|
||||
class="border focus:border-gray-600 w-full text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
class="border focus:border-gray-600 w-full rounded-md text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Password" />
|
||||
<label for="password" class="block text-base mb-2 mt-3">Re-type Password</label>
|
||||
<input type="password" id="repassword" name="repassword"
|
||||
class="border focus:border-gray-600 w-full text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
class="border focus:border-gray-600 w-full rounded-md text-base px-2 py-1 focus:outline-none focus:ring-0 "
|
||||
placeholder="Enter Password" />
|
||||
</div>
|
||||
<div class="text-red-800 font-bold " id="forgor"> <%= errMessage %></div>
|
||||
|
||||