commit 38f2a05107ae3d4086096a0fba77cf8c8fcedd62 Author: Rozenrod Date: Mon Mar 31 00:22:21 2025 +0300 v0.0.1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76857c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,92 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +firebase-debug.log* +firebase-debug.*.log* + +# Firebase cache +.firebase/ + +# Firebase config + +# Uncomment this if you'd like others to create their own Firebase project. +# For a team working on the same Firebase project(s), it is recommended to leave +# it commented so all members can deploy to the same project(s) in .firebaserc. +# .firebaserc + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +node_modules + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +.ftppass + +*.sqlite \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..475059c --- /dev/null +++ b/README.md @@ -0,0 +1,261 @@ +# Start + +``` +sudo apt update +``` + +``` +sudo apt upgrade -y +``` + +``` +sudo apt install -y curl gnupg2 ca-certificates lsb-release +``` + +``` +sudo apt install zip +``` + +
+
+ +# Docker Install + +``` +sudo apt update +sudo apt install -y docker.io +sudo systemctl enable --now docker +sudo usermod -aG docker $USER +``` + +
+
+ +# Docker Compose Install + +``` +sudo apt install -y docker-compose +``` + +``` +docker-compose --version +``` + +
+
+ +# Start Sheep-Service + +``` +cd /home/rozenrod/webapps/sheep-service.com +``` + +``` +docker-compose pull && docker-compose -p Sheep-Service up --build -d +``` + +
+
+ +# NGINX Install + +``` +sudo apt install nginx +``` + +``` +sudo systemctl status nginx +``` + +``` +sudo systemctl enable nginx +``` + +``` +sudo nano /etc/nginx/nginx.conf +``` + +``` +proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=all:5m inactive=10m max_size=2g; + +limit_req_zone $binary_remote_addr zone=one:5m rate=30r/s; +client_max_body_size 20M; +``` + +
+
+ +``` +set_real_ip_from 103.21.244.0/22; +set_real_ip_from 103.22.200.0/22; +set_real_ip_from 103.31.4.0/22; +set_real_ip_from 104.16.0.0/13; +set_real_ip_from 104.24.0.0/14; +set_real_ip_from 108.162.192.0/18; +set_real_ip_from 131.0.72.0/22; +set_real_ip_from 141.101.64.0/18; +set_real_ip_from 162.158.0.0/15; +set_real_ip_from 172.64.0.0/13; +set_real_ip_from 173.245.48.0/20; +set_real_ip_from 188.114.96.0/20; +set_real_ip_from 190.93.240.0/20; +set_real_ip_from 197.234.240.0/22; +set_real_ip_from 198.41.128.0/17; +set_real_ip_from 2400:cb00::/32; +set_real_ip_from 2606:4700::/32; +set_real_ip_from 2803:f800::/32; +set_real_ip_from 2405:b500::/32; +set_real_ip_from 2405:8100::/32; +set_real_ip_from 2a06:98c0::/29; +set_real_ip_from 2c0f:f248::/32; + +#real_ip_header CF-Connecting-IP; +real_ip_header X-Forwarded-For; +``` + +
+
+ +# NGINX Settings WEB + +``` +sudo nano /etc/nginx/sites-available/sheep-service.com +``` + +``` +server { + listen 80; + listen [::]:80; + + server_name sheep-service.com www.sheep-service.com; + + error_log /home/rozenrod/webapps/log/sheep-service.com.error.log error; + access_log /home/rozenrod/webapps/log/sheep-service.com.access.log; + + root /home/rozenrod/webapps/sheep-service.com; + + index index.html; + + error_page 404 /404.html; + + location ~ /\.git { + deny all; + } + + location ~ /\.env { + deny all; + } + + location /api/ { + proxy_pass http://127.0.0.1:4000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + add_header 'Content-Length' 0; + return 204; + } + if ($request_method = 'PUT') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; + } + if ($request_method = 'POST') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; + } + if ($request_method = 'GET') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; + } + if ($request_method = 'DELETE') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; + } + } + + location /ws { + proxy_pass http://127.0.0.1:4001; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location / { + proxy_pass http://127.0.0.1:4002; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + + if ($request_method = 'GET') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; + } + } +} + +``` + +``` +sudo ln -s /etc/nginx/sites-available/sheep-service.com /etc/nginx/sites-enabled/sheep-service.com +``` + +``` +sudo nginx -t +``` + +``` +sudo systemctl reload nginx +``` + +
+
+ +# Certbot Install + +``` +sudo python3 -m venv /opt/certbot/ +``` + +``` +sudo /opt/certbot/bin/pip install --upgrade pip +``` + +``` +sudo /opt/certbot/bin/pip install certbot certbot-nginx +``` + +``` +sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot +``` + +``` +sudo certbot --nginx -d sheep-service.com +``` + + +``` +echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null +``` + +``` +sudo /opt/certbot/bin/pip install --upgrade certbot certbot-nginx +``` \ No newline at end of file diff --git a/api/Dockerfile b/api/Dockerfile new file mode 100644 index 0000000..a4a524d --- /dev/null +++ b/api/Dockerfile @@ -0,0 +1,15 @@ +FROM node:20.18 + +WORKDIR /app + +COPY package.json package-lock.json ./ + +RUN npm install + +RUN apt-get update && apt-get install -y chromium + +COPY . . + +EXPOSE 4000 + +CMD npm start diff --git a/api/app.js b/api/app.js new file mode 100644 index 0000000..bd10377 --- /dev/null +++ b/api/app.js @@ -0,0 +1,16 @@ +const express = require('express'); +const app = express(); +const routes = require('./routes/index'); +// const cors = require('cors'); + +const port = 4000; + +// app.use(cors()) +app.use(express.json({ limit: '50mb' })); +app.use(express.urlencoded({ limit: '50mb' })); + +app.use('/api', routes); + +app.listen(port, () => { + console.log(`Server listening on port ${port}`); +}); \ No newline at end of file diff --git a/api/config/db.js b/api/config/db.js new file mode 100644 index 0000000..228ac2a --- /dev/null +++ b/api/config/db.js @@ -0,0 +1,34 @@ +const sqlite3 = require("sqlite3").verbose(); +const path = require('path'); + +const dbPath = process.env.DATABASE_PATH || '../'; +const db = new sqlite3.Database(path.join(dbPath, 'database.sqlite')); + +// db.serialize(() => { +// db.run(` +// CREATE TABLE IF NOT EXISTS sheeps ( +// id INTEGER PRIMARY KEY AUTOINCREMENT, +// uuid TEXT UNIQUE +// ) +// `); + +// db.run(` +// CREATE TABLE IF NOT EXISTS administrators ( +// sheep_id INTEGER PRIMARY KEY, +// can_view_sheeps INTEGER DEFAULT 0, +// FOREIGN KEY (sheep_id) REFERENCES sheeps(id) +// ) +// `); + +// db.run(` +// CREATE TABLE IF NOT EXISTS sessions ( +// session_id TEXT PRIMARY KEY, +// sheep_id INTEGER, +// role TEXT DEFAULT 'sheep', +// expires_at INTEGER, +// FOREIGN KEY (sheep_id) REFERENCES sheeps(id) +// ) +// `); +// }); + +module.exports = db; \ No newline at end of file diff --git a/api/config/telegram.config.js b/api/config/telegram.config.js new file mode 100644 index 0000000..df622eb --- /dev/null +++ b/api/config/telegram.config.js @@ -0,0 +1,6 @@ +const TelegramConfig = { + token: "7855966674:AAEw9l_EF0GcpjrkSFzt0aLukEfJxBA2gcY", + chatId: "224538769" +} + +module.exports = TelegramConfig; \ No newline at end of file diff --git a/api/controllers/apartments.controller.js b/api/controllers/apartments.controller.js new file mode 100644 index 0000000..e7515a5 --- /dev/null +++ b/api/controllers/apartments.controller.js @@ -0,0 +1,112 @@ +const ApartmentsService = require('../services/apartments.service'); + +class ApartmentsController { + async getApartments(req, res) { + const { entrance_id } = req.params; + + if (entrance_id) { + if (req.sheepRole == "administrator" || (req.sheepRole == "moderator" && req.moderator.can_manager_territory) || req.can_view_territory) { + let result = await ApartmentsService.getApartments(entrance_id); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(401) + .send({ message: 'Entrance not found.' }); + } + } + + async createApartments(req, res) { + const { entrance_id } = req.params; + const data = req.body; + + if (entrance_id && data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await ApartmentsService.createApartments( + entrance_id, + data + ); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create apartment.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(401) + .send({ message: 'Entrance not found.' }); + } + } + + async updateApartments(req, res) { + const data = req.body; + + if (data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await ApartmentsService.updateApartments(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update history apartment.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(401) + .send({ message: 'Data not found.' }); + } + } + + async deleteApartments(req, res) { + const data = req.body; + + if (data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await ApartmentsService.deleteApartments(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete history apartment.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(401) + .send({ message: 'Data not found.' }); + } + } +} + +module.exports = new ApartmentsController(); \ No newline at end of file diff --git a/api/controllers/auth.controller.js b/api/controllers/auth.controller.js new file mode 100644 index 0000000..e9b4fb8 --- /dev/null +++ b/api/controllers/auth.controller.js @@ -0,0 +1,22 @@ +const AuthService = require('../services/auth.service'); + +class AuthController { + async login(req, res) { + if (req.sheepId && req.sheepRole) { + const result = await AuthService.findUserByID(req.sheepId, req.sheepRole); + if (result) { + return res.status(200).send(result); + } else { + return res.status(404).send({ + message: 'Sheep not found.' + }); + } + } else { + return res + .status(403) + .send({ message: 'The sheep does not have enough rights.' }); + } + } +} + +module.exports = new AuthController(); \ No newline at end of file diff --git a/api/controllers/constructor.controller.js b/api/controllers/constructor.controller.js new file mode 100644 index 0000000..64859b6 --- /dev/null +++ b/api/controllers/constructor.controller.js @@ -0,0 +1,31 @@ +const ConstructorService = require('../services/constructor.service'); + +class ConstructorController { + async createPack(req, res) { + const data = req.body; + + if (data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await ConstructorService.createPack(data); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create pack.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(401) + .send({ message: 'Users not found.' }); + } + } +} + +module.exports = new ConstructorController(); \ No newline at end of file diff --git a/api/controllers/entrances.controller.js b/api/controllers/entrances.controller.js new file mode 100644 index 0000000..ecc71ef --- /dev/null +++ b/api/controllers/entrances.controller.js @@ -0,0 +1,112 @@ +const EntrancesService = require('../services/entrances.service'); + +class EntrancesController { + async getEntrances(req, res) { + const { house_id } = req.params; + + if (house_id) { + if (req.sheepRole == "administrator" || (req.sheepRole == "moderator" && req.moderator.can_manager_territory) || req.can_view_territory) { + let result = await EntrancesService.getEntrances(house_id); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'House not found.' }); + } + } + + async createEntrance(req, res) { + const { house_id } = req.params; + const data = req.body; + + if (house_id) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await EntrancesService.createEntrance( + house_id, + data + ); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create entrance.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'House not found.' }); + } + } + + async updateEntrance(req, res) { + const data = req.body; + + if (data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await EntrancesService.updateEntrance(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update entrance.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'Data not found.' }); + } + } + + async deleteEntrance(req, res) { + const data = req.body; + + if (data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await EntrancesService.deleteEntrance(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete entrance.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'Data not found.' }); + } + } +} + +module.exports = new EntrancesController(); \ No newline at end of file diff --git a/api/controllers/generator.cards.controller.js b/api/controllers/generator.cards.controller.js new file mode 100644 index 0000000..8c08289 --- /dev/null +++ b/api/controllers/generator.cards.controller.js @@ -0,0 +1,29 @@ +const saveCards = require("../middleware/genCards"); + +class GeneratorCardsController { + async getScreen(req, res) { + const { lat, lng, type, wayId, zoom, id, address, number } = req.query; + + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await saveCards({ center: {lat:lat,lng:lng}, wayId: wayId, zoom: zoom ?? 18, type: type, number: id, address: `${address} ${number}` }); + + console.log(result); + + + if (result) { + return res.status(200).send(result); + } else { + return res + .status(404) + .send({ message: 'Image creation error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + + } +} + +module.exports = new GeneratorCardsController(); \ No newline at end of file diff --git a/api/controllers/history.entrance.controller.js b/api/controllers/history.entrance.controller.js new file mode 100644 index 0000000..4a10a3b --- /dev/null +++ b/api/controllers/history.entrance.controller.js @@ -0,0 +1,112 @@ +const HistoryEntranceService = require('../services/history.entrance.service'); + +class HistoryEntranceController { + async getHistoryEntrance(req, res) { + const { entrance_id } = req.params; + + if (entrance_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryEntranceService.getHistoryEntrance(entrance_id); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async createHistoryEntrance(req, res) { + const { entrance_id } = req.params; + const data = req.body; + + if (entrance_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryEntranceService.createHistoryEntrance( + entrance_id, + data + ); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create history entrance.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async updateHistoryEntrance(req, res) { + const { entrance_id } = req.params; + + if (entrance_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryEntranceService.updateHistoryEntrance(entrance_id); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update history entrance.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async deleteHistoryEntrance(req, res) { + const { entrance_id } = req.params; + + if (entrance_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryEntranceService.deleteHistoryEntrance(entrance_id); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete history entrance.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } +} + +module.exports = new HistoryEntranceController(); \ No newline at end of file diff --git a/api/controllers/history.homestead.controller.js b/api/controllers/history.homestead.controller.js new file mode 100644 index 0000000..6001925 --- /dev/null +++ b/api/controllers/history.homestead.controller.js @@ -0,0 +1,113 @@ +const HistoryHomesteadService = require('../services/history.homestead.service'); + +class HistoryHomesteadController { + async getHistoryHomestead(req, res) { + const { homestead_id } = req.params; + + if (homestead_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryHomesteadService.getHistoryHomestead(homestead_id); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async createHistoryHomestead(req, res) { + const { homestead_id } = req.params; + const data = req.body; + + if (homestead_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryHomesteadService.createHistoryHomestead( + homestead_id, + data + ); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create history homestead.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async updateHistoryHomestead(req, res) { + const { uuid } = req.query; + const { homestead_id } = req.params; + + if (homestead_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryHomesteadService.updateHistoryHomestead(homestead_id); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update history homestead.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async deleteHistoryHomestead(req, res) { + const { homestead_id } = req.params; + + if (homestead_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HistoryHomesteadService.deleteHistoryHomestead(homestead_id); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete history homestead.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } +} + +module.exports = new HistoryHomesteadController(); \ No newline at end of file diff --git a/api/controllers/homesteads.controller.js b/api/controllers/homesteads.controller.js new file mode 100644 index 0000000..c9cc6c5 --- /dev/null +++ b/api/controllers/homesteads.controller.js @@ -0,0 +1,143 @@ +const HomesteadsService = require('../services/homesteads.service'); + +class HomesteadsController { + async getList(req, res) { + const { mode } = req.query; + + if (req.sheepRole == "administrator" || (req.sheepRole == "moderator" && req.moderator.can_manager_territory) || req.can_view_territory) { + let group_id = 0; + let sheepName = false; + + if (req.sheepRole == "administrator") { + group_id = 0; + } else if (req.sheepRole == "moderator") { + group_id = req.group_id; + } + + if (mode == "sheep") { + group_id = req.group_id; + sheepName = req.sheepName; + } + + let result = await HomesteadsService.getList(group_id, sheepName); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } + + async getHomestead(req, res) { + const { homestead_id } = req.params; + + if (homestead_id) { + if (req.sheepRole == "administrator" || (req.sheepRole == "moderator" && req.moderator.can_manager_territory) || req.can_view_territory) { + let result = await HomesteadsService.getHomestead(homestead_id); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async createHomestead(req, res) { + const data = req.body; + + if (data) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await HomesteadsService.createHomestead(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create homestead.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async updateHomestead(req, res) { + const { homestead_id } = req.params; + const data = req.body; + + if (homestead_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HomesteadsService.updateHomestead(homestead_id, data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update homestead.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async deleteHomestead(req, res) { + const { homestead_id } = req.params; + + if (homestead_id) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await HomesteadsService.deleteHomestead(homestead_id); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete homestead.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } +} + +module.exports = new HomesteadsController(); \ No newline at end of file diff --git a/api/controllers/houses.controller.js b/api/controllers/houses.controller.js new file mode 100644 index 0000000..59c5b55 --- /dev/null +++ b/api/controllers/houses.controller.js @@ -0,0 +1,137 @@ +const HousesService = require('../services/houses.service'); + +class HousesController { + async getList(req, res) { + const { mode } = req.query; + + if (req.sheepRole == "administrator" || (req.sheepRole == "moderator" && req.moderator.can_manager_territory) || req.can_view_territory) { + let group_id = 0; + let sheepName = false; + + if (req.sheepRole == "administrator") { + group_id = 0; + } else if (req.sheepRole == "moderator") { + group_id = req.group_id; + } + + if (mode == "sheep") { + group_id = req.group_id; + sheepName = req.sheepName; + } + + let result = await HousesService.getList(group_id, sheepName); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } + + async getHouse(req, res) { + const { house_id } = req.params; + + if (house_id) { + if (req.sheepRole == "administrator" || (req.sheepRole == "moderator" && req.moderator.can_manager_territory) || req.can_view_territory) { + let result = await HousesService.getHouse(house_id); + if (result) { + return res + .status(200) + .send(result); + } else { + return res + .status(500) + .send({ message: 'Internal server error.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } + + async createHouse(req, res) { + const data = req.body; + + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await HousesService.createHouse(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create house.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } + + async updateHouse(req, res) { + const { house_id } = req.params; + const data = req.body; + + if (house_id) { + if (req.sheepRole == "administrator" || req.moderator.can_manager_territory) { + let result = await HousesService.updateHouse(house_id, data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update house.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async deleteHouse(req, res) { + const { house_id } = req.params; + + if (house_id) { + if (req.sheepRole == "administrator" || req.moderator.can_add_territory) { + let result = await HousesService.deleteHouse(house_id); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete house.', + }); + } + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } +} + +module.exports = new HousesController(); \ No newline at end of file diff --git a/api/controllers/rotation.controller.js b/api/controllers/rotation.controller.js new file mode 100644 index 0000000..1099900 --- /dev/null +++ b/api/controllers/rotation.controller.js @@ -0,0 +1,24 @@ +const RotationService = require('../services/rotation.service'); + +class RotationController { + async editTables(req, res) { + if (req.sheepRole == "administrator") { + let result = await RotationService.editTables(); + + if (result) { + return res.status(200).send(result); + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(403) + .send({ message: 'The user does not have enough rights.' }); + } + + } +} + +module.exports = new RotationController(); \ No newline at end of file diff --git a/api/controllers/sheeps.controller.js b/api/controllers/sheeps.controller.js new file mode 100644 index 0000000..d98a6e9 --- /dev/null +++ b/api/controllers/sheeps.controller.js @@ -0,0 +1,110 @@ +const SheepsService = require('../services/sheeps.service'); + +class SheepsController { + async getSheep(req, res) { + const { uuid } = req.query; + + if (uuid) { + if (req.sheepRole) { + const result = await SheepsService.getSheep(uuid, req.sheepRole); + if (result) { + return res.status(200).send(result); + } else { + return res.status(404).send({ + message: 'Sheep not found.' + }); + } + } else { + return res + .status(403) + .send({ message: 'The sheep does not have enough rights.' }); + } + } else { + return res + .status(401) + .send({ message: 'Sheeps not found.' }); + } + } + + async getList(req, res) { + if (req.sheepRole) { + const result = await SheepsService.getList(req.sheepRole); + + if (result) { + return res.status(200).send(result); + } else { + return res + .status(404) + .send({ message: 'User not found.' }); + } + } else { + return res + .status(404) + .send({ message: 'Users not found.' }); + } + } + + async createSheep(req, res) { + const data = req.body; + + if (req.sheepRole && (req.sheepRole == "administrator" || req.moderator.can_add_sheeps)) { + let result = await SheepsService.createSheep(data); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable create sheep.', + }); + } + } else { + return res + .status(403) + .send({ message: 'The sheep does not have enough rights.' }); + } + } + + async updateSheep(req, res) { + const { uuid } = req.query; + const data = req.body; + console.log("data", data); + + + if (req.sheepRole == "administrator") { + let result = await SheepsService.updateSheep(data); + + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable update sheep.', + }); + } + } else { + return res + .status(403) + .send({ message: 'Sheep not foundThe sheep does not have enough rights.' }); + } + } + + async deleteSheep(req, res) { + const data = req.body; + + if (req.sheepRole == "administrator") { + let result = await SheepsService.deleteSheep(data); + if (result) { + return res.status(200).send(result); + } else { + return res.status(500).send({ + message: 'Unable delete sheep.', + }); + } + } else { + return res + .status(403) + .send({ message: 'Sheep not foundThe sheep does not have enough rights.' }); + } + } +} + +module.exports = new SheepsController(); \ No newline at end of file diff --git a/api/middleware/auth.js b/api/middleware/auth.js new file mode 100644 index 0000000..3910374 --- /dev/null +++ b/api/middleware/auth.js @@ -0,0 +1,70 @@ +const db = require("../config/db"); + +const authenticate = (req, res, next) => { + const uuid = req.headers["authorization"]; + if (!uuid) return res.status(401).json({ error: "Unauthorized" }); + + db.get(` + SELECT sheeps.*, administrators.* FROM administrators JOIN sheeps ON sheeps.id = administrators.sheep_id WHERE administrators.uuid = ?`, + [uuid], + (err, administrator) => { + if (administrator) { + req.sheepId = administrator.sheep_id; + req.sheepRole = 'administrator'; + req.group_id = administrator.group_id; + req.sheepName = administrator.name; + req.can_view_schedule = administrator.can_view_schedule; + req.can_view_stand = administrator.can_view_stand; + req.can_view_territory = administrator.can_view_territory; + + return next(); + } + + db.get(` + SELECT sheeps.*, moderators.* FROM moderators JOIN sheeps ON sheeps.id = moderators.sheep_id WHERE moderators.uuid = ?`, + [uuid], + (err, moderator) => { + if (moderator) { + req.sheepId = moderator.sheep_id; + req.sheepRole = 'moderator'; + req.moderator = { + "id": moderator.moderators_id ? moderator.moderators_id : false, + "can_add_sheeps": moderator.can_add_sheeps == 1 ? true : false, + "can_add_territory": moderator.can_add_territory == 1 ? true : false, + "can_manager_territory": moderator.can_manager_territory == 1 ? true : false, + "can_add_stand": moderator.can_add_stand == 1 ? true : false, + "can_manager_stand": moderator.can_manager_stand == 1 ? true : false, + "can_add_schedule": moderator.can_add_schedule == 1 ? true : false + } + req.group_id = moderator.group_id; + req.sheepName = moderator.name; + req.can_view_schedule = moderator.can_view_schedule; + req.can_view_stand = moderator.can_view_stand; + req.can_view_territory = moderator.can_view_territory; + + return next(); + } + + db.get(`SELECT sheeps.* FROM sheeps WHERE sheeps.uuid = ?`, [uuid], (err, sheep) => { + if (sheep) { + req.sheepId = sheep.id; + req.sheepRole = 'sheep'; + req.group_id = sheep.group_id; + req.sheepName = sheep.name; + req.can_view_schedule = sheep.can_view_schedule; + req.can_view_stand = sheep.can_view_stand; + req.can_view_territory = sheep.can_view_territory; + + return next(); + } + + return res.status(401).json({ error: "UUID not found" }); + } + ); + } + ); + } + ); +}; + +module.exports = authenticate; \ No newline at end of file diff --git a/api/middleware/genCards.js b/api/middleware/genCards.js new file mode 100644 index 0000000..ad86664 --- /dev/null +++ b/api/middleware/genCards.js @@ -0,0 +1,77 @@ +const path = require('path'); +const fs = require('fs'); +const puppeteer = require('puppeteer'); +const sharp = require('sharp'); + +const DIR = process.env.CARDS_PATH || '../cards'; + +async function genCards({ center, type, wayId, zoom, number, address }) { + const browser = await puppeteer.launch({ + executablePath: process.env.PUPPETEER_EXECUTABLE_PATH || '/usr/bin/chromium-browser', + args: ['--no-sandbox', '--disable-setuid-sandbox'] + }); + + + let latlng = center && center.lat && center.lng ? `lat=${center.lat}&lng=${center.lng}&` : ''; + + const page = await browser.newPage(); + await page.setViewport({ width: 1144, height: (750 + 140) }) + await page.goto(`https://sheep-service.com/screenshot.html?${latlng}type=${type}&wayId=${wayId}&zoom=${zoom}&address=${address}&number=${number}`, { timeout: 0 }); + await page.waitForSelector('.leaflet-tile-loaded', { timeout: 30000 }); + await new Promise(resolve => setTimeout(resolve, 1000)); + + let name = () => { + if (type == "house") return `T${number}.png` + else if (type == "entrance") return `E${number}.png` + else if (type == "homestead") return `H${number}.png` + return `${Date.now()}.png` + } + + if (!fs.existsSync(path.join(DIR, 'cache'))) { + fs.mkdirSync(path.join(DIR, 'cache'), { recursive: true }) + } + + await page.screenshot({ path: path.join(DIR, "cache", name()) }); + + await browser.close(); + + return name(); +} + +async function saveCards({ center, type, wayId, zoom, number, address }) { + let name = await genCards({ center, type, wayId, zoom, number, address }); + + if (!fs.existsSync(path.join(DIR, type))) { + fs.mkdirSync(path.join(DIR, type), { recursive: true }); + } + + try { + const metadata = await sharp(path.join(DIR, 'cache', name)).metadata(); + const width = metadata.width; + const height = metadata.height; + + if (width > 20 && height > 140) { + const outputPath = path.join(DIR, type, name.replace(path.extname(name), '.webp')); + + await sharp(path.join(DIR, 'cache', name)) + .extract({ + left: 0, + top: 0, + width: width, + height: height - 140 + }) + .webp() + .toFile(outputPath); + + return fs.existsSync(outputPath); + } else { + console.error('Изображение слишком маленькое для обрезки!'); + return false; + } + } catch (err) { + console.error('Ошибка при обработке изображения:', err); + return false; + } +} + +module.exports = saveCards; \ No newline at end of file diff --git a/api/package-lock.json b/api/package-lock.json new file mode 100644 index 0000000..e86c416 --- /dev/null +++ b/api/package-lock.json @@ -0,0 +1,5377 @@ +{ + "name": "API Sheep Service", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "API Sheep Service", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.5", + "express": "^4.21.0", + "node-telegram-bot-api": "^0.66.0", + "puppeteer": "^24.4.0", + "sharp": "^0.33.5", + "sqlite3": "^5.1.7" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz", + "integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.14.0", + "safe-buffer": "^5.1.2", + "tough-cookie": "^5.0.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request-promise": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@cypress/request-promise/-/request-promise-5.0.0.tgz", + "integrity": "sha512-eKdYVpa9cBEw2kTBlHeu1PP16Blwtum6QHg/u9s/MoHkZfuo1pRGka1VlUHXF5kdew82BvOJVVGk0x8X0nbp+w==", + "dependencies": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^4.1.3" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "@cypress/request": "^3.0.0" + } + }, + "node_modules/@cypress/request-promise/node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@cypress/request/node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "optional": true + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.8.0.tgz", + "integrity": "sha512-yTwt2KWRmCQAfhvbCRjebaSX8pV1//I0Y3g+A7f/eS7gf0l4eRJoUCvcYdVtboeU4CTOZQuqYbZNS8aBYb8ROQ==", + "dependencies": { + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.1", + "tar-fs": "^3.0.8", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" + }, + "node_modules/@types/node": { + "version": "22.13.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", + "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", + "optional": true, + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "optional": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array.prototype.findindex": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findindex/-/array.prototype.findindex-2.2.4.tgz", + "integrity": "sha512-LLm4mhxa9v8j0A/RPnpQAP4svXToJFh+Hp1pNYl5ZD5qpB4zdx/D4YjpVcETkhFbUKWO3iGMVLvrOnnmkAJT6A==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "optional": true + }, + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "optional": true + }, + "node_modules/bare-fs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", + "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^3.0.0", + "bare-stream": "^2.0.0" + }, + "engines": { + "bare": ">=1.7.0" + } + }, + "node_modules/bare-os": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.0.tgz", + "integrity": "sha512-BUrFS5TqSBdA0LwHop4OjPJwisqxGy6JsWVqV6qaFoe965qqtaKfDzHY5T2YA1gUL0ZeeQeA+4BBc1FJTcHiPw==", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-bidi": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-2.1.2.tgz", + "integrity": "sha512-vtRWBK2uImo5/W2oG6/cDkkHSm+2t6VHgnj+Rcwhb0pP74OoUb4GipyRX/T/y39gYQPhioP0DPShn+A7P6CHNw==", + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "optional": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1413902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1413902.tgz", + "integrity": "sha512-yRtvFD8Oyk7C9Os3GmnFZLu53yAfsnyw1s+mLmHHUK0GQEc9zthHWvS1r67Zqzm5t7v56PILHIVZ7kmFMaL2yQ==" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "optional": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "peer": true + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "peer": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream/node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/get-uri/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "optional": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "peer": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "optional": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/http-signature": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", + "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.18.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "optional": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "optional": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "optional": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "optional": true + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "optional": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "peer": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "optional": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "optional": true + }, + "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/node-abi": { + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-telegram-bot-api": { + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.66.0.tgz", + "integrity": "sha512-s4Hrg5q+VPl4/tJVG++pImxF6eb8tNJNj4KnDqAOKL6zGU34lo9RXmyAN158njwGN+v8hdNf8s9fWIYW9hPb5A==", + "dependencies": { + "@cypress/request": "^3.0.1", + "@cypress/request-promise": "^5.0.0", + "array.prototype.findindex": "^2.0.2", + "bl": "^1.2.3", + "debug": "^3.2.7", + "eventemitter3": "^3.0.0", + "file-type": "^3.9.0", + "mime": "^1.6.0", + "pump": "^2.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/node-telegram-bot-api/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/node-telegram-bot-api/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pac-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/prebuild-install/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/prebuild-install/node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/prebuild-install/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", + "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "24.4.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.4.0.tgz", + "integrity": "sha512-E4JhJzjS8AAI+6N/b+Utwarhz6zWl3+MR725fal+s3UlOlX2eWdsvYYU+Q5bXMjs9eZEGkNQroLkn7j11s2k1Q==", + "hasInstallScript": true, + "dependencies": { + "@puppeteer/browsers": "2.8.0", + "chromium-bidi": "2.1.2", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1413902", + "puppeteer-core": "24.4.0", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "24.4.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.4.0.tgz", + "integrity": "sha512-eFw66gCnWo0X8Hyf9KxxJtms7a61NJVMiSaWfItsFPzFBsjsWdmcNlBdsA1WVwln6neoHhsG+uTVesKmTREn/g==", + "dependencies": { + "@puppeteer/browsers": "2.8.0", + "chromium-bidi": "2.1.2", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1413902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "peer": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "peer": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/request/node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "peer": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "peer": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "peer": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "optional": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "optional": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamx": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-fs/node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/tldts": { + "version": "6.1.85", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.85.tgz", + "integrity": "sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==", + "dependencies": { + "tldts-core": "^6.1.85" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.85", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.85.tgz", + "integrity": "sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==" + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "optional": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/zod": { + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/api/package.json b/api/package.json new file mode 100644 index 0000000..339bb45 --- /dev/null +++ b/api/package.json @@ -0,0 +1,19 @@ +{ + "name": "API Sheep Service", + "version": "1.0.0", + "main": "app.js", + "scripts": { + "start": "node app.js" + }, + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "cors": "^2.8.5", + "express": "^4.21.0", + "node-telegram-bot-api": "^0.66.0", + "sqlite3": "^5.1.7", + "puppeteer": "^24.4.0", + "sharp": "^0.33.5" + } +} diff --git a/api/routes/apartments.routes.js b/api/routes/apartments.routes.js new file mode 100644 index 0000000..9e7cb60 --- /dev/null +++ b/api/routes/apartments.routes.js @@ -0,0 +1,13 @@ +const express = require('express'); +const router = express.Router({ mergeParams: true }); +const ApartmentsController = require('../controllers/apartments.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, ApartmentsController.getApartments) + .post(authenticate, ApartmentsController.createApartments) + .put(authenticate, ApartmentsController.updateApartments) + .delete(authenticate, ApartmentsController.deleteApartments); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/auth.routes.js b/api/routes/auth.routes.js new file mode 100644 index 0000000..0fd0318 --- /dev/null +++ b/api/routes/auth.routes.js @@ -0,0 +1,10 @@ +const express = require('express'); +const router = express.Router(); +const AuthController = require('../controllers/auth.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, AuthController.login); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/constructor.routes.js b/api/routes/constructor.routes.js new file mode 100644 index 0000000..4d5c709 --- /dev/null +++ b/api/routes/constructor.routes.js @@ -0,0 +1,10 @@ +const express = require('express'); +const router = express.Router(); +const ConstructorController = require('../controllers/constructor.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .post(authenticate, ConstructorController.createPack) + +module.exports = router; \ No newline at end of file diff --git a/api/routes/entrances.routes.js b/api/routes/entrances.routes.js new file mode 100644 index 0000000..ff17e62 --- /dev/null +++ b/api/routes/entrances.routes.js @@ -0,0 +1,13 @@ +const express = require('express'); +const router = express.Router({ mergeParams: true }); +const EntranceController = require('../controllers/entrances.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, EntranceController.getEntrances) + .post(authenticate, EntranceController.createEntrance) + .put(authenticate, EntranceController.updateEntrance) + .delete(authenticate, EntranceController.deleteEntrance); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/generator.cards.routes.js b/api/routes/generator.cards.routes.js new file mode 100644 index 0000000..a41821e --- /dev/null +++ b/api/routes/generator.cards.routes.js @@ -0,0 +1,10 @@ +const express = require('express'); +const router = express.Router(); +const GeneratorCardsController = require('../controllers/generator.cards.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, GeneratorCardsController.getScreen); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/history.entrance.routes.js b/api/routes/history.entrance.routes.js new file mode 100644 index 0000000..f415f10 --- /dev/null +++ b/api/routes/history.entrance.routes.js @@ -0,0 +1,13 @@ +const express = require('express'); +const router = express.Router({ mergeParams: true }); +const HistoryEntranceController = require('../controllers/history.entrance.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, HistoryEntranceController.getHistoryEntrance) + .post(authenticate, HistoryEntranceController.createHistoryEntrance) + .put(authenticate, HistoryEntranceController.updateHistoryEntrance) + .delete(authenticate, HistoryEntranceController.deleteHistoryEntrance); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/history.homestead.routes.js b/api/routes/history.homestead.routes.js new file mode 100644 index 0000000..744a1a9 --- /dev/null +++ b/api/routes/history.homestead.routes.js @@ -0,0 +1,13 @@ +const express = require('express'); +const router = express.Router({ mergeParams: true }); +const HistoryHomesteadController = require('../controllers/history.homestead.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, HistoryHomesteadController.getHistoryHomestead) + .post(authenticate, HistoryHomesteadController.createHistoryHomestead) + .put(authenticate, HistoryHomesteadController.updateHistoryHomestead) + .delete(authenticate, HistoryHomesteadController.deleteHistoryHomestead); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/homesteads.routes.js b/api/routes/homesteads.routes.js new file mode 100644 index 0000000..e618dbb --- /dev/null +++ b/api/routes/homesteads.routes.js @@ -0,0 +1,20 @@ +const express = require('express'); +const router = express.Router(); +const HomesteadController = require('../controllers/homesteads.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/list') + .get(authenticate, HomesteadController.getList) + +router + .route('/:homestead_id') + .get(authenticate, HomesteadController.getHomestead) + .put(authenticate, HomesteadController.updateHomestead) + .delete(authenticate, HomesteadController.deleteHomestead); + +router + .route('/') + .post(authenticate, HomesteadController.createHomestead); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/houses.routes.js b/api/routes/houses.routes.js new file mode 100644 index 0000000..25cd1b0 --- /dev/null +++ b/api/routes/houses.routes.js @@ -0,0 +1,20 @@ +const express = require('express'); +const router = express.Router(); +const HousesController = require('../controllers/houses.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/list') + .get(authenticate, HousesController.getList) + +router + .route('/:house_id') + .get(authenticate, HousesController.getHouse) + .put(authenticate, HousesController.updateHouse) + .delete(authenticate, HousesController.deleteHouse); + +router + .route('/') + .post(authenticate, HousesController.createHouse); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/index.js b/api/routes/index.js new file mode 100644 index 0000000..911a62a --- /dev/null +++ b/api/routes/index.js @@ -0,0 +1,30 @@ +const express = require('express'); +const router = express.Router(); + +const authRoutes = require('./auth.routes'); +const sheepsRoutes = require('./sheeps.routes'); +const constructorRoutes = require('./constructor.routes'); +const housesRoutes = require('./houses.routes'); +const homesteadsRoutes = require('./homesteads.routes'); +const entrancesRoutes = require('./entrances.routes'); +const apartmentsRoutes = require('./apartments.routes'); +const historyEntranceRoutes = require('./history.entrance.routes'); +const historyHomesteadRoutes = require('./history.homestead.routes'); +const rotationRoutes = require('./rotation.routes'); +const generatorCardsRoutes = require('./generator.cards.routes'); + +router.use('/auth', authRoutes); +router.use('/sheeps?', sheepsRoutes); +router.use('/constructor', constructorRoutes); +router.use('/houses?', housesRoutes); +router.use('/homesteads?', homesteadsRoutes); +router.use('/house/:house_id/entrances', entrancesRoutes); +router.use('/apartments?/:entrance_id', apartmentsRoutes); +router.use('/history/entrance/:entrance_id', historyEntranceRoutes); +router.use('/history/homestead/:homestead_id', historyHomesteadRoutes); + +router.use('/rotation', rotationRoutes); + +router.use('/generator/cards', generatorCardsRoutes); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/rotation.routes.js b/api/routes/rotation.routes.js new file mode 100644 index 0000000..759cc05 --- /dev/null +++ b/api/routes/rotation.routes.js @@ -0,0 +1,10 @@ +const express = require('express'); +const router = express.Router(); +const RotationController = require('../controllers/rotation.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, RotationController.editTables); + +module.exports = router; \ No newline at end of file diff --git a/api/routes/sheeps.routes.js b/api/routes/sheeps.routes.js new file mode 100644 index 0000000..eaa2002 --- /dev/null +++ b/api/routes/sheeps.routes.js @@ -0,0 +1,18 @@ +const express = require('express'); +const router = express.Router(); +const SheepsController = require('../controllers/sheeps.controller'); +const authenticate = require("../middleware/auth"); + +router + .route('/') + .get(authenticate, SheepsController.getSheep) + .post(authenticate, SheepsController.createSheep) + .put(authenticate, SheepsController.updateSheep) + .delete(authenticate, SheepsController.deleteSheep); + + +router + .route('/list') + .get(authenticate, SheepsController.getList); + +module.exports = router; \ No newline at end of file diff --git a/api/services/apartments.service.js b/api/services/apartments.service.js new file mode 100644 index 0000000..6d9f14f --- /dev/null +++ b/api/services/apartments.service.js @@ -0,0 +1,102 @@ +const db = require("../config/db"); + + +class ApartmentsService { + getApartments(entrance_id) { + return new Promise((res, rej) => { + let sql = ` + SELECT + * + FROM + apartments + WHERE + entrance_id = '${entrance_id}' + ORDER BY + id + `; + + db.all(sql, (err, rows) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let data = rows.map((row) => { + return { + "id": Number(row.id), + "entrance_id": Number(row.entrance_id), + "apartment_number": row.apartment_number, + "title": row.title, + "floors_number": Number(row.floors_number), + "status": Number(row.status), + "description": row.description, + "updated_at": Number(row.updated_at) + } + }) + + return res(data); + } + }); + }); + } + + createApartments(entrance_id, data) { + return new Promise((res, rej) => { + let sql = 'INSERT INTO apartments(entrance_id, apartment_number, title, floors_number) VALUES (?, ?, ?, ?)'; + + db.run(sql, [ + entrance_id, + Number(data.apartment_number), + data.title, + data.floors_number + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": this.lastID }); + } + }); + }); + } + + updateApartments(data) { + return new Promise((res, rej) => { + let sql = 'UPDATE apartments SET title = ?, status = ?, description = ?, updated_at = ? WHERE id = ?'; + db.run(sql, [ + data.title, + data.status, + data.description, + Math.floor(new Date(Date.now()).getTime()), + data.id + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": data.id }); + } + }); + }); + } + + deleteApartments(data) { + return new Promise((res, rej) => { + db.run('DELETE FROM apartments WHERE id = ?', [data.id], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": data.id }); + } + }); + }); + } +} + +module.exports = new ApartmentsService(); \ No newline at end of file diff --git a/api/services/auth.service.js b/api/services/auth.service.js new file mode 100644 index 0000000..46fc660 --- /dev/null +++ b/api/services/auth.service.js @@ -0,0 +1,84 @@ +const db = require("../config/db"); + +class AuthService { + findUserByID(id, sheepRole) { + return new Promise((res, rej) => { + let sql = ` + SELECT + sheeps.*, + groups.group_number AS group_id, + administrators.id AS administrators_id, + administrators.uuid AS administrators_uuid, + moderators.id AS moderators_id, + moderators.uuid AS moderators_uuid, + moderators.can_add_sheeps, + moderators.can_add_territory, + moderators.can_manager_territory, + moderators.can_add_stand, + moderators.can_manager_stand, + moderators.can_add_schedule + FROM + sheeps + LEFT JOIN + groups ON groups.group_number = sheeps.group_id + LEFT JOIN + administrators ON administrators.sheep_id = sheeps.id + LEFT JOIN + moderators ON moderators.sheep_id = sheeps.id + WHERE + sheeps.id = ? + LIMIT 1; + ` + db.get(sql, [id], (err, sheep) => { + if (err) { + console.error(err.message); + return res(false); + } else if (!sheep) { + console.log({ "error": "uuid not found" }); + return res(false); + } else { + let data = { + "id": Number(sheep.id), + "group_id": Number(sheep.group_id), + "name": sheep.name, + "icon": sheep.icon, + "uuid": sheep.uuid, + "appointment": sheep.appointment, + "can_view_stand": sheep.can_view_stand == 0 ? false : true, + "can_view_schedule": sheep.can_view_schedule == 0 ? false : true, + "can_view_territory": sheep.can_view_territory == 0 ? false : true, + "administrator": { + "id": sheep.administrators_id ? sheep.administrators_id : false, + "uuid": null + }, + "moderator": { + "id": sheep.moderators_id ? sheep.moderators_id : false, + "uuid": null, + "can_add_sheeps": sheep.can_add_sheeps == 1 ? true : false, + "can_add_territory": sheep.can_add_territory == 1 ? true : false, + "can_manager_territory": sheep.can_manager_territory == 1 ? true : false, + "can_add_stand": sheep.can_add_stand == 1 ? true : false, + "can_manager_stand": sheep.can_manager_stand == 1 ? true : false, + "can_add_schedule": sheep.can_add_schedule == 1 ? true : false + } + } + + if (sheepRole == "administrator") { + if (sheep.administrators_id) { + data.administrator.uuid = sheep.administrators_uuid; + } + } + if (sheepRole == "moderator") { + if (sheep.moderators_id) { + data.moderator.uuid = sheep.moderators_uuid; + } + } + + return res(data); + } + }); + }); + } +} + +module.exports = new AuthService(); \ No newline at end of file diff --git a/api/services/constructor.service.js b/api/services/constructor.service.js new file mode 100644 index 0000000..70027c5 --- /dev/null +++ b/api/services/constructor.service.js @@ -0,0 +1,240 @@ +const db = require("../config/db"); +const saveCards = require("../middleware/genCards"); + +class ConstructorService { + // createPack(data) { + // return new Promise((res, rej) => { + // let sql = ` + // INSERT INTO + // house( + // group_id, + // title, + // number, + // points, + // points_number, + // geo, + // osm_id, + // settlement, + // created_at + // ) + // VALUES + // (?, ?, ?, ?, ?, ?, ?, ?, ?) + // `; + + // db.run(sql, [ + // Number(data.house.group_id), + // data.house.title, + // data.house.number, + // JSON.stringify(data.house.points), + // JSON.stringify(data.house.points_number), + // JSON.stringify(data.house.geo), + // JSON.stringify(data.house.osm_id), + // data.house.settlement, + // Math.floor(Date.now()) + // ], function (err) { + // if (err) { + // console.error(err.message); + // return res(false); + // } else if (this.changes === 0) { + // return res(false); + // } else { + // const houseId = this.lastID; + + // const entranceStmt = db.prepare(` + // INSERT INTO + // entrance( + // house_id, + // entrance_number, + // title, + // points, + // points_number, + // created_at + // ) + // VALUES + // (?, ?, ?, ?, ?, ?)`); + + // const apartmentStmt = db.prepare(` + // INSERT INTO + // apartments( + // entrance_id, + // apartment_number, + // floors_number, + // updated_at + // ) + // VALUES + // (?, ?, ?, ?)`); + + // data.entrance.forEach((e, index) => { + // entranceStmt.run( + // houseId, + // Number(e.entrance_number), + // e.title, + // JSON.stringify(e.points), + // JSON.stringify(e.points_number), + // Math.floor(Date.now()), + // function (err) { + // if (err) { + // console.error(err.message); + // return; + // } + // const entranceId = this.lastID; + + // if (data.apartments[e.editor_id]) { + // data.apartments[e.editor_id].forEach(apartment => { + // apartmentStmt.run( + // entranceId, + // apartment.apartment_number, + // apartment.floors_number, + // Math.floor(Date.now()) + // ); + // }); + // } + // } + // ); + // }); + + // entranceStmt.finalize(); + // apartmentStmt.finalize(); + + // // res({ "status": "ok", "id": houseId }); + // } + // }); + // }); + // } + createPack(data) { + return new Promise((res, rej) => { + + if (data.type == "house") { + const sql = ` + INSERT INTO house ( + group_id, title, number, points, points_number, geo, osm_id, settlement, created_at + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`; + + db.run(sql, [ + Number(data.group_id), + data.title, + data.number, + JSON.stringify(data.points), + JSON.stringify(data.points_number), + JSON.stringify(data.geo), + JSON.stringify(data.osm_id), + data.settlement, + Math.floor(Date.now()) + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } + if (this.changes === 0) { + return res(false); + } + + const houseId = this.lastID; + + saveCards({ center: data.geo, wayId: data.osm_id, zoom: data.zoom ?? 18, type: "house", number: houseId, address: `${data.title} ${data.number}` }); + + + const entranceStmt = db.prepare(` + INSERT INTO entrance ( + house_id, entrance_number, title, points, points_number, created_at + ) VALUES (?, ?, ?, ?, ?, ?)`); + + const apartmentStmt = db.prepare(` + INSERT INTO apartments ( + entrance_id, apartment_number, title, floors_number + ) VALUES (?, ?, ?, ?)`); + + const entranceIdMap = {}; // Для сопоставления editor_id → entrance_id + + let pendingEntrances = data.entrance.length; + + data.entrance.forEach((e) => { + entranceStmt.run( + houseId, + Number(e.entrance_number), + e.title, + JSON.stringify(e.points), + JSON.stringify(e.points_number), + Math.floor(Date.now()), + function (err) { + if (err) { + console.error(err.message); + return; + } + const entranceId = this.lastID; + entranceIdMap[e.editor_id] = entranceId; + + if (--pendingEntrances === 0) { + insertApartments(); + } + } + ); + }); + + function insertApartments() { + for (const [editor_id, apartments] of Object.entries(data.apartments)) { + const entranceId = entranceIdMap[editor_id]; + if (!entranceId) continue; + + apartments.forEach(apartment => { + apartmentStmt.run( + entranceId, + Number(apartment.apartment_number), + apartment.title, + apartment.floors_number + ); + }); + } + + entranceStmt.finalize(); + apartmentStmt.finalize(); + res({ "status": "ok", "id": houseId }); + } + }); + } else if (data.type == "homestead") { + let sql = ` + INSERT INTO + homestead( + group_id, + title, + number, + points, + point_icons, + geo, + osm_id, + settlement, + created_at + ) + VALUES + (?, ?, ?, ?, ?, ?, ?, ?, ?) + `; + + db.run(sql, [ + Number(data.group_id), + data.title, + data.number, + JSON.stringify(data.points), + JSON.stringify(data.point_icons), + JSON.stringify(data.geo), + JSON.stringify(data.osm_id), + data.settlement, + Math.floor(new Date(Date.now()).getTime()) + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + saveCards({ center: data.geo, wayId: data.osm_id, zoom: data.zoom ?? 17, type: "homestead", number: this.lastID, address: `${data.title} ${data.number}` }) + res({ "status": "ok", "id": this.lastID }); + } + }); + } else { + return res(false); + } + }); + } +} + +module.exports = new ConstructorService(); \ No newline at end of file diff --git a/api/services/entrances.service.js b/api/services/entrances.service.js new file mode 100644 index 0000000..1f34e98 --- /dev/null +++ b/api/services/entrances.service.js @@ -0,0 +1,158 @@ +const db = require("../config/db"); + +class EntrancesService { + getEntrances(house_id) { + return new Promise((res, rej) => { + let sql = ` + SELECT + entrance.*, + COALESCE((SELECT entrance_history.working FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1), 0) AS working, + (SELECT entrance_history.name FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1) AS entrance_history_name, + (SELECT entrance_history.group_id FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1) AS entrance_history_group_id, + (SELECT entrance_history.sheep_id FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1) AS entrance_history_sheep_id, + (SELECT entrance_history.id FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1) AS entrance_history_id, + (SELECT entrance_history.date_start FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1) AS entrance_history_date_start, + (SELECT entrance_history.date_end FROM entrance_history WHERE entrance_history.entrance_id = entrance.id ORDER BY entrance_history.date_start DESC LIMIT 1) AS entrance_history_date_end + FROM + entrance + WHERE + entrance.house_id = '${house_id}' + `; + + db.all(sql, (err, rows) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let data = rows.map((row) => { + return { + "id": Number(row.id), + "house_id": Number(row.house_id), + "entrance_number": Number(row.entrance_number), + "title": row.title, + "points": JSON.parse(row.points), + "points_number": JSON.parse(row.points_number), + "floors_quantity": row.floors_quantity, + "apartments_quantity": row.apartments_quantity, + "description": row.description, + "created_at": Number(row.created_at), + "updated_at": Number(row.updated_at), + "working": Number(row.working) == 0 ? false : true, + "history": { + "id": row.entrance_history_id ? Number(row.entrance_history_id) : null, + "name": row.entrance_history_name, + "group_id": row.entrance_history_group_id ? Number(row.entrance_history_group_id) : null, + "sheep_id": row.entrance_history_sheep_id ? Number(row.entrance_history_sheep_id) : null, + "date": { + "start": row.entrance_history_date_start ? Number(row.entrance_history_date_start) : null, + "end": row.entrance_history_date_end ? Number(row.entrance_history_date_end) : null + } + } + } + }) + + return res(data); + } + }); + }); + } + + createEntrance(house_id, data) { + return new Promise((res, rej) => { + let sql = ` + INSERT INTO + entrance( + house_id, + entrance_number, + title, + points, + points_number, + floors_quantity, + apartments_quantity, + description, + created_at, + updated_at + ) + VALUES + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `; + + db.run(sql, [ + house_id, + Number(data.entrance_number), + data.title, + JSON.stringify(data.points), + JSON.stringify(data.points_number), + data.floors_quantity, + data.apartments_quantity, + data.description, + Math.floor(new Date(Date.now()).getTime()), + Math.floor(new Date(Date.now()).getTime()), + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": this.lastID }); + } + }); + }); + } + + updateEntrance(data) { + return new Promise((res, rej) => { + let sql = ` + UPDATE + entrance + SET + title = ?, + points = ?, + points_number = ?, + floors_quantity = ?, + apartments_quantity = ?, + description = ?, + updated_at = ? + WHERE + id = ? + `; + db.run(sql, [ + data.title, + JSON.stringify(data.points), + JSON.stringify(data.points_number), + data.floors_quantity, + data.apartments_quantity, + data.description, + Math.floor(new Date(Date.now()).getTime()), + data.id + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": data.id }); + } + }); + }); + } + + deleteEntrance(data) { + return new Promise((res, rej) => { + db.run('DELETE FROM entrance WHERE id = ?', [data.id], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": data.id }); + } + }); + }); + } +} + +module.exports = new EntrancesService(); \ No newline at end of file diff --git a/api/services/history.entrance.service.js b/api/services/history.entrance.service.js new file mode 100644 index 0000000..d1baef5 --- /dev/null +++ b/api/services/history.entrance.service.js @@ -0,0 +1,105 @@ +const db = require("../config/db"); + +class HistoryEntranceService { + getHistoryEntrance(entrance_id) { + return new Promise((res, rej) => { + let sql = ` + SELECT + * + FROM + entrance_history + WHERE + entrance_history.entrance_id = '${entrance_id}' + ORDER BY + entrance_history.date_start + `; + + db.all(sql, (err, rows) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let data = rows.map((row) => { + return { + "id": Number(row.id), + "entrance_id": Number(row.entrance_id), + "name": row.name, + "group_id": Number(row.group_id), + "sheep_id": Number(row.sheep_id), + "working": Number(row.working) == 0 ? false : true, + "date": { + "start": Number(row.date_start), + "end": row.date_end ? Number(row.date_end) : null + } + } + }) + + return res(data); + } + }); + }); + } + + createHistoryEntrance(entrance_id, data) { + return new Promise((res, rej) => { + let sql = 'INSERT INTO entrance_history(entrance_id, name, date_start, group_id, sheep_id, working) VALUES (?, ?, ?, ?, ?, ?)'; + + db.run(sql, [ + entrance_id, + data.name, + Math.floor(new Date(Date.now()).getTime()), + Number(data.group_id), + Number(data.sheep_id), + 1 + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "create": "ok", "id": this.lastID }); + } + }); + }); + } + + updateHistoryEntrance(entrance_id) { + return new Promise((res, rej) => { + console.log(Number(entrance_id)); + + let sql = 'UPDATE entrance_history SET date_end = ?, working = ? WHERE id = ?'; + db.run(sql, [ + Math.floor(new Date(Date.now()).getTime()), + 0, + Number(entrance_id) + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "update": "ok", "id": entrance_id }); + } + }); + }); + } + + deleteHistoryEntrance(entrance_id) { + return new Promise((res, rej) => { + db.run('DELETE FROM entrance_history WHERE id = ?', [Number(entrance_id)], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "delete": "ok", "id": entrance_id }); + } + }); + }); + } +} + +module.exports = new HistoryEntranceService(); \ No newline at end of file diff --git a/api/services/history.homestead.service.js b/api/services/history.homestead.service.js new file mode 100644 index 0000000..b3462bc --- /dev/null +++ b/api/services/history.homestead.service.js @@ -0,0 +1,103 @@ +const db = require("../config/db"); + +class HistoryHomesteadService { + getHistoryHomestead(homestead_id) { + return new Promise((res, rej) => { + let sql = ` + SELECT + * + FROM + homestead_history + WHERE + homestead_history.homestead_id = '${homestead_id}' + ORDER BY + homestead_history.date_start + `; + + db.all(sql, (err, rows) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let data = rows.map((row) => { + return { + "id": Number(row.id), + "homestead_id": Number(row.homestead_id), + "name": row.name, + "group_id": Number(row.group_id), + "sheep_id": Number(row.sheep_id), + "working": Number(row.working) == 0 ? false : true, + "date": { + "start": Number(row.date_start), + "end": row.date_end ? Number(row.date_end) : null + } + } + }) + + return res(data); + } + }); + }); + } + + createHistoryHomestead(homestead_id, data) { + return new Promise((res, rej) => { + let sql = 'INSERT INTO homestead_history(homestead_id, name, date_start, group_id, sheep_id, working) VALUES (?, ?, ?, ?, ?, ?)'; + + db.run(sql, [ + homestead_id, + data.name, + Math.floor(new Date(Date.now()).getTime()), + Number(data.group_id), + Number(data.sheep_id), + 1 + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "create": "ok", "id": this.lastID }); + } + }); + }); + } + + updateHistoryHomestead(homestead_id) { + return new Promise((res, rej) => { + let sql = 'UPDATE homestead_history SET date_end = ?, working = ? WHERE id = ?'; + db.run(sql, [ + Math.floor(new Date(Date.now()).getTime()), + 0, + Number(homestead_id) + ], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "update": "ok", "id": homestead_id }); + } + }); + }); + } + + deleteHistoryHomestead(data) { + return new Promise((res, rej) => { + db.run('DELETE FROM homestead_history WHERE id = ?', [Number(homestead_id)], function(err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "delete": "ok", "id": homestead_id }); + } + }); + }); + } +} + +module.exports = new HistoryHomesteadService(); \ No newline at end of file diff --git a/api/services/homesteads.service.js b/api/services/homesteads.service.js new file mode 100644 index 0000000..9a1ca2d --- /dev/null +++ b/api/services/homesteads.service.js @@ -0,0 +1,260 @@ +const db = require("../config/db"); + +class HomesteadsService { + getList(group, sheepName) { + return new Promise((res, rej) => { + let sql = ` + SELECT + homestead.*, + COALESCE((SELECT homestead_history.working FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1), 0) AS working, + (SELECT homestead_history.name FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_name, + (SELECT homestead_history.group_id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_group_id, + (SELECT homestead_history.sheep_id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_sheep_id, + (SELECT homestead_history.id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_id, + (SELECT homestead_history.date_start FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_date_start, + (SELECT homestead_history.date_end FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_date_end + FROM + homestead + `; + + if (group != "0" && !sheepName) { + sql = ` + SELECT + homestead.*, + COALESCE((SELECT homestead_history.working FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1), 0) AS working, + (SELECT homestead_history.name FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_name, + (SELECT homestead_history.group_id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_group_id, + (SELECT homestead_history.sheep_id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_sheep_id, + (SELECT homestead_history.id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_id, + (SELECT homestead_history.date_start FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_date_start, + (SELECT homestead_history.date_end FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_date_end + FROM + homestead + WHERE + group_id == '${group}' + `; + } + + if (sheepName) { + sql = ` + SELECT + homestead.*, + homestead_history.homestead_id, + homestead_history.name AS homestead_history_name, + homestead_history.group_id AS homestead_history_group_id, + homestead_history.sheep_id AS homestead_history_sheep_id, + homestead_history.id AS homestead_history_id, + homestead_history.date_start AS homestead_history_date_start, + homestead_history.date_end AS homestead_history_date_end + FROM + homestead + JOIN + homestead_history + ON + homestead.id = homestead_history.homestead_id + WHERE + homestead.group_id = '${group}' + AND + homestead_history.working = 1 + AND + homestead_history.name IN ('Групова', '${sheepName}'); + `; + } + + db.all(sql, (err, rows) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let data = rows.map((row) => { + return { + "id": Number(row.id), + "group_id": Number(row.group_id), + "title": row.title, + "number": row.number, + "points": JSON.parse(row.points), + "point_icons": JSON.parse(row.point_icons), + "geo": JSON.parse(row.geo), + "osm_id": JSON.parse(row.osm_id), + "settlement": row.settlement, + "description": row.description, + "created_at": Number(row.created_at), + "updated_at": Number(row.updated_at), + "working": Number(row.working) == 0 ? false : true, + "history": { + "id": row.homestead_history_id ? Number(row.homestead_history_id) : null, + "name": row.homestead_history_name, + "group_id": row.homestead_history_group_id ? Number(row.homestead_history_group_id) : null, + "sheep_id": row.entrance_history_sheep_id ? Number(row.entrance_history_sheep_id) : null, + "date": { + "start": row.homestead_history_date_start ? Number(row.homestead_history_date_start) : null, + "end": row.homestead_history_date_end ? Number(row.homestead_history_date_end) : null + } + } + } + }) + + return res(data); + } + }); + }); + } + + getHomestead(homestead_id) { + return new Promise((res, rej) => { + let sql = ` + SELECT + homestead.*, + COALESCE((SELECT homestead_history.working FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1), 0) AS working, + (SELECT homestead_history.name FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_name, + (SELECT homestead_history.group_id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_group_id, + (SELECT homestead_history.id FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_id, + (SELECT homestead_history.date_start FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_date_start, + (SELECT homestead_history.date_end FROM homestead_history WHERE homestead_history.homestead_id = homestead.id ORDER BY homestead_history.date_start DESC LIMIT 1) AS homestead_history_date_end + FROM + homestead + WHERE + homestead.id = '${homestead_id}' + `; + + db.get(sql, (err, row) => { + if (err) { + console.error(err.message); + return res(false); + } else if (!row) { + console.log({ "error": "house not found" }); + return res(false); + } else { + let data = { + "id": Number(row.id), + "group_id": Number(row.group_id), + "title": row.title, + "number": row.number, + "points": JSON.parse(row.points), + "point_icons": JSON.parse(row.point_icons), + "geo": JSON.parse(row.geo), + "osm_id": JSON.parse(row.osm_id), + "settlement": row.settlement, + "description": row.description, + "updated_at": Number(row.updated_at), + "working": Number(row.working) == 0 ? false : true, + "history": { + "id": row.homestead_history_id ? Number(row.homestead_history_id) : null, + "name": row.homestead_history_name, + "group_id": row.homestead_history_group_id ? Number(row.homestead_history_group_id) : null, + "date": { + "start": row.homestead_history_date_start ? Number(row.homestead_history_date_start) : null, + "end": row.homestead_history_date_end ? Number(row.homestead_history_date_end) : null + } + } + } + + res(data); + } + }); + }); + } + + createHomestead(data) { + return new Promise((res, rej) => { + let sql = ` + INSERT INTO + homestead( + group_id, + title, + number, + points, + point_icons, + geo, + osm_id, + settlement, + created_at + ) + VALUES + (?, ?, ?, ?, ?, ?, ?, ?, ?) + `; + + db.run(sql, [ + Number(data.group_id), + data.title, + data.number, + JSON.stringify(data.points), + JSON.stringify(data.point_icons), + JSON.stringify(data.geo), + JSON.stringify(data.osm_id), + data.settlement, + Math.floor(new Date(Date.now()).getTime()) + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": this.lastID }); + } + }); + }); + } + + updateHomestead(homestead_id, data) { + return new Promise((res, rej) => { + let sql = ` + UPDATE + homestead + SET + group_id = ?, + title = ?, + number = ?, + points = ?, + point_icons = ?, + geo = ?, + osm_id = ?, + settlement = ?, + description = ?, + updated_at = ? + WHERE + id = ? + `; + db.run(sql, [ + Number(data.group_id), + data.title, + data.number, + JSON.stringify(data.points), + JSON.stringify(data.point_icons), + JSON.stringify(data.geo), + JSON.stringify(data.osm_id), + data.settlement, + data.description, + Math.floor(new Date(Date.now()).getTime()), + homestead_id + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": homestead_id }); + } + }); + }); + } + + deleteHomestead(homestead_id) { + return new Promise((res, rej) => { + db.run('DELETE FROM homestead WHERE id = ?', [homestead_id], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": homestead_id }); + } + }); + }); + } +} + +module.exports = new HomesteadsService(); \ No newline at end of file diff --git a/api/services/houses.service.js b/api/services/houses.service.js new file mode 100644 index 0000000..13e6006 --- /dev/null +++ b/api/services/houses.service.js @@ -0,0 +1,233 @@ +const db = require("../config/db"); + +class HousesService { + getList(group, sheepName) { + return new Promise((res, rej) => { + let sql = ` + SELECT + house.*, + (SELECT COUNT(DISTINCT entrance_history.id) FROM entrance_history JOIN entrance ON entrance.id = entrance_history.entrance_id WHERE entrance.house_id = house.id AND entrance_history.working = 1 ORDER BY entrance_history.date_start DESC) AS working, + (SELECT COUNT(*) FROM entrance WHERE entrance.house_id = house.id) AS entrance_quantity + FROM + house + `; + + if (group != "0" && !sheepName) { + sql = ` + SELECT + house.*, + (SELECT COUNT(DISTINCT entrance_history.id) FROM entrance_history JOIN entrance ON entrance.id = entrance_history.entrance_id WHERE entrance.house_id = house.id AND entrance_history.working = 1 ORDER BY entrance_history.date_start DESC) AS working, + (SELECT COUNT(*) FROM entrance WHERE entrance.house_id = house.id) AS entrance_quantity + FROM + house + WHERE + group_id == '${group}' + `; + } + + + if (sheepName) { + sql = ` + SELECT DISTINCT + house.*, + (SELECT COUNT(DISTINCT entrance_history.id) FROM entrance_history JOIN entrance ON entrance.id = entrance_history.entrance_id WHERE entrance.house_id = house.id AND entrance_history.working = 1 ORDER BY entrance_history.date_start DESC) AS working, + (SELECT COUNT(*) FROM entrance WHERE entrance.house_id = house.id) AS entrance_quantity + FROM + house + JOIN + entrance ON entrance.house_id = house.id + JOIN + entrance_history ON entrance_history.entrance_id = entrance.id + WHERE + house.group_id = '${group}' + AND + entrance_history.working = 1 + AND + entrance_history.name IN ('Групова', '${sheepName}'); + `; + } + + db.all(sql, (err, rows) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let data = rows.map((row) => { + return { + "id": Number(row.id), + "group_id": Number(row.group_id), + "title": row.title, + "number": row.number, + "points": JSON.parse(row.points), + "points_number": JSON.parse(row.points_number), + "geo": JSON.parse(row.geo), + "osm_id": JSON.parse(row.osm_id), + "settlement": row.settlement, + "description": row.description, + "created_at": Number(row.created_at), + "updated_at": Number(row.updated_at), + "entrance": { + "quantity": Number(row.entrance_quantity), + "working": Number(row.working) + } + } + }) + + return res(data); + } + }); + }); + } + + getHouse(house_id) { + return new Promise((res, rej) => { + let sql = ` + SELECT + house.*, + (SELECT COUNT(DISTINCT entrance_history.id) FROM entrance_history JOIN entrance ON entrance.id = entrance_history.entrance_id WHERE entrance.house_id = house.id AND entrance_history.working = 1 ORDER BY entrance_history.date_start DESC) AS working, + (SELECT COUNT(*) FROM entrance WHERE entrance.house_id = house.id) AS entrance_quantity + FROM + house + WHERE + house.id = '${house_id}' + `; + + db.get(sql, (err, row) => { + if (err) { + console.error(err.message); + return res(false); + } else if (!row) { + console.log({ "error": "house not found" }); + return res(false); + } else { + let data = { + "id": Number(row.id), + "group_id": Number(row.group_id), + "title": row.title, + "number": row.number, + "points": JSON.parse(row.points), + "points_number": JSON.parse(row.points_number), + "geo": JSON.parse(row.geo), + "osm_id": JSON.parse(row.osm_id), + "settlement": row.settlement, + "description": row.description, + "updated_at": Number(row.updated_at), + "entrance": { + "quantity": Number(row.entrance_quantity), + "working": Number(row.working) == 0 ? false : true + } + } + + res(data); + } + }); + }); + } + + createHouse(data) { + return new Promise((res, rej) => { + let sql = ` + INSERT INTO + house( + group_id, + title, + number, + points, + points_number, + geo, + osm_id, + settlement, + description, + created_at, + updated_at + ) + VALUES + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `; + + db.run(sql, [ + Number(data.group_id), + data.title, + data.number, + JSON.stringify(data.points), + JSON.stringify(data.points_number), + JSON.stringify(data.geo), + JSON.stringify(data.osm_id), + data.settlement, + data.description, + Math.floor(new Date(Date.now()).getTime()), + Math.floor(new Date(Date.now()).getTime()), + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": this.lastID }); + } + }); + }); + } + + updateHouse(house_id, data) { + return new Promise((res, rej) => { + let sql = ` + UPDATE + house + SET + group_id = ?, + title = ?, + number = ?, + points = ?, + points_number = ?, + geo = ?, + osm_id = ?, + settlement = ?, + description = ?, + updated_at = ? + WHERE + id = ? + `; + db.run(sql, [ + Number(data.group_id), + data.title, + data.number, + JSON.stringify(data.points), + JSON.stringify(data.points_number), + JSON.stringify(data.geo), + JSON.stringify(data.osm_id), + data.settlement, + data.description, + Math.floor(new Date(Date.now()).getTime()), + house_id + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": house_id }); + } + }); + }); + } + + deleteHouse(house_id) { + return new Promise((res, rej) => { + db.run('DELETE FROM house WHERE id = ?', [house_id], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": house_id }); + } + }); + }); + } +} + +module.exports = new HousesService(); \ No newline at end of file diff --git a/api/services/rotation.service.js b/api/services/rotation.service.js new file mode 100644 index 0000000..cf56eff --- /dev/null +++ b/api/services/rotation.service.js @@ -0,0 +1,106 @@ +const sqlite3 = require("sqlite3").verbose(); +const path = require('path'); + +const TelegramConfig = require('../config/telegram.config.js'); +const TelegramBot = require('node-telegram-bot-api'); +const fs = require('fs'); + +const dbPath = process.env.DATABASE_PATH || '../'; +const db = new sqlite3.Database(path.join(dbPath, 'database.sqlite')); + +const bot = new TelegramBot(TelegramConfig.token, { polling: false }); + +class RotationService { + async editTables() { + await bot.sendDocument(TelegramConfig.chatId, fs.createReadStream(path.join(dbPath, 'database.sqlite')), { + filename: "database.sqlite", + contentType: "application/x-sqlite3", + caption: "Резервна копія БД Manager Territory 📄 перед проведенням ротації територій!" + }); + + console.log("Резервна копія БД відправленна в Telegram"); + + return new Promise((resolve, reject) => { + db.serialize(() => { + db.get("SELECT MAX(group_id) AS max_id FROM homestead", (err, row) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при отриманні max_id для homestead" }); + } + + const maxIdHomestead = row?.max_id; + if (maxIdHomestead === null) { + return reject({ "message": "Таблиця homestead пуста або group_id відсутній" }); + } + + db.get("SELECT MAX(group_id) AS max_id FROM house", (err, row) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при отриманні max_id для house" }); + } + + const maxIdHouse = row?.max_id; + if (maxIdHouse === null) { + return reject({ "message": "Таблиця house пуста або group_id відсутній" }); + } + const currentUnixTime = Math.floor(Date.now()); + + // Оновлюємо group_id в обох таблицах + db.run("UPDATE homestead SET updated_at = ?, group_id = group_id + 1 WHERE group_id < ? AND group_id > 0", [currentUnixTime, maxIdHomestead + 1], (err) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при оновленні значень у homestead" }); + } + + db.run("UPDATE homestead SET updated_at = ?, group_id = 1 WHERE group_id = ?", [currentUnixTime, maxIdHomestead + 1], (err) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при встановленні group_id = 1 у homestead" }); + } + + db.run("UPDATE house SET updated_at = ?, group_id = group_id + 1 WHERE group_id < ? AND group_id > 0", [currentUnixTime, maxIdHouse + 1], (err) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при оновленні значень у house" }); + } + + db.run("UPDATE house SET updated_at = ?, group_id = 1 WHERE group_id = ?", [currentUnixTime, maxIdHouse + 1], (err) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при встановленні group_id = 1 у house" }); + } + + console.log("Ротація homestead та house завершилась успішно"); + + // Після оновлення homestead та house ми оновлюємо homestead_history та entrance_history + db.run("UPDATE homestead_history SET date_end = ?, working = 0 WHERE working = 1", [currentUnixTime], (err) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при оновленні homestead_history" }); + } + + db.run("UPDATE entrance_history SET date_end = ?, working = 0 WHERE working = 1", [currentUnixTime], (err) => { + if (err) { + console.error(err.message); + return reject({ "message": "Помилка при оновленні entrance_history" }); + } + + console.log("Ротація homestead_history та entrance_history завершилась успішно"); + resolve({ "message": "Ротація завершилась успішно" }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }).catch(error => { + console.error('Помилка при проведенні ротації:', error.message); + return error; + }); + } +} + +module.exports = new RotationService(); \ No newline at end of file diff --git a/api/services/sheeps.service.js b/api/services/sheeps.service.js new file mode 100644 index 0000000..729338e --- /dev/null +++ b/api/services/sheeps.service.js @@ -0,0 +1,396 @@ +const crypto = require('crypto'); +const db = require("../config/db"); + +class SheepService { + getSheep(uuid, sheepRole) { + return new Promise((res, rej) => { + let sql = ` + SELECT + sheeps.*, + groups.group_number AS group_id, + administrators.id AS administrators_id, + administrators.uuid AS administrators_uuid, + moderators.id AS moderators_id, + moderators.uuid AS moderators_uuid, + moderators.can_add_sheeps, + moderators.can_add_territory, + moderators.can_manager_territory, + moderators.can_add_stand, + moderators.can_manager_stand, + moderators.can_add_schedule + FROM + sheeps + LEFT JOIN + groups ON groups.group_number = sheeps.group_id + LEFT JOIN + administrators ON administrators.sheep_id = sheeps.id + LEFT JOIN + moderators ON moderators.sheep_id = sheeps.id + WHERE + sheeps.uuid = ? + LIMIT 1; + ` + db.get(sql, [uuid], (err, sheep) => { + if (err) { + console.error(err.message); + return res(false); + } else if (!sheep) { + console.log({ "error": "uuid not found" }); + return res(false); + } else { + let data = { + "id": Number(sheep.id), + "group_id": Number(sheep.group_id), + "name": sheep.name, + "icon": sheep.icon, + "uuid": sheep.uuid, + "appointment": sheep.appointment, + "can_view_stand": sheep.can_view_stand == 0 ? false : true, + "can_view_schedule": sheep.can_view_schedule == 0 ? false : true, + "can_view_territory": sheep.can_view_territory == 0 ? false : true, + "administrator": { + "id": sheep.administrators_id ? sheep.administrators_id : false, + "uuid": null + }, + "moderator": { + "id": sheep.moderators_id ? sheep.moderators_id : false, + "uuid": null, + "can_add_sheeps": sheep.can_add_sheeps == 1 ? true : false, + "can_add_territory": sheep.can_add_territory == 1 ? true : false, + "can_manager_territory": sheep.can_manager_territory == 1 ? true : false, + "can_add_stand": sheep.can_add_stand == 1 ? true : false, + "can_manager_stand": sheep.can_manager_stand == 1 ? true : false, + "can_add_schedule": sheep.can_add_schedule == 1 ? true : false + } + } + + if (sheepRole == "administrator") { + if (sheep.administrators_id) { + data.administrator.uuid = sheep.administrators_uuid; + } + if (sheep.moderators_id) { + data.moderator.uuid = sheep.moderators_uuid; + } + } + + return res(data); + } + }); + }); + } + getList(sheepRole) { + return new Promise((res, rej) => { + let sql = ` + SELECT + sheeps.*, + groups.group_number AS group_id, + administrators.id AS administrators_id, + administrators.uuid AS administrators_uuid, + moderators.id AS moderators_id, + moderators.uuid AS moderators_uuid, + moderators.can_add_sheeps, + moderators.can_add_territory, + moderators.can_manager_territory, + moderators.can_add_stand, + moderators.can_manager_stand, + moderators.can_add_schedule + FROM + sheeps + LEFT JOIN + groups ON groups.group_number = sheeps.group_id + LEFT JOIN + administrators ON administrators.sheep_id = sheeps.id + LEFT JOIN + moderators ON moderators.sheep_id = sheeps.id + ORDER BY + id + `; + + db.all(sql, (err, sheeps) => { + if (err) { + console.error(err.message); + return res(false); + } else { + let result = sheeps.map((sheep) => { + let data = { + "id": Number(sheep.id), + "group_id": Number(sheep.group_id), + "name": sheep.name, + "icon": sheep.icon, + "uuid": sheep.uuid, + "appointment": sheep.appointment, + "can_view_stand": sheep.can_view_stand == 0 ? false : true, + "can_view_schedule": sheep.can_view_schedule == 0 ? false : true, + "can_view_territory": sheep.can_view_territory == 0 ? false : true, + "administrator": { + "id": sheep.administrators_id ? sheep.administrators_id : false, + "uuid": null + }, + "moderator": { + "id": sheep.moderators_id ? sheep.moderators_id : false, + "uuid": null, + "can_add_sheeps": sheep.can_add_sheeps == 1 ? true : false, + "can_add_territory": sheep.can_add_territory == 1 ? true : false, + "can_manager_territory": sheep.can_manager_territory == 1 ? true : false, + "can_add_stand": sheep.can_add_stand == 1 ? true : false, + "can_manager_stand": sheep.can_manager_stand == 1 ? true : false, + "can_add_schedule": sheep.can_add_schedule == 1 ? true : false + } + } + + if (sheepRole == "administrator") { + if (sheep.administrators_id) { + data.administrator.uuid = sheep.administrators_uuid; + } + if (sheep.moderators_id) { + data.moderator.uuid = sheep.moderators_uuid; + } + } + + return data; + }) + + return res(result); + } + }); + }); + } + getAdministrator(uuid) { + return new Promise((res, rej) => { + let sql = ` + SELECT + sheeps.*, + groups.group_number AS group_id, + administrators.id AS administrators_id, + administrators.uuid AS administrators_uuid + FROM + sheeps + JOIN + administrators ON sheeps.id = administrators.sheep_id + LEFT JOIN + groups ON groups.group_number = sheeps.group_id + WHERE + administrators.uuid = ? + LIMIT 1; + ` + db.get(sql, [uuid], (err, sheep) => { + if (err) { + console.error(err.message); + return res(false); + } else if (!sheep) { + console.log({ "error": "uuid not found" }); + return res(false); + } else { + let data = { + "id": Number(sheep.id), + "group_id": Number(sheep.group_id), + "name": sheep.name, + "icon": sheep.icon, + "uuid": sheep.uuid, + "appointment": sheep.appointment, + "can_view_stand": sheep.can_view_stand == 0 ? false : true, + "can_view_schedule": sheep.can_view_schedule == 0 ? false : true, + "can_view_territory": sheep.can_view_territory == 0 ? false : true, + "administrator": { + "id": sheep.administrators_id, + "uuid": sheep.administrators_uuid + }, + "moderator": false + } + + return res(data); + } + }); + }); + } + getModerator(uuid) { + return new Promise((res, rej) => { + let sql = ` + SELECT + sheeps.*, + groups.group_number AS group_id, + moderators.id AS moderators_id, + moderators.uuid AS moderators_uuid, + moderators.can_add_sheeps AS can_add_sheeps, + moderators.can_add_territory AS can_add_territory, + moderators.can_manager_territory AS can_manager_territory, + moderators.can_add_stand AS can_add_stand, + moderators.can_manager_stand AS can_manager_stand, + moderators.can_add_schedule AS can_add_schedule + FROM + sheeps + JOIN + moderators ON sheeps.id = moderators.sheep_id + LEFT JOIN + groups ON groups.group_number = sheeps.group_id + WHERE + moderators.uuid = ? + LIMIT 1; + ` + db.get(sql, [uuid], (err, sheep) => { + if (err) { + console.error(err.message); + return res(false); + } else if (!sheep) { + console.log({ "error": "uuid not found" }); + return res(false); + } else { + let data = { + "id": Number(sheep.id), + "group_id": Number(sheep.group_id), + "name": sheep.name, + "icon": sheep.icon, + "uuid": sheep.uuid, + "appointment": sheep.appointment, + "can_view_stand": sheep.can_view_stand == 0 ? false : true, + "can_view_schedule": sheep.can_view_schedule == 0 ? false : true, + "can_view_territory": sheep.can_view_territory == 0 ? false : true, + "administrator": false, + "moderator": { + "id": sheep.moderators_id, + "uuid": sheep.moderators_uuid, + "can_add_sheeps": sheep.can_add_sheeps == 0 ? false : true, + "can_add_territory": sheep.can_add_territory == 0 ? false : true, + "can_manager_territory": sheep.can_manager_territory == 0 ? false : true, + "can_add_stand": sheep.can_add_stand == 0 ? false : true, + "can_manager_stand": sheep.can_manager_stand == 0 ? false : true, + "can_add_schedule": sheep.can_add_schedule == 0 ? false : true + } + } + + return res(data); + } + }); + }); + } + createSheep(data) { + return new Promise((res, rej) => { + let sql = 'INSERT INTO sheeps(name, group_id, appointment, uuid) VALUES (?, ?, ?, ?)'; + + let uuid = crypto.randomUUID(); + + db.run(sql, [ + data.name, + Number(data.group_id), + data.appointment, + uuid + ], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "status": "ok", "id": this.lastID, "uuid": uuid }); + } + }); + }); + } + updateSheep(data) { + return new Promise(async (res, rej) => { + try { + let sql = ` + UPDATE sheeps + SET name = ?, group_id = ?, appointment = ?, + can_view_stand = ?, can_view_schedule = ?, can_view_territory = ? + WHERE uuid = ? + `; + + await db.run(sql, [ + data.name, + Number(data.group_id), + data.appointment, + data.can_view_stand ? 1 : 0, + data.can_view_schedule ? 1 : 0, + data.can_view_territory ? 1 : 0, + data.uuid + ]); + + if (data.role === "administrator") { + if (!data.administrator?.id) { + await db.run( + 'INSERT INTO administrators(sheep_id, uuid) VALUES (?, ?)', + [data.id, crypto.randomUUID()] + ); + console.log({ insert: "ok" }); + } + if (data.moderator?.id) { + await db.run('DELETE FROM moderators WHERE id = ?', [data.moderator.id]); + console.log({ delete: "ok" }); + } + } else if (data.role === "moderator") { + if (!data.moderator?.id) { + await db.run( + `INSERT INTO moderators(sheep_id, can_add_sheeps, can_add_territory, + can_manager_territory, can_add_stand, can_manager_stand, + can_add_schedule, uuid) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, + [ + data.id, + data.moderator.can_add_sheeps ? 1 : 0, + data.moderator.can_add_territory ? 1 : 0, + data.moderator.can_manager_territory ? 1 : 0, + data.moderator.can_add_stand ? 1 : 0, + data.moderator.can_manager_stand ? 1 : 0, + data.moderator.can_add_schedule ? 1 : 0, + crypto.randomUUID() + ] + ); + console.log({ insert: "ok" }); + } else { + await db.run( + `UPDATE moderators + SET can_add_sheeps = ?, can_add_territory = ?, + can_manager_territory = ?, can_add_stand = ?, + can_manager_stand = ?, can_add_schedule = ? + WHERE id = ?`, + [ + data.moderator.can_add_sheeps ? 1 : 0, + data.moderator.can_add_territory ? 1 : 0, + data.moderator.can_manager_territory ? 1 : 0, + data.moderator.can_add_stand ? 1 : 0, + data.moderator.can_manager_stand ? 1 : 0, + data.moderator.can_add_schedule ? 1 : 0, + data.moderator.id + ] + ); + console.log({ update: "ok" }); + } + if (data.administrator?.id) { + await db.run('DELETE FROM administrators WHERE id = ?', [data.administrator.id]); + console.log({ delete: "ok" }); + } + } else if (data.role === "sheep") { + if (data.moderator?.id) { + await db.run('DELETE FROM moderators WHERE id = ?', [data.moderator.id]); + console.log({ delete: "ok" }); + } + if (data.administrator?.id) { + await db.run('DELETE FROM administrators WHERE id = ?', [data.administrator.id]); + console.log({ delete: "ok" }); + } + } + + res({ status: "ok", id: data.id }); + } catch (err) { + console.error(err.message); + rej(false); + } + }); + } + deleteSheep(data) { + return new Promise((res, rej) => { + db.run('DELETE FROM sheeps WHERE uuid = ?', [data.uuid], function (err) { + if (err) { + console.error(err.message); + return res(false); + } else if (this.changes === 0) { + return res(false); + } else { + res({ "dellete": "ok" }); + } + }); + }); + } +} + +module.exports = new SheepService(); \ No newline at end of file diff --git a/dock/Sheep-Service.dbml b/dock/Sheep-Service.dbml new file mode 100644 index 0000000..eecb89e --- /dev/null +++ b/dock/Sheep-Service.dbml @@ -0,0 +1,186 @@ +// Use DBML to define your database structure +// Docs: https://dbml.dbdiagram.io/docs + +Table sheeps [note: 'Таблиця вісників'] { + id integer [primary key] + group_id integer [note: 'ID групи'] + name text [note: 'Імʼя вісника'] + icon text [note: 'Піктограмка вісника'] + uuid text [note: 'Код доступа'] + appointment text [default: 'lamb', note: 'Вид призначення'] + can_view_stand integer [default: 0, note: 'Доступ до перегляду графіку стендів'] + can_view_schedule integer [default: 0, note: 'Доступ до перегляду графіку зібрань'] + can_view_territory integer [default: 0, note: 'Доступ до перегляду особистих та групових територій'] +} + +Table administrators [note: 'Таблиця адміністраторів'] { + id integer [primary key] + sheep_id integer [note: 'ID вісника'] + uuid text [note: 'Код доступа'] +} + +Table moderators [note: 'Таблиця модераторів'] { + id integer [primary key] + sheep_id integer [note: 'ID вісника'] + uuid text [note: 'Код доступа'] + can_add_sheeps integer [default: 0, note: 'Доступ до додавання вісників'] + can_add_territory integer [default: 0, note: 'Доступ до створення територій'] + can_manager_territory integer [default: 0, note: 'Доступ до призначання територій'] + can_add_stand integer [default: 0, note: 'Доступ до створення стендів'] + can_manager_stand integer [default: 0, note: 'Доступ до редагування графіку стендів'] + can_add_schedule integer [default: 0, note: 'Доступ до створення графіку зібрань'] +} + +Table groups [note: 'Таблиця теократичних груп'] { + id integer [primary key] + group_number integer [note: 'Номер групи'] + share_hash text [note: 'Код доступа для посилання спільного доступу до групових території'] +} + +Table subscription [note: 'Таблиця токенів вісників для повідомлень'] { + id integer [primary key] + sheep_id integer [note: 'ID вісника'] + token text [note: 'Токен пристрою'] +} + +Table house [note: 'Таблиця багатоповерхових будинків'] { + id integer [primary key] + group_id integer [note: 'ID групи'] + title text [note: 'Вулиця будинку'] + number text [note: 'Номер будинку'] + points text [default: '[]', note: 'Масив точок будинку OSM'] + points_number text [default: '[]', note: 'Масив точок будинку OSM'] + geo text [default: '[]', note: 'Точка будинку на мапі'] + osm_id text [default: '[]', note: 'Список ID будинків в БД OSM'] + settlement text [note: 'Місто роздашування'] + description text [note: 'Коментар до будинку'] + created_at timestamp [note: 'Дата створення будинку'] + updated_at timestamp [note: 'Дата зміни будинку'] +} + +Table entrance [note: 'Таблиця підїздів багатоповерхових будинків'] { + id integer [primary key] + house_id integer [note: 'ID багатоповерхового будинку'] + entrance_number integer [note: 'Номер підїзду'] + title text [note: 'Назва підїзду'] + points text [default: '[]', note: 'Масив точок підїзду OSM'] + points_number text [default: '[]', note: 'Масив точок підїзду OSM'] + floors_quantity text [note: 'Кількість поверхів в підїзді'] + apartments_quantity text [note: 'Кількість квартир в підїзді'] + description text [note: 'Коментар до підїзду'] + created_at timestamp [note: 'Дата створення підїзду'] + updated_at timestamp [note: 'Дата зміни підїзду'] +} + +Table entrance_history [note: 'Таблиця історії вісників які опрацьовували багатоповерхові будинки'] { + id integer [primary key] + entrance_id integer [note: 'ID підїзду'] + name text [note: 'Хто опрацовував (імʼя)'] + date_start timestamp [note: 'Початок опрацювання'] + date_end timestamp [note: 'Кінець опрацювання'] + group_id integer [note: 'Група яка опрацювувала'] + sheep_id text [note: 'ID вісника що зробив зміни'] + working integer [default: 0, note: 'Статус опрацювання'] +} + +Table apartments [note: 'Таблиця квартир'] { + id integer [primary key] + entrance_id integer [note: 'ID підїзду'] + apartment_number integer [note: 'Номер квартири'] + title text [note: 'Назва квартири'] + floors_number integer [note: 'Номер поверху'] + status integer [note: 'Статус квартири'] + description text [note: 'Коментар до квартири'] + sheep_id text [note: 'ID вісника що зробив зміни'] + updated_at timestamp [note: 'Дата зміни історії квартири'] +} + +Table apartments_history [note: 'Таблиця історії опрацьовування квартир'] { + id integer [primary key] + sheep_id text [note: 'ID вісника що зробив зміни'] + apartments_id integer [note: 'ID квартири'] + status integer [note: 'Статус квартири'] + description text [note: 'Коментар до квартири'] + created_at timestamp [note: 'Дата зміни історії квартири'] +} + +Table homestead [note: 'Таблиця житлових районів'] { + id integer [primary key] + group_id integer [note: 'ID групи'] + title text [note: 'Житловий район'] + number text [note: 'Номер житловогу району'] + points text [default: '[]', note: 'Масив точок житловогу району OSM'] + point_icons text [default: '[]', note: 'Масив точок піктограм житловогу району'] + geo text [default: '[]', note: 'Точка житловогу району на мапі'] + osm_id text [default: '[]', note: 'Список ID житловоих районів в БД OSM'] + settlement text [note: 'Місто роздашування'] + description text [note: 'Коментар до житловогу району'] + created_at timestamp [note: 'Дата створення житловогу району'] + updated_at timestamp [note: 'Дата зміни житловогу району'] +} + +Table homestead_history [note: 'Таблиця історії вісників які опрацьовували житлові райони'] { + id integer [primary key] + homestead_id integer [note: 'ID підїзду'] + name text [note: 'Хто опрацовував (імʼя)'] + date_start timestamp [note: 'Початок опрацювання'] + date_end timestamp [note: 'Кінець опрацювання'] + group_id integer [note: 'Група яка опрацювувала'] + sheep_id text [note: 'ID вісника що зробив зміни'] + working integer [default: 0, note: 'Статус опрацювання'] +} + +Table meetings_schedule [note: 'Таблиця розкладу зібрань'] { + id integer [primary key] + date timestamp [note: 'Дата зібрання'] + type integer [note: 'Тип зібрання'] + name text [note: 'Імʼя вісника що має завдання'] + sheep_id text [note: 'ID вісника що має завдання'] + title text [note: 'Номер пісні або назва промови'] + number text [note: 'Номер пункту графіка'] +} + +Table stand_list [note: 'Таблиця місць розташування стенду та його налаштування'] { + id integer [primary key] + title text [note: 'Назва місця розташування стенду'] + hour_start integer [default: 10, note: 'Година початку служіння'] + hour_end integer [default: 16, note: 'Година закінчення служіння'] + quantity_sheep integer [default: 2, note: 'Кількість вісників, що можуть стояти одночасно'] + week_days text [default: '[0, 1, 2, 3, 4, 5, 6]', note: 'Дні тижня, на яких стоїть стенд'] +} + +Table stand_schedule [note: 'Таблиця записів служіння зі стендом'] { + id integer [primary key] + stand integer [note: 'ID стенду'] + date timestamp [note: 'Дата служіння зі стендом'] + hour integer [note: 'Година запису'] + sheep_id text [note: 'ID вісника'] + number_sheep text [note: 'Номер вісника, що одночасно стоїть'] + updated_at timestamp [note: 'Дата зміни запису'] +} + + +Ref: sheeps.id - administrators.sheep_id // one-to-one +Ref: sheeps.id - moderators.sheep_id // one-to-one +Ref: sheeps.id < apartments_history.sheep_id // one-to-many +Ref: sheeps.id < apartments.sheep_id // one-to-many +Ref: sheeps.id < subscription.sheep_id // one-to-many +Ref: sheeps.id < homestead_history.sheep_id // one-to-many +Ref: sheeps.id < entrance_history.sheep_id // one-to-many +Ref: sheeps.id < meetings_schedule.sheep_id // one-to-many +Ref: sheeps.id < stand_schedule.sheep_id // one-to-many + +Ref: groups.group_number < sheeps.group_id // one-to-many +Ref: groups.group_number < house.group_id // one-to-many +Ref: groups.group_number < homestead.group_id // one-to-many + +Ref: house.id < entrance.house_id // one-to-many + +Ref: homestead.id < homestead_history.homestead_id // one-to-many + +Ref: entrance.id < entrance_history.entrance_id // one-to-many +Ref: entrance.id < apartments.entrance_id // one-to-many + +Ref: apartments.id < apartments_history.apartments_id // one-to-many + +Ref: stand_list.id < stand_schedule.stand // one-to-many \ No newline at end of file diff --git a/dock/Sheep-Service.pdf b/dock/Sheep-Service.pdf new file mode 100644 index 0000000..5b1bdc4 --- /dev/null +++ b/dock/Sheep-Service.pdf @@ -0,0 +1,16305 @@ +%PDF-1.3 +%߬ +3 0 obj +<> >> +] +/Contents 4 0 R +>> +endobj +4 0 obj +<< +/Length 191373 +>> +stream +0.200025 w +0 G +0.98 g +0. 1080. 1920. -1080. re +f +q +1. 0. 0. -1. 0. 1080. cm +q +1. 0. 0. 1. 1711. 1015. cm +1. w +0. g +q +1. 0. 0. 1. 0. 0. cm +0. 0. 184. 60. re +W +n +q +q +0.26 0.55 1. rg +0.2 0. 0. 0.2 0. 0. cm +211.9000000000000057 68.7999999999999972 m +159.6999999999999886 68.7999999999999972 l +159.6999999999999886 147.5999999999999943 l +242.3999999999999773 147.5999999999999943 l +242.3999999999999773 99.2999999999999972 l +242.3999999999999773 82.5 228.7999999999999829 68.7999999999999972 211.8999999999999773 68.7999999999999972 c +h +f +Q +q +0.15 0.44 0.87 rg +0.2 0. 0. 0.2 0. 0. cm +242.4000000000000057 147.5999999999999943 m +159.6999999999999886 147.5999999999999943 l +159.6999999999999886 228.8000000000000114 l +211.8999999999999773 228.8000000000000114 l +228.6999999999999886 228.8000000000000114 242.3999999999999773 215.1000000000000227 242.3999999999999773 198.3000000000000114 c +242.3999999999999773 147.6000000000000227 l +h +f +Q +q +0.13 0.38 0.81 rg +0.2 0. 0. 0.2 0. 0. cm +159.6999999999999886 68.7999999999999972 m +113.0999999999999943 68.7999999999999972 l +96.2999999999999972 68.7999999999999972 82.5999999999999943 82.5 82.5999999999999943 99.2999999999999972 c +82.5999999999999943 198.3000000000000114 l +82.5999999999999943 215.1000000000000227 96.2999999999999972 228.8000000000000114 113.0999999999999943 228.8000000000000114 c +159.6999999999999886 228.8000000000000114 l +159.6999999999999886 68.8000000000000114 l +h +f +Q +q +1. g +0.2 0. 0. 0.2 0. 0. cm +135.9000000000000057 165.0999999999999943 m +113.9000000000000057 165.0999999999999943 l +110.5 165.0999999999999943 107.8000000000000114 162.4000000000000057 107.8000000000000114 159. c +107.8000000000000114 137. l +107.8000000000000114 133.5999999999999943 110.5000000000000142 130.9000000000000057 113.9000000000000057 130.9000000000000057 c +135.9000000000000057 130.9000000000000057 l +139.3000000000000114 130.9000000000000057 142. 133.5999999999999943 142. 137. c +142. 159. l +142. 162.4000000000000057 139.1999999999999886 165.0999999999999943 135.9000000000000057 165.0999999999999943 c +h +185. 92.7999999999999972 m +207. 92.7999999999999972 l +210.4000000000000057 92.7999999999999972 213.0999999999999943 95.5 213.0999999999999943 98.8999999999999915 c +213.0999999999999943 120.8999999999999915 l +213.0999999999999943 124.2999999999999972 210.4000000000000057 126.9999999999999858 207. 126.9999999999999858 c +185. 126.9999999999999858 l +181.5999999999999943 126.9999999999999858 178.9000000000000057 124.2999999999999829 178.9000000000000057 120.8999999999999915 c +178.9000000000000057 98.8999999999999915 l +178.9000000000000057 95.4999999999999858 181.7000000000000171 92.7999999999999972 185. 92.7999999999999972 c +h +185. 171. m +207. 171. l +210.4000000000000057 171. 213.0999999999999943 173.6999999999999886 213.0999999999999943 177.0999999999999943 c +213.0999999999999943 199.0999999999999943 l +213.0999999999999943 202.5 210.4000000000000057 205.1999999999999886 207. 205.1999999999999886 c +185. 205.1999999999999886 l +181.5999999999999943 205.1999999999999886 178.9000000000000057 202.5 178.9000000000000057 199.0999999999999943 c +178.9000000000000057 177.0999999999999943 l +178.9000000000000057 173.6999999999999886 181.7000000000000171 171. 185. 171. c +h +f +Q +q +1. g +0.2 0. 0. 0.2 0. 0. cm +126.0759999999999934 151.6500000000000057 m +192.1159999999999854 103.8900000000000148 l +196.8619999999999948 110.4540000000000077 l +130.8229999999999791 158.2139999999999986 l +h +f +Q +q +1. g +0.2 0. 0. 0.2 0. 0. cm +125.8269999999999982 143.8739999999999952 m +130.8000000000000114 137.4799999999999898 l +194.8190000000000168 187.2679999999999723 l +189.8460000000000036 193.6619999999999777 l +h +f +Q +q +0.13 0.38 0.81 rg +0.2 0. 0. 0.2 0. 0. cm +344.8999999999999773 182.0999999999999943 m +335.8999999999999773 182.0999999999999943 l +335.8999999999999773 175.2999999999999829 l +335.6999999999999886 175.2999999999999829 l +334. 177.7999999999999829 331.5999999999999659 179.7999999999999829 328.5999999999999659 181.1999999999999886 c +325.5999999999999659 182.5999999999999943 322.4999999999999432 183.2999999999999829 319.2999999999999545 183.2999999999999829 c +315.5999999999999659 183.2999999999999829 312.2999999999999545 182.6999999999999886 309.3999999999999773 181.3999999999999773 c +306.3999999999999773 180.0999999999999659 303.8999999999999773 178.3999999999999773 301.7999999999999545 176.0999999999999659 c +299.6999999999999318 173.7999999999999545 298.0999999999999659 171.1999999999999602 296.9999999999999432 168.1999999999999602 c +295.8999999999999204 165.1999999999999602 295.2999999999999545 161.8999999999999488 295.2999999999999545 158.3999999999999488 c +295.2999999999999545 154.8999999999999488 295.8999999999999773 151.5999999999999375 296.9999999999999432 148.5999999999999375 c +298.0999999999999659 145.5999999999999375 299.6999999999999318 142.8999999999999488 301.7999999999999545 140.6999999999999318 c +303.8999999999999773 138.4999999999999432 306.3999999999999773 136.6999999999999318 309.3999999999999773 135.4999999999999432 c +312.3999999999999773 134.1999999999999318 315.6999999999999886 133.5999999999999375 319.2999999999999545 133.5999999999999375 c +322.6999999999999318 133.5999999999999375 325.8999999999999773 134.2999999999999261 328.8999999999999773 135.6999999999999318 c +331.8999999999999773 137.0999999999999375 334.1999999999999886 139.0999999999999375 335.7999999999999545 141.4999999999999432 c +335.9999999999999432 141.4999999999999432 l +335.9999999999999432 106.5999999999999375 l +344.9999999999999432 106.5999999999999375 l +344.9999999999999432 182.0999999999999375 l +344.8999999999999204 182.0999999999999375 l +h +320.2999999999999545 174.9000000000000057 m +322.6999999999999318 174.9000000000000057 324.8999999999999773 174.5 326.7999999999999545 173.7000000000000171 c +328.6999999999999318 172.9000000000000057 330.3999999999999773 171.7000000000000171 331.6999999999999318 170.3000000000000114 c +332.9999999999999432 168.9000000000000057 334.0999999999999091 167.1000000000000227 334.7999999999999545 165.1000000000000227 c +335.4999999999999432 163.1000000000000227 335.8999999999999773 160.9000000000000341 335.8999999999999773 158.5000000000000284 c +335.8999999999999773 156.1000000000000227 335.5 153.9000000000000341 334.7999999999999545 151.9000000000000341 c +334.0999999999999659 149.9000000000000341 332.9999999999999432 148.1000000000000227 331.6999999999999318 146.7000000000000455 c +330.3999999999999204 145.3000000000000398 328.6999999999999318 144.1000000000000512 326.7999999999999545 143.3000000000000398 c +324.8999999999999773 142.5000000000000284 322.6999999999999318 142.1000000000000512 320.2999999999999545 142.1000000000000512 c +317.8999999999999773 142.1000000000000512 315.6999999999999318 142.5000000000000568 313.7999999999999545 143.3000000000000398 c +311.8999999999999773 144.1000000000000512 310.1999999999999318 145.3000000000000398 308.8999999999999773 146.7000000000000455 c +307.5999999999999659 148.1000000000000512 306.5 149.9000000000000341 305.7999999999999545 151.9000000000000341 c +305.0999999999999659 153.9000000000000341 304.6999999999999318 156.1000000000000227 304.6999999999999318 158.5000000000000284 c +304.6999999999999318 160.9000000000000341 305.0999999999999091 163.1000000000000227 305.7999999999999545 165.1000000000000227 c +306.4999999999999432 167.1000000000000227 307.5999999999999659 168.9000000000000341 308.8999999999999773 170.3000000000000114 c +310.1999999999999886 171.7000000000000171 311.8999999999999773 172.9000000000000057 313.7999999999999545 173.7000000000000171 c +315.7999999999999545 174.5000000000000284 317.8999999999999773 174.9000000000000057 320.2999999999999545 174.9000000000000057 c +h +358.3999999999999773 106.6000000000000085 m +367.3999999999999773 106.6000000000000085 l +367.3999999999999773 141.5 l +367.5999999999999659 141.5 l +369.1999999999999886 139. 371.4999999999999432 137.0999999999999943 374.4999999999999432 135.6999999999999886 c +377.4999999999999432 134.2999999999999829 380.6999999999999318 133.5999999999999943 384.0999999999999659 133.5999999999999943 c +387.7999999999999545 133.5999999999999943 391.0999999999999659 134.1999999999999886 393.9999999999999432 135.5 c +396.9999999999999432 136.8000000000000114 399.4999999999999432 138.5 401.5999999999999659 140.6999999999999886 c +403.6999999999999886 142.8999999999999773 405.2999999999999545 145.5999999999999943 406.3999999999999773 148.5999999999999943 c +407.5 151.5999999999999943 408.0999999999999659 154.9000000000000057 408.0999999999999659 158.4000000000000057 c +408.0999999999999659 161.9000000000000057 407.4999999999999432 165.2000000000000171 406.3999999999999773 168.2000000000000171 c +405.2999999999999545 171.2000000000000171 403.6999999999999886 173.8000000000000114 401.5999999999999659 176.1000000000000227 c +399.4999999999999432 178.4000000000000341 396.9999999999999432 180.1000000000000227 393.9999999999999432 181.4000000000000341 c +390.9999999999999432 182.7000000000000455 387.6999999999999318 183.3000000000000398 384.0999999999999659 183.3000000000000398 c +380.8999999999999773 183.3000000000000398 377.7999999999999545 182.6000000000000512 374.7999999999999545 181.2000000000000455 c +371.7999999999999545 179.8000000000000398 369.3999999999999773 177.8000000000000398 367.6999999999999318 175.3000000000000398 c +367.4999999999999432 175.3000000000000398 l +367.4999999999999432 182.1000000000000512 l +358.4999999999999432 182.1000000000000512 l +358.4999999999999432 106.6000000000000512 l +358.3999999999999204 106.6000000000000512 l +h +383. 174.9000000000000057 m +385.3999999999999773 174.9000000000000057 387.6000000000000227 174.5 389.5 173.7000000000000171 c +391.3999999999999773 172.9000000000000057 393.1000000000000227 171.7000000000000171 394.3999999999999773 170.3000000000000114 c +395.6999999999999886 168.9000000000000057 396.7999999999999545 167.1000000000000227 397.5 165.1000000000000227 c +398.1999999999999886 163.1000000000000227 398.6000000000000227 160.9000000000000341 398.6000000000000227 158.5000000000000284 c +398.6000000000000227 156.1000000000000227 398.2000000000000455 153.9000000000000341 397.5 151.9000000000000341 c +396.8000000000000114 149.9000000000000341 395.6999999999999886 148.1000000000000227 394.3999999999999773 146.7000000000000455 c +393.0999999999999659 145.3000000000000398 391.3999999999999773 144.1000000000000512 389.5 143.3000000000000398 c +387.6000000000000227 142.5000000000000284 385.3999999999999773 142.1000000000000512 383. 142.1000000000000512 c +380.6000000000000227 142.1000000000000512 378.3999999999999773 142.5000000000000568 376.5 143.3000000000000398 c +374.6000000000000227 144.1000000000000512 372.8999999999999773 145.3000000000000398 371.6000000000000227 146.7000000000000455 c +370.3000000000000114 148.1000000000000512 369.2000000000000455 149.9000000000000341 368.5 151.9000000000000341 c +367.8000000000000114 153.9000000000000341 367.3999999999999773 156.1000000000000227 367.3999999999999773 158.5000000000000284 c +367.3999999999999773 160.9000000000000341 367.7999999999999545 163.1000000000000227 368.5 165.1000000000000227 c +369.1999999999999886 167.1000000000000227 370.3000000000000114 168.9000000000000341 371.6000000000000227 170.3000000000000114 c +372.9000000000000341 171.7000000000000171 374.6000000000000227 172.9000000000000057 376.5 173.7000000000000171 c +378.3999999999999773 174.5000000000000284 380.6000000000000227 174.9000000000000057 383. 174.9000000000000057 c +h +466.8999999999999773 182.0999999999999943 m +457.8999999999999773 182.0999999999999943 l +457.8999999999999773 175.2999999999999829 l +457.6999999999999886 175.2999999999999829 l +456. 177.7999999999999829 453.5999999999999659 179.7999999999999829 450.5999999999999659 181.1999999999999886 c +447.5999999999999659 182.5999999999999943 444.4999999999999432 183.2999999999999829 441.2999999999999545 183.2999999999999829 c +437.5999999999999659 183.2999999999999829 434.2999999999999545 182.6999999999999886 431.3999999999999773 181.3999999999999773 c +428.3999999999999773 180.0999999999999659 425.8999999999999773 178.3999999999999773 423.7999999999999545 176.0999999999999659 c +421.6999999999999318 173.7999999999999545 420.0999999999999659 171.1999999999999602 418.9999999999999432 168.1999999999999602 c +417.8999999999999204 165.1999999999999602 417.2999999999999545 161.8999999999999488 417.2999999999999545 158.3999999999999488 c +417.2999999999999545 154.8999999999999488 417.8999999999999773 151.5999999999999375 418.9999999999999432 148.5999999999999375 c +420.0999999999999659 145.5999999999999375 421.6999999999999318 142.8999999999999488 423.7999999999999545 140.6999999999999318 c +425.8999999999999773 138.4999999999999432 428.3999999999999773 136.6999999999999318 431.3999999999999773 135.4999999999999432 c +434.3999999999999773 134.1999999999999318 437.6999999999999886 133.5999999999999375 441.2999999999999545 133.5999999999999375 c +444.6999999999999318 133.5999999999999375 447.8999999999999773 134.2999999999999261 450.8999999999999773 135.6999999999999318 c +453.8999999999999773 137.0999999999999375 456.1999999999999886 139.0999999999999375 457.7999999999999545 141.4999999999999432 c +457.9999999999999432 141.4999999999999432 l +457.9999999999999432 106.5999999999999375 l +466.9999999999999432 106.5999999999999375 l +466.9999999999999432 182.0999999999999375 l +466.8999999999999204 182.0999999999999375 l +h +442.2999999999999545 174.9000000000000057 m +444.6999999999999318 174.9000000000000057 446.8999999999999773 174.5 448.7999999999999545 173.7000000000000171 c +450.6999999999999318 172.9000000000000057 452.3999999999999773 171.7000000000000171 453.6999999999999318 170.3000000000000114 c +454.9999999999999432 168.9000000000000057 456.0999999999999091 167.1000000000000227 456.7999999999999545 165.1000000000000227 c +457.4999999999999432 163.1000000000000227 457.8999999999999773 160.9000000000000341 457.8999999999999773 158.5000000000000284 c +457.8999999999999773 156.1000000000000227 457.5 153.9000000000000341 456.7999999999999545 151.9000000000000341 c +456.0999999999999659 149.9000000000000341 454.9999999999999432 148.1000000000000227 453.6999999999999318 146.7000000000000455 c +452.3999999999999204 145.3000000000000398 450.6999999999999318 144.1000000000000512 448.7999999999999545 143.3000000000000398 c +446.8999999999999773 142.5000000000000284 444.6999999999999318 142.1000000000000512 442.2999999999999545 142.1000000000000512 c +439.8999999999999773 142.1000000000000512 437.6999999999999318 142.5000000000000568 435.7999999999999545 143.3000000000000398 c +433.8999999999999773 144.1000000000000512 432.1999999999999318 145.3000000000000398 430.8999999999999773 146.7000000000000455 c +429.5999999999999659 148.1000000000000512 428.5 149.9000000000000341 427.7999999999999545 151.9000000000000341 c +427.0999999999999659 153.9000000000000341 426.6999999999999318 156.1000000000000227 426.6999999999999318 158.5000000000000284 c +426.6999999999999318 160.9000000000000341 427.0999999999999091 163.1000000000000227 427.7999999999999545 165.1000000000000227 c +428.4999999999999432 167.1000000000000227 429.5999999999999659 168.9000000000000341 430.8999999999999773 170.3000000000000114 c +432.1999999999999886 171.7000000000000171 433.8999999999999773 172.9000000000000057 435.7999999999999545 173.7000000000000171 c +437.6999999999999318 174.5000000000000284 439.8999999999999773 174.9000000000000057 442.2999999999999545 174.9000000000000057 c +h +478.9999999999999432 117.8000000000000114 m +478.9999999999999432 116.0000000000000142 479.5999999999999659 114.5000000000000142 480.8999999999999204 113.2000000000000171 c +482.1999999999999318 111.9000000000000199 483.6999999999999318 111.3000000000000114 485.4999999999999432 111.3000000000000114 c +487.2999999999999545 111.3000000000000114 488.7999999999999545 111.9000000000000057 490.0999999999999659 113.2000000000000171 c +491.3999999999999773 114.5000000000000142 491.9999999999999432 116.0000000000000142 491.9999999999999432 117.8000000000000114 c +491.9999999999999432 119.6000000000000085 491.3999999999999204 121.1000000000000085 490.0999999999999659 122.4000000000000057 c +488.7999999999999545 123.7000000000000028 487.2999999999999545 124.3000000000000114 485.4999999999999432 124.3000000000000114 c +483.6999999999999318 124.3000000000000114 482.1999999999999318 123.7000000000000171 480.8999999999999204 122.4000000000000057 c +479.6999999999999318 121.1000000000000085 478.9999999999999432 119.6000000000000085 478.9999999999999432 117.8000000000000114 c +h +481.0999999999999659 134.8000000000000114 m +490.0999999999999659 134.8000000000000114 l +490.0999999999999659 182.1000000000000227 l +481.0999999999999659 182.1000000000000227 l +481.0999999999999659 134.8000000000000114 l +h +504.5999999999999659 140.5 m +507.0999999999999659 138.1999999999999886 510.0999999999999659 136.4000000000000057 513.3999999999999773 135.3000000000000114 c +516.6999999999999318 134.1000000000000227 520.1000000000000227 133.6000000000000227 523.3999999999999773 133.6000000000000227 c +526.8999999999999773 133.6000000000000227 529.7999999999999545 134.0000000000000284 532.2999999999999545 134.9000000000000341 c +534.7999999999999545 135.8000000000000398 536.7999999999999545 136.9000000000000341 538.3999999999999773 138.4000000000000341 c +540. 139.9000000000000341 541.1999999999999318 141.5000000000000284 541.8999999999999773 143.4000000000000341 c +542.6999999999999318 145.3000000000000398 543. 147.3000000000000398 543. 149.3000000000000398 c +543. 173.5000000000000284 l +543. 175.2000000000000171 543. 176.7000000000000171 543.1000000000000227 178.1000000000000227 c +543.2000000000000455 179.5000000000000284 543.3000000000000682 180.8000000000000114 543.3999999999999773 182.1000000000000227 c +535.3999999999999773 182.1000000000000227 l +535.1999999999999318 179.7000000000000171 535.1000000000000227 177.3000000000000114 535.1000000000000227 174.9000000000000341 c +535. 174.9000000000000341 l +533. 178.0000000000000284 530.6000000000000227 180.1000000000000227 527.8999999999999773 181.4000000000000341 c +525.1999999999999318 182.7000000000000455 522. 183.3000000000000398 518.3999999999999773 183.3000000000000398 c +516.1999999999999318 183.3000000000000398 514.1000000000000227 183.0000000000000284 512.1000000000000227 182.4000000000000341 c +510.1000000000000227 181.8000000000000398 508.4000000000000341 180.9000000000000341 506.9000000000000341 179.7000000000000455 c +505.4000000000000341 178.5000000000000568 504.2000000000000455 177.0000000000000568 503.4000000000000341 175.3000000000000398 c +502.5000000000000568 173.5000000000000284 502.1000000000000227 171.5000000000000284 502.1000000000000227 169.2000000000000455 c +502.1000000000000227 166.1000000000000512 502.8000000000000114 163.6000000000000512 504.1000000000000227 161.5000000000000568 c +505.5 159.4000000000000625 507.3000000000000114 157.8000000000000682 509.7000000000000455 156.5000000000000568 c +512.1000000000000227 155.2000000000000455 514.8000000000000682 154.3000000000000682 518. 153.7000000000000455 c +521.2000000000000455 153.1000000000000512 524.5 152.9000000000000341 528.1000000000000227 152.9000000000000341 c +534.7000000000000455 152.9000000000000341 l +534.7000000000000455 150.9000000000000341 l +534.7000000000000455 149.7000000000000455 534.5 148.5000000000000284 534. 147.3000000000000398 c +533.5 146.1000000000000512 532.7999999999999545 145.0000000000000284 531.8999999999999773 144.1000000000000512 c +531. 143.1000000000000512 529.7999999999999545 142.4000000000000625 528.3999999999999773 141.8000000000000398 c +527. 141.2000000000000455 525.2999999999999545 141.0000000000000284 523.3999999999999773 141.0000000000000284 c +521.6999999999999318 141.0000000000000284 520.1999999999999318 141.2000000000000171 518.8999999999999773 141.5000000000000284 c +517.6000000000000227 141.8000000000000398 516.3999999999999773 142.2000000000000171 515.3999999999999773 142.7000000000000171 c +514.2999999999999545 143.2000000000000171 513.3999999999999773 143.8000000000000114 512.5 144.4000000000000057 c +511.6000000000000227 145.0999999999999943 510.8000000000000114 145.7000000000000171 510. 146.3000000000000114 c +504.6000000000000227 140.5 l +h +529.8999999999999773 159.3000000000000114 m +527.7999999999999545 159.3000000000000114 525.6000000000000227 159.4000000000000057 523.3999999999999773 159.6000000000000227 c +521.1999999999999318 159.8000000000000114 519.1000000000000227 160.3000000000000114 517.2999999999999545 160.9000000000000341 c +515.5 161.6000000000000227 514. 162.5000000000000284 512.7999999999999545 163.7000000000000455 c +511.5999999999999659 164.9000000000000341 511.0999999999999659 166.4000000000000341 511.0999999999999659 168.3000000000000398 c +511.0999999999999659 171.0000000000000284 511.9999999999999432 173.0000000000000284 513.7999999999999545 174.2000000000000455 c +515.5999999999999091 175.4000000000000341 518.0999999999999091 176.0000000000000568 521.1999999999999318 176.0000000000000568 c +523.6999999999999318 176.0000000000000568 525.7999999999999545 175.6000000000000512 527.4999999999998863 174.8000000000000682 c +529.1999999999999318 174.0000000000000568 530.5999999999999091 172.9000000000000625 531.6999999999999318 171.6000000000000796 c +532.7999999999999545 170.3000000000000682 533.4999999999998863 168.8000000000000682 533.9999999999998863 167.2000000000000739 c +534.4999999999998863 165.6000000000000796 534.6999999999999318 164.0000000000000853 534.6999999999999318 162.4000000000000625 c +534.6999999999999318 159.4000000000000625 l +529.8999999999999773 159.4000000000000625 l +529.8999999999999773 159.3000000000000682 l +h +603.6000000000000227 181.7000000000000171 m +603.6000000000000227 185.3000000000000114 603. 188.6000000000000227 601.8000000000000682 191.5000000000000284 c +600.6000000000000227 194.5000000000000284 598.8000000000000682 197.0000000000000284 596.6000000000000227 199.2000000000000171 c +594.3000000000000682 201.4000000000000057 591.6000000000000227 203.0000000000000284 588.3999999999999773 204.2000000000000171 c +585.1999999999999318 205.4000000000000057 581.6999999999999318 206.0000000000000284 577.7999999999999545 206.0000000000000284 c +573.2999999999999545 206.0000000000000284 569.0999999999999091 205.4000000000000341 565.3999999999999773 204.1000000000000227 c +561.6000000000000227 202.8000000000000114 558.1000000000000227 200.6000000000000227 554.6999999999999318 197.5000000000000284 c +560.7999999999999545 189.9000000000000341 l +563.0999999999999091 192.4000000000000341 565.6999999999999318 194.3000000000000398 568.3999999999999773 195.6000000000000227 c +571.1000000000000227 196.9000000000000341 574.1999999999999318 197.5000000000000284 577.6999999999999318 197.5000000000000284 c +580.9999999999998863 197.5000000000000284 583.7999999999999545 197.0000000000000284 585.9999999999998863 196.1000000000000227 c +588.1999999999999318 195.1000000000000227 589.8999999999998636 193.9000000000000341 591.1999999999999318 192.4000000000000341 c +592.4999999999998863 190.9000000000000341 593.3999999999999773 189.1000000000000227 593.8999999999999773 187.2000000000000455 c +594.3999999999999773 185.2000000000000455 594.6999999999999318 183.3000000000000398 594.6999999999999318 181.3000000000000398 c +594.6999999999999318 174.3000000000000398 l +594.3999999999999773 174.3000000000000398 l +592.6999999999999318 177.2000000000000455 590.2999999999999545 179.3000000000000398 587.3999999999999773 180.6000000000000512 c +584.3999999999999773 182.0000000000000568 581.2999999999999545 182.6000000000000512 578.1000000000000227 182.6000000000000512 c +574.6000000000000227 182.6000000000000512 571.3999999999999773 182.0000000000000568 568.5 180.8000000000000398 c +565.5 179.6000000000000512 563. 177.9000000000000341 560.8999999999999773 175.7000000000000455 c +558.7999999999999545 173.5000000000000568 557.1000000000000227 171.0000000000000568 555.8999999999999773 168.0000000000000568 c +554.6999999999999318 165.0000000000000568 554.1000000000000227 161.8000000000000682 554.1000000000000227 158.4000000000000625 c +554.1000000000000227 154.9000000000000625 554.7000000000000455 151.7000000000000739 555.8000000000000682 148.7000000000000739 c +556.9000000000000909 145.7000000000000739 558.5000000000001137 143.0000000000000853 560.6000000000000227 140.8000000000000682 c +562.7000000000000455 138.5000000000000568 565.2000000000000455 136.8000000000000682 568.2000000000000455 135.5000000000000568 c +571.2000000000000455 134.2000000000000455 574.5 133.6000000000000512 578.1000000000000227 133.6000000000000512 c +581.3000000000000682 133.6000000000000512 584.3999999999999773 134.3000000000000398 587.3999999999999773 135.7000000000000455 c +590.3999999999999773 137.1000000000000512 592.7999999999999545 139.1000000000000512 594.5 141.6000000000000512 c +594.7000000000000455 141.6000000000000512 l +594.7000000000000455 134.8000000000000398 l +603.7000000000000455 134.8000000000000398 l +603.6000000000000227 181.7000000000000455 l +h +579.1000000000000227 141.9000000000000341 m +576.7000000000000455 141.9000000000000341 574.5 142.3000000000000398 572.6000000000000227 143.1000000000000227 c +570.7000000000000455 143.9000000000000341 569. 145.1000000000000227 567.7000000000000455 146.5000000000000284 c +566.4000000000000909 147.9000000000000341 565.3000000000000682 149.7000000000000171 564.6000000000000227 151.7000000000000171 c +563.8999999999999773 153.7000000000000171 563.5 155.9000000000000057 563.5 158.3000000000000114 c +563.5 163.1000000000000227 564.8999999999999773 166.9000000000000057 567.7000000000000455 169.8000000000000114 c +570.5 172.7000000000000171 574.3000000000000682 174.1000000000000227 579.1000000000000227 174.1000000000000227 c +583.8999999999999773 174.1000000000000227 587.7000000000000455 172.7000000000000171 590.5 169.8000000000000114 c +593.2999999999999545 166.9000000000000057 594.7000000000000455 163.1000000000000227 594.7000000000000455 158.3000000000000114 c +594.7000000000000455 155.9000000000000057 594.3000000000000682 153.7000000000000171 593.6000000000000227 151.7000000000000171 c +592.8999999999999773 149.7000000000000171 591.8000000000000682 147.9000000000000057 590.5 146.5000000000000284 c +589.2000000000000455 145.1000000000000227 587.5 143.9000000000000341 585.6000000000000227 143.1000000000000227 c +583.6000000000000227 142.4000000000000341 581.5 141.9000000000000341 579.1000000000000227 141.9000000000000341 c +h +617.2000000000000455 134.8000000000000398 m +626.2000000000000455 134.8000000000000398 l +626.2000000000000455 142.1000000000000512 l +626.4000000000000909 142.1000000000000512 l +627.0000000000001137 140.8000000000000398 627.8000000000000682 139.7000000000000455 628.8000000000000682 138.7000000000000455 c +629.8000000000000682 137.7000000000000455 630.9000000000000909 136.8000000000000398 632.1000000000000227 136.1000000000000512 c +633.3000000000000682 135.4000000000000625 634.7000000000000455 134.8000000000000398 636.1000000000000227 134.4000000000000625 c +637.6000000000000227 134.0000000000000568 639. 133.8000000000000682 640.5 133.8000000000000682 c +642. 133.8000000000000682 643.2999999999999545 134.0000000000000568 644.5 134.4000000000000625 c +644.1000000000000227 144.1000000000000512 l +643.3999999999999773 143.9000000000000625 642.6000000000000227 143.7000000000000455 641.8999999999999773 143.6000000000000512 c +641.1999999999999318 143.5000000000000568 640.3999999999999773 143.4000000000000625 639.6999999999999318 143.4000000000000625 c +635.2999999999999545 143.4000000000000625 631.8999999999999773 144.6000000000000512 629.5999999999999091 147.1000000000000512 c +627.2999999999999545 149.6000000000000512 626.0999999999999091 153.4000000000000625 626.0999999999999091 158.6000000000000512 c +626.0999999999999091 182.4000000000000625 l +617.0999999999999091 182.4000000000000625 l +617.1999999999999318 134.8000000000000682 l +h +654.3000000000000682 140.5000000000000284 m +656.8000000000000682 138.2000000000000171 659.8000000000000682 136.4000000000000341 663.1000000000000227 135.3000000000000398 c +666.3999999999999773 134.1000000000000512 669.8000000000000682 133.6000000000000512 673.1000000000000227 133.6000000000000512 c +676.6000000000000227 133.6000000000000512 679.5 134.0000000000000568 682. 134.9000000000000625 c +684.5 135.8000000000000682 686.5 136.9000000000000625 688.1000000000000227 138.4000000000000625 c +689.7000000000000455 139.9000000000000625 690.8999999999999773 141.5000000000000568 691.6000000000000227 143.4000000000000625 c +692.3999999999999773 145.3000000000000682 692.7000000000000455 147.3000000000000682 692.7000000000000455 149.3000000000000682 c +692.7000000000000455 173.5000000000000568 l +692.7000000000000455 175.2000000000000455 692.7000000000000455 176.7000000000000455 692.8000000000000682 178.1000000000000512 c +692.9000000000000909 179.5000000000000568 693.0000000000001137 180.8000000000000398 693.1000000000000227 182.1000000000000512 c +685.1000000000000227 182.1000000000000512 l +684.8999999999999773 179.7000000000000455 684.8000000000000682 177.3000000000000398 684.8000000000000682 174.9000000000000625 c +684.6000000000000227 174.9000000000000625 l +682.6000000000000227 178.0000000000000568 680.2000000000000455 180.1000000000000512 677.5 181.4000000000000625 c +674.7999999999999545 182.7000000000000739 671.6000000000000227 183.3000000000000682 668. 183.3000000000000682 c +665.7999999999999545 183.3000000000000682 663.7000000000000455 183.0000000000000568 661.7000000000000455 182.4000000000000625 c +659.7000000000000455 181.8000000000000682 658. 180.9000000000000625 656.5 179.7000000000000739 c +655. 178.5000000000000853 653.7999999999999545 177.0000000000000853 653. 175.3000000000000682 c +652.1000000000000227 173.5000000000000568 651.7000000000000455 171.5000000000000568 651.7000000000000455 169.2000000000000739 c +651.7000000000000455 166.1000000000000796 652.4000000000000909 163.6000000000000796 653.7000000000000455 161.5000000000000853 c +655.1000000000000227 159.4000000000000909 656.9000000000000909 157.8000000000000966 659.3000000000000682 156.5000000000000853 c +661.7000000000000455 155.2000000000000739 664.4000000000000909 154.3000000000000966 667.6000000000000227 153.7000000000000739 c +670.8000000000000682 153.1000000000000796 674.1000000000000227 152.9000000000000625 677.7000000000000455 152.9000000000000625 c +684.3000000000000682 152.9000000000000625 l +684.3000000000000682 150.9000000000000625 l +684.3000000000000682 149.7000000000000739 684.1000000000000227 148.5000000000000568 683.6000000000000227 147.3000000000000682 c +683.1000000000000227 146.1000000000000796 682.3999999999999773 145.0000000000000568 681.5 144.1000000000000796 c +680.6000000000000227 143.1000000000000796 679.3999999999999773 142.4000000000000909 678. 141.8000000000000682 c +676.6000000000000227 141.2000000000000739 674.8999999999999773 141.0000000000000568 673. 141.0000000000000568 c +671.2999999999999545 141.0000000000000568 669.7999999999999545 141.2000000000000455 668.5 141.5000000000000568 c +667.2000000000000455 141.8000000000000682 666. 142.2000000000000455 665. 142.7000000000000455 c +663.8999999999999773 143.2000000000000455 663. 143.8000000000000398 662.1000000000000227 144.4000000000000341 c +661.2000000000000455 145.1000000000000227 660.3999999999999773 145.7000000000000455 659.6000000000000227 146.3000000000000398 c +654.3000000000000682 140.5000000000000284 l +h +679.7000000000000455 159.3000000000000398 m +677.6000000000000227 159.3000000000000398 675.4000000000000909 159.4000000000000341 673.2000000000000455 159.6000000000000512 c +671. 159.8000000000000398 668.9000000000000909 160.3000000000000398 667.1000000000000227 160.9000000000000625 c +665.3000000000000682 161.6000000000000512 663.8000000000000682 162.5000000000000568 662.6000000000000227 163.7000000000000739 c +661.3999999999999773 164.9000000000000625 660.8999999999999773 166.4000000000000625 660.8999999999999773 168.3000000000000682 c +660.8999999999999773 171.0000000000000568 661.7999999999999545 173.0000000000000568 663.6000000000000227 174.2000000000000739 c +665.3999999999999773 175.4000000000000625 667.8999999999999773 176.0000000000000853 671. 176.0000000000000853 c +673.5 176.0000000000000853 675.6000000000000227 175.6000000000000796 677.2999999999999545 174.8000000000000966 c +679. 174.0000000000000853 680.3999999999999773 172.9000000000000909 681.5 171.600000000000108 c +682.6000000000000227 170.3000000000000966 683.2999999999999545 168.8000000000000966 683.7999999999999545 167.2000000000001023 c +684.2999999999999545 165.600000000000108 684.5 164.0000000000001137 684.5 162.4000000000000909 c +684.5 159.4000000000000909 l +679.7000000000000455 159.4000000000000909 l +679.7000000000000455 159.3000000000000966 l +h +705.9000000000000909 134.8000000000000398 m +714.3000000000000682 134.8000000000000398 l +714.3000000000000682 142.2000000000000455 l +714.5000000000001137 142.2000000000000455 l +714.7000000000001592 141.5000000000000568 715.2000000000001592 140.7000000000000455 716.0000000000001137 139.7000000000000455 c +716.8000000000000682 138.7000000000000455 717.9000000000000909 137.8000000000000398 719.2000000000001592 136.9000000000000341 c +720.5000000000001137 136.0000000000000284 722.0000000000001137 135.2000000000000455 723.8000000000001819 134.6000000000000227 c +725.6000000000001364 134.0000000000000284 727.5000000000002274 133.7000000000000171 729.6000000000001364 133.7000000000000171 c +733.1000000000001364 133.7000000000000171 736.1000000000001364 134.4000000000000057 738.5000000000001137 135.9000000000000057 c +740.9000000000000909 137.4000000000000057 742.9000000000000909 139.5999999999999943 744.4000000000000909 142.5 c +745.9000000000000909 139.5999999999999943 748.1000000000001364 137.4000000000000057 750.9000000000000909 135.9000000000000057 c +753.7000000000000455 134.4000000000000057 756.5000000000001137 133.7000000000000171 759.4000000000000909 133.7000000000000171 c +763.1000000000001364 133.7000000000000171 766.1000000000001364 134.3000000000000114 768.4000000000000909 135.5000000000000284 c +770.7000000000000455 136.7000000000000171 772.6000000000001364 138.3000000000000398 773.9000000000000909 140.2000000000000171 c +775.2000000000000455 142.2000000000000171 776.1000000000001364 144.4000000000000057 776.6000000000001364 146.9000000000000057 c +777.1000000000001364 149.4000000000000057 777.3000000000001819 152. 777.3000000000001819 154.5999999999999943 c +777.3000000000001819 182.1999999999999886 l +768.3000000000001819 182.1999999999999886 l +768.3000000000001819 155.7999999999999829 l +768.3000000000001819 153.9999999999999716 768.2000000000001592 152.2999999999999829 768.0000000000002274 150.5999999999999943 c +767.8000000000001819 148.9000000000000057 767.3000000000001819 147.5 766.6000000000002501 146.1999999999999886 c +765.9000000000002046 144.8999999999999773 764.8000000000002956 143.8999999999999773 763.5000000000002274 143.1999999999999886 c +762.2000000000002728 142.3999999999999773 760.4000000000002046 142.0999999999999943 758.2000000000002728 142.0999999999999943 c +753.9000000000003183 142.0999999999999943 750.8000000000002956 143.4000000000000057 748.9000000000003183 146.0999999999999943 c +747.0000000000003411 148.7999999999999829 746.1000000000003638 152.1999999999999886 746.1000000000003638 156.4000000000000057 c +746.1000000000003638 182.3000000000000114 l +737.1000000000003638 182.3000000000000114 l +737.1000000000003638 157.5 l +737.1000000000003638 155.1999999999999886 737.0000000000003411 153.1999999999999886 736.8000000000004093 151.3000000000000114 c +736.6000000000003638 149.4000000000000057 736.1000000000003638 147.8000000000000114 735.400000000000432 146.5 c +734.7000000000003865 145.0999999999999943 733.7000000000003865 144.0999999999999943 732.400000000000432 143.3000000000000114 c +731.1000000000004775 142.5 729.400000000000432 142.2000000000000171 727.2000000000003865 142.2000000000000171 c +725.6000000000003638 142.2000000000000171 724.1000000000003638 142.5000000000000284 722.6000000000003638 143.1000000000000227 c +721.1000000000003638 143.7000000000000171 719.8000000000004093 144.7000000000000171 718.7000000000003865 145.9000000000000341 c +717.6000000000003638 147.2000000000000455 716.7000000000003865 148.8000000000000398 716.0000000000003411 150.7000000000000455 c +715.3000000000002956 152.7000000000000455 715.0000000000003411 155.0000000000000568 715.0000000000003411 157.6000000000000512 c +715.0000000000003411 182.2000000000000455 l +706.0000000000003411 182.2000000000000455 l +706.0000000000003411 134.8000000000000398 l +705.9000000000003183 134.8000000000000398 l +h +f +Q +q +0.26 0.55 1. rg +0.2 0. 0. 0.2 0. 0. cm +798.1000000000000227 182.6999999999999886 m +796.3000000000000682 182.6999999999999886 794.8000000000000682 182.0999999999999943 793.5 180.7999999999999829 c +792.2000000000000455 179.4999999999999716 791.6000000000000227 177.9999999999999716 791.6000000000000227 176.1999999999999886 c +791.6000000000000227 174.3999999999999773 792.2000000000000455 172.8999999999999773 793.5 171.5999999999999943 c +794.7999999999999545 170.2999999999999829 796.2999999999999545 169.6999999999999886 798.1000000000000227 169.6999999999999886 c +799.8999999999999773 169.6999999999999886 801.3999999999999773 170.2999999999999829 802.7000000000000455 171.5999999999999943 c +804. 172.9000000000000057 804.6000000000000227 174.4000000000000057 804.6000000000000227 176.1999999999999886 c +804.6000000000000227 178. 804. 179.5 802.7000000000000455 180.7999999999999829 c +801.4000000000000909 181.9999999999999716 799.9000000000000909 182.6999999999999886 798.1000000000000227 182.6999999999999886 c +h +817.3000000000000682 117.7999999999999829 m +817.3000000000000682 115.9999999999999858 817.9000000000000909 114.4999999999999858 819.2000000000000455 113.1999999999999886 c +820.5 111.8999999999999915 822. 111.2999999999999829 823.8000000000000682 111.2999999999999829 c +825.6000000000000227 111.2999999999999829 827.1000000000000227 111.8999999999999773 828.4000000000000909 113.1999999999999886 c +829.7000000000000455 114.4999999999999858 830.3000000000000682 115.9999999999999858 830.3000000000000682 117.7999999999999829 c +830.3000000000000682 119.5999999999999801 829.7000000000000455 121.0999999999999801 828.4000000000000909 122.3999999999999773 c +827.1000000000001364 123.6999999999999744 825.6000000000001364 124.2999999999999829 823.8000000000000682 124.2999999999999829 c +822.0000000000001137 124.2999999999999829 820.5000000000001137 123.6999999999999886 819.2000000000000455 122.3999999999999773 c +818. 121.0999999999999801 817.3000000000000682 119.5999999999999801 817.3000000000000682 117.7999999999999829 c +h +819.4000000000000909 134.7999999999999829 m +828.4000000000000909 134.7999999999999829 l +828.4000000000000909 182.0999999999999659 l +819.4000000000000909 182.0999999999999659 l +819.4000000000000909 134.7999999999999545 l +h +840.4000000000000909 158.3999999999999773 m +840.4000000000000909 154.8999999999999773 841.0000000000001137 151.6999999999999886 842.3000000000000682 148.6999999999999886 c +843.6000000000000227 145.6999999999999886 845.4000000000000909 143.0999999999999943 847.6000000000000227 140.7999999999999829 c +849.8999999999999773 138.4999999999999716 852.5 136.7999999999999829 855.6000000000000227 135.4999999999999716 c +858.7000000000000455 134.1999999999999602 862. 133.5999999999999659 865.5 133.5999999999999659 c +869. 133.5999999999999659 872.2999999999999545 134.1999999999999602 875.3999999999999773 135.4999999999999716 c +878.5 136.7999999999999829 881.1000000000000227 138.5999999999999659 883.3999999999999773 140.7999999999999829 c +885.6999999999999318 143.0999999999999943 887.3999999999999773 145.6999999999999886 888.6999999999999318 148.6999999999999886 c +889.9999999999998863 151.6999999999999886 890.5999999999999091 154.8999999999999773 890.5999999999999091 158.3999999999999773 c +890.5999999999999091 161.8999999999999773 889.9999999999998863 165.0999999999999659 888.6999999999999318 168.0999999999999659 c +887.3999999999999773 171.0999999999999659 885.5999999999999091 173.7999999999999545 883.3999999999999773 175.9999999999999716 c +881.1000000000000227 178.1999999999999602 878.5 179.9999999999999716 875.3999999999999773 181.2999999999999829 c +872.2999999999999545 182.5999999999999943 869. 183.1999999999999886 865.5 183.1999999999999886 c +862. 183.1999999999999886 858.7000000000000455 182.5999999999999943 855.6000000000000227 181.2999999999999829 c +852.5 179.9999999999999716 849.8999999999999773 178.1999999999999886 847.6000000000000227 175.9999999999999716 c +845.3000000000000682 173.7999999999999829 843.6000000000000227 171.0999999999999659 842.3000000000000682 168.0999999999999659 c +841.1000000000000227 165.0999999999999659 840.4000000000000909 161.8999999999999773 840.4000000000000909 158.3999999999999773 c +h +850.0000000000001137 158.3999999999999773 m +850.0000000000001137 160.7999999999999829 850.4000000000000909 162.9999999999999716 851.1000000000001364 164.9999999999999716 c +851.8000000000001819 166.9999999999999716 852.9000000000000909 168.7999999999999829 854.2000000000001592 170.1999999999999602 c +855.5000000000001137 171.5999999999999659 857.2000000000001592 172.7999999999999545 859.1000000000001364 173.5999999999999659 c +861.0000000000001137 174.3999999999999773 863.2000000000001592 174.7999999999999545 865.6000000000001364 174.7999999999999545 c +868.0000000000001137 174.7999999999999545 870.2000000000001592 174.3999999999999488 872.1000000000001364 173.5999999999999659 c +874.0000000000001137 172.7999999999999545 875.7000000000001592 171.5999999999999659 877.0000000000001137 170.1999999999999602 c +878.3000000000000682 168.7999999999999545 879.4000000000000909 166.9999999999999716 880.1000000000001364 164.9999999999999716 c +880.8000000000001819 162.9999999999999716 881.2000000000001592 160.7999999999999829 881.2000000000001592 158.3999999999999773 c +881.2000000000001592 155.9999999999999716 880.8000000000001819 153.7999999999999829 880.1000000000001364 151.7999999999999829 c +879.4000000000000909 149.7999999999999829 878.3000000000001819 147.9999999999999716 877.0000000000001137 146.5999999999999943 c +875.7000000000001592 145.1999999999999886 874.0000000000001137 144. 872.1000000000001364 143.1999999999999886 c +870.2000000000001592 142.3999999999999773 868.0000000000001137 142. 865.6000000000001364 142. c +863.2000000000001592 142. 861.0000000000001137 142.4000000000000057 859.1000000000001364 143.1999999999999886 c +857.2000000000001592 144. 855.5000000000001137 145.1999999999999886 854.2000000000001592 146.5999999999999943 c +852.9000000000002046 148. 851.8000000000001819 149.7999999999999829 851.1000000000001364 151.7999999999999829 c +850.4000000000000909 153.7999999999999829 850.0000000000001137 155.9999999999999716 850.0000000000001137 158.3999999999999773 c +h +f +Q +Q +Q +Q +Q +q +1. 0. 0. -1. 0. 1080. cm +q +1. 0. 0. 1. 192.8316777393960137 50. cm +1. w +0. g +q +1. 0. 0. 1. 0. 0. cm +0. 0. 1534.3366445212079725 980. re +W +n +q +q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.7021471261894021 142. 211.3657344736432435 445. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.7021471261894021 142. cm +106.9912923259820587 50. m +102.9912923259820587 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 408. l +22. 414.6666666666666856 25.3333333333333357 418. 32. 418. c +168.3657344736432435 418. l +178.3657344736432435 418. l +178.3657344736432435 418. l +168.3657344736432435 418. l +32. 418. l +25.3333333333333357 418. 22. 414.6666666666666856 22. 408. c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +102.9912923259820587 50. l +106.9912923259820587 50. l +h +112.9912923259820587 50. m +122.9912923259820587 50. l +178.3657344736432435 418. m +188.3657344736432435 418. l +109.9912923259820587 50. m +112.9912923259820587 50. m +112.9336481671917483 50.5852709660483839 l +112.7629309235159241 51.1480502970952671 l +112.485701162889697 51.6667106990588039 l +112.1126126695417042 52.1213203435596455 l +111.6580030250408697 52.4944088369076383 l +111.1393426230773258 52.7716385975338582 l +110.5765632920304427 52.9423558412096895 l +109.9912923259820587 53. l +109.4060213599336748 52.9423558412096895 l +108.8432420288867917 52.7716385975338582 l +108.3245816269232478 52.4944088369076383 l +107.8699719824224132 52.1213203435596455 l +107.4968834890744205 51.6667106990588039 l +107.2196537284481934 51.1480502970952671 l +107.0489364847723692 50.5852709660483839 l +106.9912923259820587 50. l +107.0489364847723692 49.4147290339516161 l +107.2196537284481934 48.8519497029047329 l +107.4968834890744205 48.3332893009411961 l +107.8699719824224132 47.8786796564403545 l +108.3245816269232478 47.5055911630923617 l +108.8432420288867917 47.2283614024661418 l +109.4060213599336748 47.0576441587903105 l +109.9912923259820587 47. l +110.5765632920304427 47.0576441587903105 l +111.1393426230773258 47.2283614024661418 l +111.6580030250408697 47.5055911630923617 l +112.1126126695417042 47.8786796564403545 l +112.485701162889697 48.3332893009411961 l +112.7629309235159241 48.8519497029047258 l +112.9336481671917483 49.4147290339516161 l +112.9912923259820587 50. l +178.3657344736432435 414. m +178.3657344736432435 422. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 513.0629987873326172 555. Tm +<0014> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.702147126189459 142. 145.9912923259819877 589. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.702147126189459 142. cm +106.9912923259820019 50. m +102.9912923259820019 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 552. l +22. 558.6666666666666288 25.3333333333333357 562. 32. 562. c +78.689222761946553 562. l +88.689222761946553 562. l +88.689222761946553 562. l +78.689222761946553 562. l +32. 562. l +25.3333333333333357 562. 22. 558.6666666666666288 22. 552. c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +102.9912923259820019 50. l +106.9912923259820019 50. l +h +112.9912923259820019 50. m +122.9912923259820019 50. l +88.689222761946553 562. m +98.689222761946553 562. l +109.9912923259820019 50. m +112.9912923259820019 50. m +112.9336481671916914 50.5852709660483839 l +112.7629309235158672 51.1480502970952671 l +112.4857011628896402 51.6667106990588039 l +112.1126126695416474 52.1213203435596455 l +111.6580030250408129 52.4944088369076383 l +111.139342623077269 52.7716385975338582 l +110.5765632920303858 52.9423558412096895 l +109.9912923259820019 53. l +109.406021359933618 52.9423558412096895 l +108.8432420288867348 52.7716385975338582 l +108.3245816269231909 52.4944088369076383 l +107.8699719824223564 52.1213203435596455 l +107.4968834890743636 51.6667106990588039 l +107.2196537284481366 51.1480502970952671 l +107.0489364847723124 50.5852709660483839 l +106.9912923259820019 50. l +107.0489364847723124 49.4147290339516161 l +107.2196537284481366 48.8519497029047329 l +107.4968834890743636 48.3332893009411961 l +107.8699719824223564 47.8786796564403545 l +108.3245816269231909 47.5055911630923617 l +108.8432420288867348 47.2283614024661418 l +109.406021359933618 47.0576441587903105 l +109.9912923259820019 47. l +110.5765632920303858 47.0576441587903105 l +111.139342623077269 47.2283614024661418 l +111.6580030250408129 47.5055911630923617 l +112.1126126695416474 47.8786796564403545 l +112.4857011628896402 48.3332893009411961 l +112.7629309235158672 48.8519497029047258 l +112.9336481671916914 49.4147290339516161 l +112.9912923259820019 50. l +88.689222761946553 558. m +88.689222761946553 566. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 423.3864870756360119 699. Tm +<0014> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.702147126189459 142. 1460.7500901791408978 1002.1275585178767642 re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.702147126189459 142. cm +106.9912923259820019 50. m +102.9912923259820019 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 965.1275585178767642 l +22. 971.794225184543393 25.3333333333333357 975.1275585178767642 32. 975.1275585178767642 c +1427.7500901791408978 975.1275585178767642 l +1434.4167568458076403 975.1275585178767642 1437.7500901791408978 971.794225184543393 1437.7500901791408978 965.1275585178767642 c +1437.7500901791408978 436. l +1437.7500901791408978 429.3333333333333144 1434.4167568458076403 426. 1427.7500901791408978 426. c +1359.4144186041867215 426. l +1349.4144186041867215 426. l +1349.4144186041867215 426. l +1359.4144186041867215 426. l +1427.7500901791408978 426. l +1434.4167568458076403 426. 1437.7500901791408978 429.3333333333333144 1437.7500901791408978 436. c +1437.7500901791408978 965.1275585178767642 l +1437.7500901791408978 971.794225184543393 1434.4167568458076403 975.1275585178767642 1427.7500901791408978 975.1275585178767642 c +32. 975.1275585178767642 l +25.3333333333333357 975.1275585178767642 22. 971.794225184543393 22. 965.1275585178767642 c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +102.9912923259820019 50. l +106.9912923259820019 50. l +h +112.9912923259820019 50. m +122.9912923259820019 50. l +1349.4144186041867215 426. m +1339.4144186041867215 426. l +109.9912923259820019 50. m +112.9912923259820019 50. m +112.9336481671916914 50.5852709660483839 l +112.7629309235158672 51.1480502970952671 l +112.4857011628896402 51.6667106990588039 l +112.1126126695416474 52.1213203435596455 l +111.6580030250408129 52.4944088369076383 l +111.139342623077269 52.7716385975338582 l +110.5765632920303858 52.9423558412096895 l +109.9912923259820019 53. l +109.406021359933618 52.9423558412096895 l +108.8432420288867348 52.7716385975338582 l +108.3245816269231909 52.4944088369076383 l +107.8699719824223564 52.1213203435596455 l +107.4968834890743636 51.6667106990588039 l +107.2196537284481366 51.1480502970952671 l +107.0489364847723124 50.5852709660483839 l +106.9912923259820019 50. l +107.0489364847723124 49.4147290339516161 l +107.2196537284481366 48.8519497029047329 l +107.4968834890743636 48.3332893009411961 l +107.8699719824223564 47.8786796564403545 l +108.3245816269231909 47.5055911630923617 l +108.8432420288867348 47.2283614024661418 l +109.406021359933618 47.0576441587903105 l +109.9912923259820019 47. l +110.5765632920303858 47.0576441587903105 l +111.139342623077269 47.2283614024661418 l +111.6580030250408129 47.5055911630923617 l +112.1126126695416474 47.8786796564403545 l +112.4857011628896402 48.3332893009411961 l +112.7629309235158672 48.8519497029047258 l +112.9336481671916914 49.4147290339516161 l +112.9912923259820019 50. l +1339.4144186041867215 422. m +1348.4144186041867215 426. l +1339.4144186041867215 430. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1678.1165657303761236 563. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.7021471261896295 142. 1137.4567517083128223 1002.1275585178767642 re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.7021471261896295 142. cm +106.9912923259818314 50. m +102.9912923259818314 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 965.1275585178767642 l +22. 971.794225184543393 25.3333333333333357 975.1275585178767642 32. 975.1275585178767642 c +1037.4480179582826622 975.1275585178767642 l +1044.1146846249494047 975.1275585178767642 1047.4480179582826622 971.794225184543393 1047.4480179582826622 965.1275585178767642 c +1047.4480179582826622 892. l +1047.4480179582826622 885.3333333333333712 1050.7813512916159198 882. 1057.4480179582826622 882. c +1094.4567517083128223 882. l +1104.4567517083128223 882. l +1104.4567517083128223 882. l +1094.4567517083128223 882. l +1057.4480179582826622 882. l +1050.7813512916159198 882. 1047.4480179582826622 885.3333333333333712 1047.4480179582826622 892. c +1047.4480179582826622 965.1275585178767642 l +1047.4480179582826622 971.794225184543393 1044.1146846249494047 975.1275585178767642 1037.4480179582826622 975.1275585178767642 c +32. 975.1275585178767642 l +25.3333333333333357 975.1275585178767642 22. 971.794225184543393 22. 965.1275585178767642 c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +102.9912923259818314 50. l +106.9912923259818314 50. l +h +112.9912923259818314 50. m +122.9912923259818314 50. l +1104.4567517083128223 882. m +1114.4567517083128223 882. l +109.9912923259818314 50. m +112.9912923259818314 50. m +112.9336481671915209 50.5852709660483839 l +112.7629309235156967 51.1480502970952671 l +112.4857011628894696 51.6667106990588039 l +112.1126126695414769 52.1213203435596455 l +111.6580030250406423 52.4944088369076383 l +111.1393426230770984 52.7716385975338582 l +110.5765632920302153 52.9423558412096895 l +109.9912923259818314 53. l +109.4060213599334475 52.9423558412096895 l +108.8432420288865643 52.7716385975338582 l +108.3245816269230204 52.4944088369076383 l +107.8699719824221859 52.1213203435596455 l +107.4968834890741931 51.6667106990588039 l +107.219653728447966 51.1480502970952671 l +107.0489364847721419 50.5852709660483839 l +106.9912923259818314 50. l +107.0489364847721419 49.4147290339516161 l +107.219653728447966 48.8519497029047329 l +107.4968834890741931 48.3332893009411961 l +107.8699719824221859 47.8786796564403545 l +108.3245816269230204 47.5055911630923617 l +108.8432420288865643 47.2283614024661418 l +109.4060213599334475 47.0576441587903105 l +109.9912923259818314 47. l +110.5765632920302153 47.0576441587903105 l +111.1393426230770984 47.2283614024661418 l +111.6580030250406423 47.5055911630923617 l +112.1126126695414769 47.8786796564403545 l +112.4857011628894696 48.3332893009411961 l +112.7629309235156967 48.8519497029047258 l +112.9336481671915209 49.4147290339516161 l +112.9912923259818314 50. l +1114.4567517083128223 878. m +1105.4567517083128223 882. l +1114.4567517083128223 886. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1439.4479613345024518 1019. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.6618689000528661 30. 211.4060126997797511 189. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.6618689000528661 30. cm +107.0315705521185947 162. m +103.0315705521185947 162. l +32. 162. l +25.3333333333333357 162. 22. 158.6666666666666572 22. 152. c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +168.4060126997797511 50. l +178.4060126997797511 50. l +178.4060126997797511 50. l +168.4060126997797511 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 152. l +22. 158.6666666666666572 25.3333333333333357 162. 32. 162. c +103.0315705521185947 162. l +107.0315705521185947 162. l +h +113.0315705521185947 162. m +123.0315705521185947 162. l +178.4060126997797511 50. m +188.4060126997797511 50. l +110.0315705521185947 162. m +113.0315705521185947 162. m +112.9739263933282842 162.5852709660483981 l +112.80320914965246 163.1480502970952671 l +112.525979389026233 163.6667106990587968 l +112.1528908956782402 164.1213203435596313 l +111.6982812511774057 164.4944088369076383 l +111.1796208492138618 164.7716385975338653 l +110.6168415181669786 164.9423558412096895 l +110.0315705521185947 165. l +109.4462995860702108 164.9423558412096895 l +108.8835202550233276 164.7716385975338653 l +108.3648598530597837 164.4944088369076383 l +107.9102502085589492 164.1213203435596313 l +107.5371617152109565 163.6667106990587968 l +107.2599319545847294 163.1480502970952671 l +107.0892147109089052 162.5852709660483981 l +107.0315705521185947 162. l +107.0892147109089052 161.4147290339516019 l +107.2599319545847294 160.8519497029047329 l +107.5371617152109565 160.3332893009412032 l +107.9102502085589492 159.8786796564403687 l +108.3648598530597837 159.5055911630923617 l +108.8835202550233276 159.2283614024661347 l +109.4462995860702108 159.0576441587903105 l +110.0315705521185947 159. l +110.6168415181669786 159.0576441587903105 l +111.1796208492138618 159.2283614024661347 l +111.6982812511774057 159.5055911630923617 l +112.1528908956782402 159.8786796564403687 l +112.525979389026233 160.3332893009412032 l +112.80320914965246 160.8519497029047329 l +112.9739263933282842 161.4147290339516019 l +113.0315705521185947 162. l +188.4060126997797511 46. m +179.4060126997797511 50. l +188.4060126997797511 54. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 513.3569440998326172 75. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.4958023744403022 142. 1070.240862710032161 1002.222944050892238 re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.4958023744403022 142. cm +107.1976370777311587 50. m +103.1976370777311587 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 965.222944050892238 l +22. 971.8896107175588668 25.3333333333333357 975.222944050892238 32. 975.222944050892238 c +1037.240862710032161 975.222944050892238 l +1043.9075293766989034 975.222944050892238 1047.240862710032161 971.8896107175588668 1047.240862710032161 965.222944050892238 c +1047.240862710032161 726.5244837892142868 l +1047.240862710032161 719.8784679110113984 1043.9178547709307168 716.5554599719099542 1037.2718388927278284 716.5554599719099542 c +1027.3028150754234957 716.5554599719099542 l +1017.302815075423382 716.5554599719099542 l +1017.302815075423382 716.5554599719099542 l +1027.3028150754234957 716.5554599719099542 l +1037.2718388927278284 716.5554599719099542 l +1043.9178547709307168 716.5554599719099542 1047.240862710032161 719.8784679110113984 1047.240862710032161 726.5244837892142868 c +1047.240862710032161 965.222944050892238 l +1047.240862710032161 971.8896107175588668 1043.9075293766989034 975.222944050892238 1037.240862710032161 975.222944050892238 c +32. 975.222944050892238 l +25.3333333333333357 975.222944050892238 22. 971.8896107175588668 22. 965.222944050892238 c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +103.1976370777311587 50. l +107.1976370777311587 50. l +h +113.1976370777311587 50. m +123.1976370777311587 50. l +1017.302815075423382 716.5554599719099542 m +1007.302815075423382 716.5554599719099542 l +110.1976370777311587 50. m +113.1976370777311587 50. m +113.1399929189408482 50.5852709660483839 l +112.969275675265024 51.1480502970952671 l +112.6920459146387969 51.6667106990588039 l +112.3189574212908042 52.1213203435596455 l +111.8643477767899697 52.4944088369076383 l +111.3456873748264258 52.7716385975338582 l +110.7829080437795426 52.9423558412096895 l +110.1976370777311587 53. l +109.6123661116827748 52.9423558412096895 l +109.0495867806358916 52.7716385975338582 l +108.5309263786723477 52.4944088369076383 l +108.0763167341715132 52.1213203435596455 l +107.7032282408235204 51.6667106990588039 l +107.4259984801972934 51.1480502970952671 l +107.2552812365214692 50.5852709660483839 l +107.1976370777311587 50. l +107.2552812365214692 49.4147290339516161 l +107.4259984801972934 48.8519497029047329 l +107.7032282408235204 48.3332893009411961 l +108.0763167341715132 47.8786796564403545 l +108.5309263786723477 47.5055911630923617 l +109.0495867806358916 47.2283614024661418 l +109.6123661116827748 47.0576441587903105 l +110.1976370777311587 47. l +110.7829080437795426 47.0576441587903105 l +111.3456873748264258 47.2283614024661418 l +111.8643477767899697 47.5055911630923617 l +112.3189574212908042 47.8786796564403545 l +112.6920459146387969 48.3332893009411961 l +112.969275675265024 48.8519497029047258 l +113.1399929189408482 49.4147290339516161 l +113.1976370777311587 50. l +1007.302815075423382 712.5554599719099542 m +1016.302815075423382 716.5554599719099542 l +1007.302815075423382 720.5554599719099542 l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1345.7986174498637411 853.5554599719099542 Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +335.7021471261896863 142. 1460.7500901791408978 1002.1275585178768779 re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 335.7021471261896863 142. cm +106.9912923259817745 50. m +102.9912923259817745 50. l +32. 50. l +25.3333333333333357 50. 22. 53.3333333333333357 22. 60. c +22. 965.1275585178768779 l +22. 971.7942251845435067 25.3333333333333357 975.1275585178768779 32. 975.1275585178768779 c +1427.7500901791408978 975.1275585178768779 l +1434.4167568458076403 975.1275585178768779 1437.7500901791408978 971.7942251845435067 1437.7500901791408978 965.1275585178768779 c +1437.7500901791408978 268. l +1437.7500901791408978 261.3333333333333144 1434.4167568458076403 258. 1427.7500901791408978 258. c +1355.0964703236741116 258. l +1345.0964703236741116 258. l +1345.0964703236741116 258. l +1355.0964703236741116 258. l +1427.7500901791408978 258. l +1434.4167568458076403 258. 1437.7500901791408978 261.3333333333333144 1437.7500901791408978 268. c +1437.7500901791408978 965.1275585178768779 l +1437.7500901791408978 971.7942251845435067 1434.4167568458076403 975.1275585178768779 1427.7500901791408978 975.1275585178768779 c +32. 975.1275585178768779 l +25.3333333333333357 975.1275585178768779 22. 971.7942251845435067 22. 965.1275585178768779 c +22. 60. l +22. 53.3333333333333357 25.3333333333333357 50. 32. 50. c +102.9912923259817745 50. l +106.9912923259817745 50. l +h +112.9912923259817745 50. m +122.9912923259817745 50. l +1345.0964703236741116 258. m +1335.0964703236741116 258. l +109.9912923259817745 50. m +112.9912923259817745 50. m +112.933648167191464 50.5852709660483839 l +112.7629309235156398 51.1480502970952671 l +112.4857011628894128 51.6667106990588039 l +112.11261266954142 52.1213203435596455 l +111.6580030250405855 52.4944088369076383 l +111.1393426230770416 52.7716385975338582 l +110.5765632920301584 52.9423558412096895 l +109.9912923259817745 53. l +109.4060213599333906 52.9423558412096895 l +108.8432420288865075 52.7716385975338582 l +108.3245816269229636 52.4944088369076383 l +107.869971982422129 52.1213203435596455 l +107.4968834890741363 51.6667106990588039 l +107.2196537284479092 51.1480502970952671 l +107.048936484772085 50.5852709660483839 l +106.9912923259817745 50. l +107.048936484772085 49.4147290339516161 l +107.2196537284479092 48.8519497029047329 l +107.4968834890741363 48.3332893009411961 l +107.869971982422129 47.8786796564403545 l +108.3245816269229636 47.5055911630923617 l +108.8432420288865075 47.2283614024661418 l +109.4060213599333906 47.0576441587903105 l +109.9912923259817745 47. l +110.5765632920301584 47.0576441587903105 l +111.1393426230770416 47.2283614024661418 l +111.6580030250405855 47.5055911630923617 l +112.11261266954142 47.8786796564403545 l +112.4857011628894128 48.3332893009411961 l +112.7629309235156398 48.8519497029047258 l +112.933648167191464 49.4147290339516161 l +112.9912923259817745 50. l +1335.0964703236741116 254. m +1344.0964703236741116 258. l +1335.0964703236741116 262. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1673.7986174498637411 395. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +266.7639494811136842 142. 214.9294899710577624 221. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 266.7639494811136842 142. cm +175.9294899710577624 50. m +171.9294899710577624 50. l +100.9381976450758316 50. l +94.2715309784091602 50. 90.9381976450758316 53.3333333333333357 90.9381976450758316 60. c +90.9381976450758316 184. l +90.9381976450758316 190.6666666666666572 87.604864311742503 194. 80.9381976450758316 194. c +42. 194. l +32. 194. l +32. 194. l +42. 194. l +80.9381976450758316 194. l +87.604864311742503 194. 90.9381976450758316 190.6666666666666572 90.9381976450758316 184. c +90.9381976450758316 60. l +90.9381976450758316 53.3333333333333357 94.2715309784091602 50. 100.9381976450758316 50. c +171.9294899710577624 50. l +175.9294899710577624 50. l +h +181.9294899710577624 50. m +191.9294899710577624 50. l +32. 194. m +22. 194. l +178.9294899710577624 50. m +181.9294899710577624 50. m +181.8718458122674519 50.5852709660483839 l +181.7011285685916278 51.1480502970952671 l +181.4238988079654007 51.6667106990588039 l +181.0508103146173937 52.1213203435596455 l +180.5962006701165592 52.4944088369076383 l +180.0775402681530295 52.7716385975338582 l +179.5147609371061606 52.9423558412096895 l +178.9294899710577624 53. l +178.3442190050093643 52.9423558412096895 l +177.7814396739624954 52.7716385975338582 l +177.2627792719989657 52.4944088369076383 l +176.8081696274981311 52.1213203435596455 l +176.4350811341501242 51.6667106990588039 l +176.1578513735238971 51.1480502970952671 l +175.9871341298480729 50.5852709660483839 l +175.9294899710577624 50. l +175.9871341298480729 49.4147290339516161 l +176.1578513735238971 48.8519497029047329 l +176.4350811341501242 48.3332893009411961 l +176.8081696274981311 47.8786796564403545 l +177.2627792719989657 47.5055911630923617 l +177.7814396739624954 47.2283614024661418 l +178.3442190050093643 47.0576441587903105 l +178.9294899710577624 47. l +179.5147609371061606 47.0576441587903105 l +180.0775402681530295 47.2283614024661418 l +180.5962006701165592 47.5055911630923617 l +181.0508103146173937 47.8786796564403545 l +181.4238988079654007 48.3332893009411961 l +181.7011285685916278 48.8519497029047258 l +181.8718458122674519 49.4147290339516161 l +181.9294899710577624 50. l +22. 190. m +31. 194. l +22. 198. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 291.7639494811136842 331. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +267.1143544405584862 142. 214.5790850116129604 789. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 267.1143544405584862 142. cm +175.5790850116129604 50. m +171.5790850116129604 50. l +100.5877926856308591 50. l +93.9211260189641877 50. 90.5877926856308591 53.3333333333333357 90.5877926856308591 60. c +90.5877926856308591 752. l +90.5877926856308591 758.6666666666666288 87.2544593522975305 762. 80.5877926856308591 762. c +42. 762. l +32. 762. l +32. 762. l +42. 762. l +80.5877926856308591 762. l +87.2544593522975305 762. 90.5877926856308591 758.6666666666666288 90.5877926856308591 752. c +90.5877926856308591 60. l +90.5877926856308591 53.3333333333333357 93.9211260189641877 50. 100.5877926856308591 50. c +171.5790850116129604 50. l +175.5790850116129604 50. l +h +181.5790850116129604 50. m +191.5790850116129604 50. l +32. 762. m +22. 762. l +178.5790850116129604 50. m +181.5790850116129604 50. m +181.52144085282265 50.5852709660483839 l +181.3507236091468258 51.1480502970952671 l +181.0734938485205987 51.6667106990588039 l +180.7004053551725917 52.1213203435596455 l +180.2457957106717572 52.4944088369076383 l +179.7271353087082275 52.7716385975338582 l +179.1643559776613586 52.9423558412096895 l +178.5790850116129604 53. l +177.9938140455645623 52.9423558412096895 l +177.4310347145176934 52.7716385975338582 l +176.9123743125541637 52.4944088369076383 l +176.4577646680533292 52.1213203435596455 l +176.0846761747053222 51.6667106990588039 l +175.8074464140790951 51.1480502970952671 l +175.6367291704032709 50.5852709660483839 l +175.5790850116129604 50. l +175.6367291704032709 49.4147290339516161 l +175.8074464140790951 48.8519497029047329 l +176.0846761747053222 48.3332893009411961 l +176.4577646680533292 47.8786796564403545 l +176.9123743125541637 47.5055911630923617 l +177.4310347145176934 47.2283614024661418 l +177.9938140455645623 47.0576441587903105 l +178.5790850116129604 47. l +179.1643559776613586 47.0576441587903105 l +179.7271353087082275 47.2283614024661418 l +180.2457957106717572 47.5055911630923617 l +180.7004053551725917 47.8786796564403545 l +181.0734938485205987 48.3332893009411961 l +181.3507236091468258 48.8519497029047258 l +181.52144085282265 49.4147290339516161 l +181.5790850116129604 50. l +22. 758. m +31. 762. l +22. 766. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 292.1143544405584862 899. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +689.6856269521714466 174. 99.9906822366510255 901. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 689.6856269521714466 174. cm +39.0106297767306955 874. m +43.0106297767306955 874. l +66.9906822366510255 874. l +73.6573489033176969 874. 76.9906822366510255 870.6666666666666288 76.9906822366510255 864. c +76.9906822366510255 60. l +76.9906822366510255 53.3333333333333357 73.6573489033176969 50. 66.9906822366510255 50. c +42. 50. l +32. 50. l +32. 50. l +42. 50. l +66.9906822366510255 50. l +73.6573489033176969 50. 76.9906822366510255 53.3333333333333357 76.9906822366510255 60. c +76.9906822366510255 864. l +76.9906822366510255 870.6666666666666288 73.6573489033176969 874. 66.9906822366510255 874. c +43.0106297767306955 874. l +39.0106297767306955 874. l +h +33.0106297767306955 874. m +23.0106297767306955 874. l +32. 50. m +22. 50. l +36.0106297767306955 874. m +39.0106297767306955 874. m +38.9529856179403851 874.5852709660483697 l +38.7822683742645538 875.1480502970953239 l +38.5050386136383338 875.6667106990588536 l +38.131950120290341 876.1213203435596597 l +37.6773404757894994 876.4944088369076098 l +37.1586800738259626 876.7716385975338653 l +36.5959007427790795 876.9423558412097464 l +36.0106297767306955 877. l +35.4253588106823116 876.9423558412097464 l +34.8625794796354285 876.7716385975338653 l +34.3439190776718917 876.4944088369076098 l +33.88930943317105 876.1213203435596597 l +33.5162209398230573 875.6667106990588536 l +33.2389911791968373 875.1480502970953239 l +33.068273935521006 874.5852709660483697 l +33.0106297767306955 874. l +33.068273935521006 873.4147290339516303 l +33.2389911791968373 872.8519497029046761 l +33.5162209398230573 872.3332893009411464 l +33.88930943317105 871.8786796564403403 l +34.3439190776718917 871.5055911630923902 l +34.8625794796354214 871.2283614024661347 l +35.4253588106823116 871.0576441587902536 l +36.0106297767306955 871. l +36.5959007427790795 871.0576441587902536 l +37.1586800738259626 871.2283614024661347 l +37.6773404757894994 871.5055911630923902 l +38.131950120290341 871.8786796564403403 l +38.5050386136383338 872.3332893009411464 l +38.7822683742645538 872.8519497029046761 l +38.9529856179403851 873.4147290339516303 l +39.0106297767306955 874. l +22. 46. m +31. 50. l +22. 54. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 715.696256728902199 1043. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 714.6856269521714466 219. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +690.696256728902199 190. 149.346989627211542 885. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 690.696256728902199 190. cm +38. 858. m +42. 858. l +65.9800524599202731 858. l +72.6467191265869445 858. 75.9800524599202731 854.6666666666666288 75.9800524599202731 848. c +75.9800524599202731 60. l +75.9800524599202731 53.3333333333333357 79.3133857932536017 50. 85.9800524599202731 50. c +106.346989627211542 50. l +116.346989627211542 50. l +116.346989627211542 50. l +106.346989627211542 50. l +85.9800524599202731 50. l +79.3133857932536017 50. 75.9800524599202731 53.3333333333333357 75.9800524599202731 60. c +75.9800524599202731 848. l +75.9800524599202731 854.6666666666666288 72.6467191265869445 858. 65.9800524599202731 858. c +42. 858. l +38. 858. l +h +32. 858. m +22. 858. l +116.346989627211542 50. m +126.346989627211542 50. l +35. 858. m +38. 858. m +37.9423558412096895 858.5852709660483697 l +37.7716385975338582 859.1480502970953239 l +37.4944088369076383 859.6667106990588536 l +37.1213203435596455 860.1213203435596597 l +36.6667106990588039 860.4944088369076098 l +36.1480502970952671 860.7716385975338653 l +35.5852709660483839 860.9423558412097464 l +35. 861. l +34.4147290339516161 860.9423558412097464 l +33.8519497029047329 860.7716385975338653 l +33.3332893009411961 860.4944088369076098 l +32.8786796564403545 860.1213203435596597 l +32.5055911630923617 859.6667106990588536 l +32.2283614024661418 859.1480502970953239 l +32.0576441587903105 858.5852709660483697 l +32. 858. l +32.0576441587903105 857.4147290339516303 l +32.2283614024661418 856.8519497029046761 l +32.5055911630923617 856.3332893009411464 l +32.8786796564403545 855.8786796564403403 l +33.3332893009411961 855.5055911630923902 l +33.8519497029047258 855.2283614024661347 l +34.4147290339516161 855.0576441587902536 l +35. 855. l +35.5852709660483839 855.0576441587902536 l +36.1480502970952671 855.2283614024661347 l +36.6667106990588039 855.5055911630923902 l +37.1213203435596455 855.8786796564403403 l +37.4944088369076383 856.3332893009411464 l +37.7716385975338582 856.8519497029046761 l +37.9423558412096895 857.4147290339516303 l +38. 858. l +126.346989627211542 46. m +117.346989627211542 50. l +126.346989627211542 54. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 715.696256728902199 1043. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 806.3323088561137411 235. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +690.696256728902199 648.5554599719099542 149.346989627211542 426.4445400280900458 re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 690.696256728902199 648.5554599719099542 cm +38. 399.4445400280900458 m +42. 399.4445400280900458 l +65.9800524599202731 399.4445400280900458 l +72.6467191265869445 399.4445400280900458 75.9800524599202731 396.1112066947567314 75.9800524599202731 389.4445400280900458 c +75.9800524599202731 60. l +75.9800524599202731 53.3333333333333357 79.3133857932536017 50. 85.9800524599202731 50. c +106.346989627211542 50. l +116.346989627211542 50. l +116.346989627211542 50. l +106.346989627211542 50. l +85.9800524599202731 50. l +79.3133857932536017 50. 75.9800524599202731 53.3333333333333357 75.9800524599202731 60. c +75.9800524599202731 389.4445400280900458 l +75.9800524599202731 396.1112066947567314 72.6467191265869445 399.4445400280900458 65.9800524599202731 399.4445400280900458 c +42. 399.4445400280900458 l +38. 399.4445400280900458 l +h +32. 399.4445400280900458 m +22. 399.4445400280900458 l +116.346989627211542 50. m +126.346989627211542 50. l +35. 399.4445400280900458 m +38. 399.4445400280900458 m +37.9423558412096895 400.0298109941384155 l +37.7716385975338582 400.5925903251853128 l +37.4944088369076383 401.1112507271488425 l +37.1213203435596455 401.5658603716497055 l +36.6667106990588039 401.9389488649976556 l +36.1480502970952671 402.2161786256239111 l +35.5852709660483839 402.3868958692997353 l +35. 402.4445400280900458 l +34.4147290339516161 402.3868958692997353 l +33.8519497029047329 402.2161786256239111 l +33.3332893009411961 401.9389488649976556 l +32.8786796564403545 401.5658603716497055 l +32.5055911630923617 401.1112507271488425 l +32.2283614024661418 400.5925903251853128 l +32.0576441587903105 400.0298109941384155 l +32. 399.4445400280900458 l +32.0576441587903105 398.8592690620416761 l +32.2283614024661418 398.2964897309947787 l +32.5055911630923617 397.777829329031249 l +32.8786796564403545 397.3232196845303861 l +33.3332893009411961 396.9501311911824359 l +33.8519497029047258 396.6729014305561805 l +34.4147290339516161 396.5021841868803563 l +35. 396.4445400280900458 l +35.5852709660483839 396.5021841868803563 l +36.1480502970952671 396.6729014305561805 l +36.6667106990588039 396.9501311911824359 l +37.1213203435596455 397.3232196845303861 l +37.4944088369076383 397.777829329031249 l +37.7716385975338582 398.2964897309947787 l +37.9423558412096895 398.8592690620416761 l +38. 399.4445400280900458 l +126.346989627211542 46. m +117.346989627211542 50. l +126.346989627211542 54. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 715.696256728902199 1043. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 806.3323088561137411 693.5554599719099542 Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1023.7873869811137411 158. 120.255859375 109. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 1023.7873869811137411 158. cm +38. 50. m +42. 50. l +50.81396484375 50. l +56.68994140625 50. 59.6279296875 52.93798828125 59.6279296875 58.81396484375 c +59.6279296875 73.18603515625 l +59.6279296875 79.06201171875 62.56591796875 82. 68.44189453125 82. c +77.255859375 82. l +87.255859375 82. l +87.255859375 82. l +77.255859375 82. l +68.44189453125 82. l +62.56591796875 82. 59.6279296875 79.06201171875 59.6279296875 73.18603515625 c +59.6279296875 58.81396484375 l +59.6279296875 52.93798828125 56.68994140625 50. 50.81396484375 50. c +42. 50. l +38. 50. l +h +32. 50. m +22. 50. l +87.255859375 82. m +97.255859375 82. l +35. 50. m +38. 50. m +37.9423558412096895 50.5852709660483839 l +37.7716385975338582 51.1480502970952671 l +37.4944088369076383 51.6667106990588039 l +37.1213203435596455 52.1213203435596455 l +36.6667106990588039 52.4944088369076383 l +36.1480502970952671 52.7716385975338582 l +35.5852709660483839 52.9423558412096895 l +35. 53. l +34.4147290339516161 52.9423558412096895 l +33.8519497029047329 52.7716385975338582 l +33.3332893009411961 52.4944088369076383 l +32.8786796564403545 52.1213203435596455 l +32.5055911630923617 51.6667106990588039 l +32.2283614024661418 51.1480502970952671 l +32.0576441587903105 50.5852709660483839 l +32. 50. l +32.0576441587903105 49.4147290339516161 l +32.2283614024661418 48.8519497029047329 l +32.5055911630923617 48.3332893009411961 l +32.8786796564403545 47.8786796564403545 l +33.3332893009411961 47.5055911630923617 l +33.8519497029047258 47.2283614024661418 l +34.4147290339516161 47.0576441587903105 l +35. 47. l +35.5852709660483839 47.0576441587903105 l +36.1480502970952671 47.2283614024661418 l +36.6667106990588039 47.5055911630923617 l +37.1213203435596455 47.8786796564403545 l +37.4944088369076383 48.3332893009411961 l +37.7716385975338582 48.8519497029047258 l +37.9423558412096895 49.4147290339516161 l +38. 50. l +97.255859375 78. m +88.255859375 82. l +97.255859375 86. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1048.7873869811137411 203. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1110.3323088561137411 235. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1023.7873869811137411 616.5554599719099542 120.255859375 109. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 1023.7873869811137411 616.5554599719099542 cm +38. 50. m +42. 50. l +50.81396484375 50. l +56.68994140625 50. 59.6279296875 52.93798828125 59.6279296875 58.81396484375 c +59.6279296875 73.18603515625 l +59.6279296875 79.06201171875 62.56591796875 82. 68.44189453125 82. c +77.255859375 82. l +87.255859375 82. l +87.255859375 82. l +77.255859375 82. l +68.44189453125 82. l +62.56591796875 82. 59.6279296875 79.06201171875 59.6279296875 73.18603515625 c +59.6279296875 58.81396484375 l +59.6279296875 52.93798828125 56.68994140625 50. 50.81396484375 50. c +42. 50. l +38. 50. l +h +32. 50. m +22. 50. l +87.255859375 82. m +97.255859375 82. l +35. 50. m +38. 50. m +37.9423558412096895 50.5852709660483839 l +37.7716385975338582 51.1480502970952671 l +37.4944088369076383 51.6667106990588039 l +37.1213203435596455 52.1213203435596455 l +36.6667106990588039 52.4944088369076383 l +36.1480502970952671 52.7716385975338582 l +35.5852709660483839 52.9423558412096895 l +35. 53. l +34.4147290339516161 52.9423558412096895 l +33.8519497029047329 52.7716385975338582 l +33.3332893009411961 52.4944088369076383 l +32.8786796564403545 52.1213203435596455 l +32.5055911630923617 51.6667106990588039 l +32.2283614024661418 51.1480502970952671 l +32.0576441587903105 50.5852709660483839 l +32. 50. l +32.0576441587903105 49.4147290339516161 l +32.2283614024661418 48.8519497029047329 l +32.5055911630923617 48.3332893009411961 l +32.8786796564403545 47.8786796564403545 l +33.3332893009411961 47.5055911630923617 l +33.8519497029047258 47.2283614024661418 l +34.4147290339516161 47.0576441587903105 l +35. 47. l +35.5852709660483839 47.0576441587903105 l +36.1480502970952671 47.2283614024661418 l +36.6667106990588039 47.5055911630923617 l +37.1213203435596455 47.8786796564403545 l +37.4944088369076383 48.3332893009411961 l +37.7716385975338582 48.8519497029047258 l +37.9423558412096895 49.4147290339516161 l +38. 50. l +97.255859375 78. m +88.255859375 82. l +97.255859375 86. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1048.7873869811137411 661.5554599719099542 Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1110.3323088561137411 693.5554599719099542 Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1347.7571135436137411 158. 124.2861328125 109. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 1347.7571135436137411 158. cm +38. 50. m +42. 50. l +51.8325476841058617 50. l +58.3875794735097671 50. 61.6650953682117233 53.2775158947019563 61.6650953682117233 59.8325476841058617 c +61.6650953682117233 72.1894812778558617 l +61.6650953682117233 78.7298270926186206 64.9352682755931028 82. 71.4756140903558617 82. c +81.2861328125 82. l +91.2861328125 82. l +91.2861328125 82. l +81.2861328125 82. l +71.4756140903558617 82. l +64.9352682755931028 82. 61.6650953682117233 78.7298270926186206 61.6650953682117233 72.1894812778558617 c +61.6650953682117233 59.8325476841058617 l +61.6650953682117233 53.2775158947019563 58.3875794735097671 50. 51.8325476841058617 50. c +42. 50. l +38. 50. l +h +32. 50. m +22. 50. l +91.2861328125 82. m +101.2861328125 82. l +35. 50. m +38. 50. m +37.9423558412096895 50.5852709660483839 l +37.7716385975338582 51.1480502970952671 l +37.4944088369076383 51.6667106990588039 l +37.1213203435596455 52.1213203435596455 l +36.6667106990588039 52.4944088369076383 l +36.1480502970952671 52.7716385975338582 l +35.5852709660483839 52.9423558412096895 l +35. 53. l +34.4147290339516161 52.9423558412096895 l +33.8519497029047329 52.7716385975338582 l +33.3332893009411961 52.4944088369076383 l +32.8786796564403545 52.1213203435596455 l +32.5055911630923617 51.6667106990588039 l +32.2283614024661418 51.1480502970952671 l +32.0576441587903105 50.5852709660483839 l +32. 50. l +32.0576441587903105 49.4147290339516161 l +32.2283614024661418 48.8519497029047329 l +32.5055911630923617 48.3332893009411961 l +32.8786796564403545 47.8786796564403545 l +33.3332893009411961 47.5055911630923617 l +33.8519497029047258 47.2283614024661418 l +34.4147290339516161 47.0576441587903105 l +35. 47. l +35.5852709660483839 47.0576441587903105 l +36.1480502970952671 47.2283614024661418 l +36.6667106990588039 47.5055911630923617 l +37.1213203435596455 47.8786796564403545 l +37.4944088369076383 48.3332893009411961 l +37.7716385975338582 48.8519497029047258 l +37.9423558412096895 49.4147290339516161 l +38. 50. l +101.2861328125 78. m +92.2861328125 82. l +101.2861328125 86. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1372.7571135436137411 203. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1438.3323088561137411 235. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1347.7571135436137411 158. 125.4017852908888244 701. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 1347.7571135436137411 158. cm +38. 50. m +42. 50. l +52.2008926454444122 50. l +58.8675593121110765 50. 62.2008926454444122 53.3333333333333357 62.2008926454444122 60. c +62.2008926454444122 664. l +62.2008926454444122 670.6666666666666288 65.5342259787777408 674. 72.2008926454444122 674. c +82.4017852908888244 674. l +92.4017852908888244 674. l +92.4017852908888244 674. l +82.4017852908888244 674. l +72.2008926454444122 674. l +65.5342259787777408 674. 62.2008926454444122 670.6666666666666288 62.2008926454444122 664. c +62.2008926454444122 60. l +62.2008926454444122 53.3333333333333357 58.8675593121110765 50. 52.2008926454444122 50. c +42. 50. l +38. 50. l +h +32. 50. m +22. 50. l +92.4017852908888244 674. m +102.4017852908888244 674. l +35. 50. m +38. 50. m +37.9423558412096895 50.5852709660483839 l +37.7716385975338582 51.1480502970952671 l +37.4944088369076383 51.6667106990588039 l +37.1213203435596455 52.1213203435596455 l +36.6667106990588039 52.4944088369076383 l +36.1480502970952671 52.7716385975338582 l +35.5852709660483839 52.9423558412096895 l +35. 53. l +34.4147290339516161 52.9423558412096895 l +33.8519497029047329 52.7716385975338582 l +33.3332893009411961 52.4944088369076383 l +32.8786796564403545 52.1213203435596455 l +32.5055911630923617 51.6667106990588039 l +32.2283614024661418 51.1480502970952671 l +32.0576441587903105 50.5852709660483839 l +32. 50. l +32.0576441587903105 49.4147290339516161 l +32.2283614024661418 48.8519497029047329 l +32.5055911630923617 48.3332893009411961 l +32.8786796564403545 47.8786796564403545 l +33.3332893009411961 47.5055911630923617 l +33.8519497029047258 47.2283614024661418 l +34.4147290339516161 47.0576441587903105 l +35. 47. l +35.5852709660483839 47.0576441587903105 l +36.1480502970952671 47.2283614024661418 l +36.6667106990588039 47.5055911630923617 l +37.1213203435596455 47.8786796564403545 l +37.4944088369076383 48.3332893009411961 l +37.7716385975338582 48.8519497029047258 l +37.9423558412096895 49.4147290339516161 l +38. 50. l +102.4017852908888244 670. m +93.4017852908888244 674. l +102.4017852908888244 678. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1372.7571135436137411 203. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1439.4479613345024518 827. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1653.1165657303761236 550. 110.0728207043728162 277. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. 1653.1165657303761236 550. cm +71.4236807603763282 250. m +75.4236807603763282 250. l +81.2482507323745722 250. l +85.1312973803733968 250. 87.0728207043728162 248.0584766760005948 87.0728207043728162 244.175430028001756 c +87.0728207043728162 60. l +87.0728207043728162 53.3333333333333357 83.7394873710394876 50. 77.0728207043728162 50. c +42. 50. l +32. 50. l +32. 50. l +42. 50. l +77.0728207043728162 50. l +83.7394873710394876 50. 87.0728207043728162 53.3333333333333357 87.0728207043728162 60. c +87.0728207043728162 244.175430028001756 l +87.0728207043728162 248.0584766760005948 85.1312973803733968 250. 81.2482507323745722 250. c +75.4236807603763282 250. l +71.4236807603763282 250. l +h +65.4236807603763282 250. m +55.4236807603763282 250. l +32. 50. m +22. 50. l +68.4236807603763282 250. m +71.4236807603763282 250. m +71.3660366015860177 250.5852709660483981 l +71.1953193579101935 251.1480502970952671 l +70.9180895972839664 251.6667106990587968 l +70.5450011039359737 252.1213203435596313 l +70.0903914594351392 252.4944088369076383 l +69.5717310574715952 252.7716385975338653 l +69.0089517264247121 252.9423558412096895 l +68.4236807603763282 253. l +67.8384097943279443 252.9423558412096895 l +67.2756304632810611 252.7716385975338653 l +66.7569700613175172 252.4944088369076383 l +66.3023604168166827 252.1213203435596313 l +65.9292719234686899 251.6667106990587968 l +65.6520421628424629 251.1480502970952671 l +65.4813249191666387 250.5852709660483981 l +65.4236807603763282 250. l +65.4813249191666387 249.4147290339516019 l +65.6520421628424629 248.8519497029047329 l +65.9292719234686899 248.3332893009412032 l +66.3023604168166827 247.8786796564403687 l +66.7569700613175172 247.5055911630923617 l +67.2756304632810611 247.2283614024661347 l +67.8384097943279443 247.0576441587903105 l +68.4236807603763282 247. l +69.0089517264247121 247.0576441587903105 l +69.5717310574715952 247.2283614024661347 l +70.0903914594351392 247.5055911630923617 l +70.5450011039359737 247.8786796564403687 l +70.9180895972839664 248.3332893009412032 l +71.1953193579101935 248.8519497029047329 l +71.3660366015860177 249.4147290339516019 l +71.4236807603763282 250. l +22. 46. m +31. 50. l +22. 54. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1711.5402464907524518 795. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1678.1165657303761236 595. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +-4. 462. 87.3702138155584862 373. re +W +n +q +q +q +0.61 0.61 0.64 RG +1. 0. 0. 1. -4. 462. cm +45.7473479186136842 50. m +41.7473479186136842 50. l +31.8736739593068421 50. l +25.2912246531022831 50. 22. 53.2912246531022831 22. 59.8736739593068421 c +22. 336. l +22. 342.6666666666666856 25.3333333333333357 346. 32. 346. c +44.3702138155584862 346. l +54.3702138155584862 346. l +54.3702138155584862 346. l +44.3702138155584862 346. l +32. 346. l +25.3333333333333357 346. 22. 342.6666666666666856 22. 336. c +22. 59.8736739593068421 l +22. 53.2912246531022831 25.2912246531022831 50. 31.8736739593068421 50. c +41.7473479186136842 50. l +45.7473479186136842 50. l +h +51.7473479186136842 50. m +61.7473479186136842 50. l +54.3702138155584862 346. m +64.3702138155584862 346. l +48.7473479186136842 50. m +51.7473479186136842 50. m +51.6897037598233737 50.5852709660483839 l +51.5189865161475424 51.1480502970952671 l +51.2417567555213225 51.6667106990588039 l +50.8686682621733297 52.1213203435596455 l +50.4140586176724881 52.4944088369076383 l +49.8953982157089513 52.7716385975338582 l +49.3326188846620681 52.9423558412096895 l +48.7473479186136842 53. l +48.1620769525653003 52.9423558412096895 l +47.5992976215184171 52.7716385975338582 l +47.0806372195548803 52.4944088369076383 l +46.6260275750540387 52.1213203435596455 l +46.252939081706046 51.6667106990588039 l +45.975709321079826 51.1480502970952671 l +45.8049920774039947 50.5852709660483839 l +45.7473479186136842 50. l +45.8049920774039947 49.4147290339516161 l +45.975709321079826 48.8519497029047329 l +46.252939081706046 48.3332893009411961 l +46.6260275750540387 47.8786796564403545 l +47.0806372195548803 47.5055911630923617 l +47.59929762151841 47.2283614024661418 l +48.1620769525653003 47.0576441587903105 l +48.7473479186136842 47. l +49.3326188846620681 47.0576441587903105 l +49.8953982157089513 47.2283614024661418 l +50.4140586176724881 47.5055911630923617 l +50.8686682621733297 47.8786796564403545 l +51.2417567555213225 48.3332893009411961 l +51.5189865161475424 48.8519497029047258 l +51.6897037598233737 49.4147290339516161 l +51.7473479186136842 50. l +64.3702138155584862 342. m +55.3702138155584862 346. l +64.3702138155584862 350. l +S +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 31.3821135436136842 507. Tm +<0013001100110014> Tj +ET +Q +Q +q +/GS1 gs +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 49.6592763155584862 803. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 144. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 458.6934394521714466 144. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 468.6934394521714466 163.25 Tm +<0056004b0048004800530056> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 176. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 176. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 195.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 484.8872871084214466 185.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 654.9224433584214466 195.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 208. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 208. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 227.25 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 227.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 240. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 240. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 259.25 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 259.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 272. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 272. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 291.25 Tm +<004c004600520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 291.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 304. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 304. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 323.25 Tm +<00580058004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 323.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 336. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 336. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 355.25 Tm +<0044005300530052004c005100570050004800510057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 355.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 368. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 368. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 387.25 Tm +<00460044005100420059004c0048005a004200560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 387.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 400. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 400. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 419.25 Tm +<00460044005100420059004c0048005a004200560046004b004800470058004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 419.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +458.6934394521714466 432. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 432. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 451.25 Tm +<00460044005100420059004c0048005a00420057004800550055004c005700520055005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 451.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 480. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 524.0678815998326172 480. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 534.0678815998326172 499.25 Tm +<004400470050004c0051004c00560057005500440057005200550056> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 512. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 512. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 531.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 550.2617292560826172 521.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 654.7002058185826172 531.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 544. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 544. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 563.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.6040144123326172 563.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 576. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 576. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 595.25 Tm +<00580058004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.0913190998326172 595.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 624. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 434.3913698881360119 624. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 444.3913698881360119 643.25 Tm +<0050005200470048005500440057005200550056> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 656. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 656. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 675.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 460.5852175443860119 665.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 656.6901980131360688 675.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 688. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 688. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 707.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 707.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 720. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 720. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 739.25 Tm +<00580058004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 680.0813112943860688 739.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 752. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 752. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 771.25 Tm +<004600440051004200440047004700420056004b0048004800530056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 771.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 784. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 784. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 803.25 Tm +<004600440051004200440047004700420057004800550055004c005700520055005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 803.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 816. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 816. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 835.25 Tm +<00460044005100420050004400510044004a0048005500420057004800550055004c005700520055005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 835.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 848. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 848. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 867.25 Tm +<0046004400510042004400470047004200560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 867.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 880. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 880. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 899.25 Tm +<00460044005100420050004400510044004a00480055004200560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 899.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +434.3913698881360119 912. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 912. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 931.25 Tm +<0046004400510042004400470047004200560046004b004800470058004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 931.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +486.3578778226521422 968. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 486.3578778226521422 968. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 496.3578778226521422 987.25 Tm +<004a00550052005800530056> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +486.3578778226521422 1000. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 486.3578778226521422 1000. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 496.3578778226521422 1019.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 512.551725478902199 1009.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 655.933073135152199 1019.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +486.3578778226521422 1032. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 486.3578778226521422 1032. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 496.3578778226521422 1051.25 Tm +<004a00550052005800530042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 659.836881728902199 1051.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +486.3578778226521422 1064. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 486.3578778226521422 1064. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 496.3578778226521422 1083.25 Tm +<0056004b0044005500480042004b00440056004b> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 679.324186416402199 1083.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 0. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 524.0678815998326172 0. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 534.0678815998326172 19.25 Tm +<005600580045005600460055004c00530057004c00520051> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 32. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 32. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 51.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 550.2617292560826172 41.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 654.7002058185826172 51.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 64. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 64. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 83.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.6040144123326172 83.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +524.0678815998326172 96. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 96. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 115.25 Tm +<00570052004e00480051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.0913190998326172 115.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 817.0432463561137411 160. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 827.0432463561137411 179.25 Tm +<004b0052005800560048> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 192. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 192. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 843.2370940123637411 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 989.0242033873637411 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 224. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 224. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 243.25 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 992.9280119811137411 243.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 256. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 275.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 275.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 288. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 307.25 Tm +<005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 307.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 320. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 339.25 Tm +<00530052004c005100570056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 339.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 352. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 371.25 Tm +<00530052004c0051005700560042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 371.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 384. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 403.25 Tm +<004a00480052> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 416. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 416. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 435.25 Tm +<0052005600500042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 435.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 448. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 448. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 467.25 Tm +<0056004800570057004f00480050004800510057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 467.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 480. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 480. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 499.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 499.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 512. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 512. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 531.25 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 531.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 544. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 544. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 563.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 563.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1121.0432463561137411 160. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1131.0432463561137411 179.25 Tm +<00480051005700550044005100460048> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 192. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 192. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1147.2370940123637411 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1312.9939299498637411 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 224. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 224. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 243.25 Tm +<004b00520058005600480042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1316.8977385436137411 243.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 256. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 275.25 Tm +<004800510057005500440051004600480042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1316.8977385436137411 275.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 288. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 307.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 307.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 320. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 339.25 Tm +<00530052004c005100570056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 339.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 352. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 371.25 Tm +<00530052004c0051005700560042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 371.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 384. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 403.25 Tm +<0049004f0052005200550056004200540058004400510057004c0057005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 416. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 416. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 435.25 Tm +<0044005300440055005700500048005100570056004200540058004400510057004c0057005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 435.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 448. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 448. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 467.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 467.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 480. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 480. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 499.25 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1294.4651213561137411 499.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 512. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 512. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 531.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1294.4651213561137411 531.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1449.0432463561137411 160. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1459.0432463561137411 179.25 Tm +<004800510057005500440051004600480042004b004c0056005700520055005c> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 192. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 192. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1475.2370940123637411 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1614.0354338561137411 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 224. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 224. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 243.25 Tm +<004800510057005500440051004600480042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1617.9392424498637411 243.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 256. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 275.25 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1637.4265471373637411 275.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 288. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 307.25 Tm +<0047004400570048004200560057004400550057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1595.5066252623637411 307.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 320. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 339.25 Tm +<00470044005700480042004800510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1595.5066252623637411 339.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 352. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 371.25 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1617.9392424498637411 371.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 384. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 403.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1637.4265471373637411 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.0432463561137411 416. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 416. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 435.25 Tm +<005a00520055004e004c0051004a> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1617.9392424498637411 435.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 752. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1450.1588988345024518 752. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1460.1588988345024518 771.25 Tm +<0044005300440055005700500048005100570056> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 784. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 784. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 803.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1476.3527464907524518 793.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1651.7770628970024518 803.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 816. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 816. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 835.25 Tm +<004800510057005500440051004600480042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 835.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 848. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 848. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 867.25 Tm +<0044005300440055005700500048005100570042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 867.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 880. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 880. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 899.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1675.1681761782524518 899.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 912. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 912. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 931.25 Tm +<0049004f00520052005500560042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 931.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 944. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 944. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 963.25 Tm +<005600570044005700580056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 963.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 976. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 976. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 995.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1675.1681761782524518 995.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 1008. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 1008. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 1027.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1675.1681761782524518 1027.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1450.1588988345024518 1040. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 1040. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 1059.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1633.2482543032524518 1059.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 488. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1449.7430305741261236 488. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1459.7430305741261236 507.25 Tm +<00440053004400550057005000480051005700560042004b004c0056005700520055005c> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 520. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 520. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 539.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1475.9368782303761236 529.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1618.3533821366261236 539.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 552. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 552. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 571.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1641.7444954178761236 571.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 584. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 584. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 603.25 Tm +<00440053004400550057005000480051005700560042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1622.2571907303761236 603.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 616. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 616. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 635.25 Tm +<005600570044005700580056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1622.2571907303761236 635.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 648. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 648. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 667.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1641.7444954178761236 667.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1449.7430305741261236 680. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 680. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 699.25 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1599.8245735428761236 699.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 618.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 817.0432463561137411 618.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 827.0432463561137411 637.8054599719099542 Tm +<004b00520050004800560057004800440047> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 650.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 650.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 669.8054599719099542 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 843.2370940123637411 659.8054599719099542 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 989.0242033873637411 669.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 682.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 682.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 701.8054599719099542 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 992.9280119811137411 701.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 714.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 714.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 733.8054599719099542 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 733.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 746.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 746.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 765.8054599719099542 Tm +<005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 765.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 778.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 778.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 797.8054599719099542 Tm +<00530052004c005100570056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 797.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 810.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 810.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 829.8054599719099542 Tm +<00530052004c005100570042004c0046005200510056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 829.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 842.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 842.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 861.8054599719099542 Tm +<004a00480052> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 861.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 874.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 874.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 893.8054599719099542 Tm +<0052005600500042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 893.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 906.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 906.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 925.8054599719099542 Tm +<0056004800570057004f00480050004800510057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 925.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 938.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 938.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 957.8054599719099542 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 957.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 970.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 970.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 989.8054599719099542 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 989.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +817.0432463561137411 1002.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 1002.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 1021.8054599719099542 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 1021.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 618.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1121.0432463561137411 618.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1131.0432463561137411 637.8054599719099542 Tm +<004b005200500048005600570048004400470042004b004c0056005700520055005c> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 650.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 650.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 669.8054599719099542 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1147.2370940123637411 659.8054599719099542 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1286.0354338561137411 669.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 682.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 682.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 701.8054599719099542 Tm +<004b005200500048005600570048004400470042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1289.9392424498637411 701.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 714.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 714.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 733.8054599719099542 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1309.4265471373637411 733.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 746.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 746.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 765.8054599719099542 Tm +<0047004400570048004200560057004400550057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1267.5066252623637411 765.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 778.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 778.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 797.8054599719099542 Tm +<00470044005700480042004800510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1267.5066252623637411 797.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 810.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 810.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 829.8054599719099542 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1289.9392424498637411 829.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 842.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 842.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 861.8054599719099542 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1309.4265471373637411 861.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +1121.0432463561137411 874.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 874.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 893.8054599719099542 Tm +<005a00520055004e004c0051004a> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1289.9392424498637411 893.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 81.0432463561136842 160. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 91.0432463561136842 179.25 Tm +<0050004800480057004c0051004a0056004200560046004b004800470058004f0048> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 192. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 192. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 107.2370940123636842 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 232.0007658873636842 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 224. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 224. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 243.25 Tm +<0047004400570048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 213.4719572936136842 243.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 256. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 275.25 Tm +<0057005c00530048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 275.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 288. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 307.25 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 307.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 320. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 339.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 339.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 352. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 371.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 371.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +81.0432463561136842 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 384. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 403.25 Tm +<005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 464. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 57.7473479186136842 464. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 67.7473479186136842 483.25 Tm +<005600570044005100470042004f004c00560057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 496. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 496. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 515.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 83.9411955748636842 505.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 232.0007658873636842 515.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 528. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 528. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 547.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 547.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 560. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 560. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 579.25 Tm +<004b005200580055004200560057004400550057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 579.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 592. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 592. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 611.25 Tm +<004b0052005800550042004800510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 611.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 624. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 624. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 643.25 Tm +<00540058004400510057004c0057005c00420056004b004800480053> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 643.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +57.7473479186136842 656. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 656. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 675.25 Tm +<005a00480048004e004200470044005c0056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 675.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 728. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 60.3702138155584862 728. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 70.3702138155584862 747.25 Tm +<00560057004400510047004200560046004b004800470058004f0048> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 760. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 760. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 779.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 86.5640614718084862 769.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 232.3511708468084862 779.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 792. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 792. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 811.25 Tm +<00560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 236.2549794405584862 811.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 824. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 824. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 843.25 Tm +<0047004400570048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 213.8223622530584862 843.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 856. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 856. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 875.25 Tm +<004b005200580055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 236.2549794405584862 875.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 888. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 888. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 907.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.7422841280584862 907.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 920. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 920. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 939.25 Tm +<00510058005000450048005500420056004b004800480053> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.7422841280584862 939.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.852195138937755 0. 0. 0.852195138937755 3.40878055575102 2.4493846093914158 cm +60.3702138155584862 952. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 952. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 971.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 213.8223622530584862 971.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +Q +Q +Q +Q +Q +endstream +endobj +5 0 obj +<> >> +] +/Contents 6 0 R +>> +endobj +6 0 obj +<< +/Length 191740 +>> +stream +1. w +0.61 0.61 0.64 RG +0.98 g +0. 1080. 1920. -1080. re +f +q +1. 0. 0. -1. 0. 1080. cm +q +1. 0. 0. 1. 1711. 1015. cm +1. w +0. g +q +1. 0. 0. 1. 0. 0. cm +0. 0. 184. 60. re +W +n +q +q +0.26 0.55 1. rg +0.2 0. 0. 0.2 0. 0. cm +211.9000000000000057 68.7999999999999972 m +159.6999999999999886 68.7999999999999972 l +159.6999999999999886 147.5999999999999943 l +242.3999999999999773 147.5999999999999943 l +242.3999999999999773 99.2999999999999972 l +242.3999999999999773 82.5 228.7999999999999829 68.7999999999999972 211.8999999999999773 68.7999999999999972 c +h +f +Q +q +0.15 0.44 0.87 rg +0.2 0. 0. 0.2 0. 0. cm +242.4000000000000057 147.5999999999999943 m +159.6999999999999886 147.5999999999999943 l +159.6999999999999886 228.8000000000000114 l +211.8999999999999773 228.8000000000000114 l +228.6999999999999886 228.8000000000000114 242.3999999999999773 215.1000000000000227 242.3999999999999773 198.3000000000000114 c +242.3999999999999773 147.6000000000000227 l +h +f +Q +q +0.13 0.38 0.81 rg +0.2 0. 0. 0.2 0. 0. cm +159.6999999999999886 68.7999999999999972 m +113.0999999999999943 68.7999999999999972 l +96.2999999999999972 68.7999999999999972 82.5999999999999943 82.5 82.5999999999999943 99.2999999999999972 c +82.5999999999999943 198.3000000000000114 l +82.5999999999999943 215.1000000000000227 96.2999999999999972 228.8000000000000114 113.0999999999999943 228.8000000000000114 c +159.6999999999999886 228.8000000000000114 l +159.6999999999999886 68.8000000000000114 l +h +f +Q +q +1. g +0.2 0. 0. 0.2 0. 0. cm +135.9000000000000057 165.0999999999999943 m +113.9000000000000057 165.0999999999999943 l +110.5 165.0999999999999943 107.8000000000000114 162.4000000000000057 107.8000000000000114 159. c +107.8000000000000114 137. l +107.8000000000000114 133.5999999999999943 110.5000000000000142 130.9000000000000057 113.9000000000000057 130.9000000000000057 c +135.9000000000000057 130.9000000000000057 l +139.3000000000000114 130.9000000000000057 142. 133.5999999999999943 142. 137. c +142. 159. l +142. 162.4000000000000057 139.1999999999999886 165.0999999999999943 135.9000000000000057 165.0999999999999943 c +h +185. 92.7999999999999972 m +207. 92.7999999999999972 l +210.4000000000000057 92.7999999999999972 213.0999999999999943 95.5 213.0999999999999943 98.8999999999999915 c +213.0999999999999943 120.8999999999999915 l +213.0999999999999943 124.2999999999999972 210.4000000000000057 126.9999999999999858 207. 126.9999999999999858 c +185. 126.9999999999999858 l +181.5999999999999943 126.9999999999999858 178.9000000000000057 124.2999999999999829 178.9000000000000057 120.8999999999999915 c +178.9000000000000057 98.8999999999999915 l +178.9000000000000057 95.4999999999999858 181.7000000000000171 92.7999999999999972 185. 92.7999999999999972 c +h +185. 171. m +207. 171. l +210.4000000000000057 171. 213.0999999999999943 173.6999999999999886 213.0999999999999943 177.0999999999999943 c +213.0999999999999943 199.0999999999999943 l +213.0999999999999943 202.5 210.4000000000000057 205.1999999999999886 207. 205.1999999999999886 c +185. 205.1999999999999886 l +181.5999999999999943 205.1999999999999886 178.9000000000000057 202.5 178.9000000000000057 199.0999999999999943 c +178.9000000000000057 177.0999999999999943 l +178.9000000000000057 173.6999999999999886 181.7000000000000171 171. 185. 171. c +h +f +Q +q +1. g +0.2 0. 0. 0.2 0. 0. cm +126.0759999999999934 151.6500000000000057 m +192.1159999999999854 103.8900000000000148 l +196.8619999999999948 110.4540000000000077 l +130.8229999999999791 158.2139999999999986 l +h +f +Q +q +1. g +0.2 0. 0. 0.2 0. 0. cm +125.8269999999999982 143.8739999999999952 m +130.8000000000000114 137.4799999999999898 l +194.8190000000000168 187.2679999999999723 l +189.8460000000000036 193.6619999999999777 l +h +f +Q +q +0.13 0.38 0.81 rg +0.2 0. 0. 0.2 0. 0. cm +344.8999999999999773 182.0999999999999943 m +335.8999999999999773 182.0999999999999943 l +335.8999999999999773 175.2999999999999829 l +335.6999999999999886 175.2999999999999829 l +334. 177.7999999999999829 331.5999999999999659 179.7999999999999829 328.5999999999999659 181.1999999999999886 c +325.5999999999999659 182.5999999999999943 322.4999999999999432 183.2999999999999829 319.2999999999999545 183.2999999999999829 c +315.5999999999999659 183.2999999999999829 312.2999999999999545 182.6999999999999886 309.3999999999999773 181.3999999999999773 c +306.3999999999999773 180.0999999999999659 303.8999999999999773 178.3999999999999773 301.7999999999999545 176.0999999999999659 c +299.6999999999999318 173.7999999999999545 298.0999999999999659 171.1999999999999602 296.9999999999999432 168.1999999999999602 c +295.8999999999999204 165.1999999999999602 295.2999999999999545 161.8999999999999488 295.2999999999999545 158.3999999999999488 c +295.2999999999999545 154.8999999999999488 295.8999999999999773 151.5999999999999375 296.9999999999999432 148.5999999999999375 c +298.0999999999999659 145.5999999999999375 299.6999999999999318 142.8999999999999488 301.7999999999999545 140.6999999999999318 c +303.8999999999999773 138.4999999999999432 306.3999999999999773 136.6999999999999318 309.3999999999999773 135.4999999999999432 c +312.3999999999999773 134.1999999999999318 315.6999999999999886 133.5999999999999375 319.2999999999999545 133.5999999999999375 c +322.6999999999999318 133.5999999999999375 325.8999999999999773 134.2999999999999261 328.8999999999999773 135.6999999999999318 c +331.8999999999999773 137.0999999999999375 334.1999999999999886 139.0999999999999375 335.7999999999999545 141.4999999999999432 c +335.9999999999999432 141.4999999999999432 l +335.9999999999999432 106.5999999999999375 l +344.9999999999999432 106.5999999999999375 l +344.9999999999999432 182.0999999999999375 l +344.8999999999999204 182.0999999999999375 l +h +320.2999999999999545 174.9000000000000057 m +322.6999999999999318 174.9000000000000057 324.8999999999999773 174.5 326.7999999999999545 173.7000000000000171 c +328.6999999999999318 172.9000000000000057 330.3999999999999773 171.7000000000000171 331.6999999999999318 170.3000000000000114 c +332.9999999999999432 168.9000000000000057 334.0999999999999091 167.1000000000000227 334.7999999999999545 165.1000000000000227 c +335.4999999999999432 163.1000000000000227 335.8999999999999773 160.9000000000000341 335.8999999999999773 158.5000000000000284 c +335.8999999999999773 156.1000000000000227 335.5 153.9000000000000341 334.7999999999999545 151.9000000000000341 c +334.0999999999999659 149.9000000000000341 332.9999999999999432 148.1000000000000227 331.6999999999999318 146.7000000000000455 c +330.3999999999999204 145.3000000000000398 328.6999999999999318 144.1000000000000512 326.7999999999999545 143.3000000000000398 c +324.8999999999999773 142.5000000000000284 322.6999999999999318 142.1000000000000512 320.2999999999999545 142.1000000000000512 c +317.8999999999999773 142.1000000000000512 315.6999999999999318 142.5000000000000568 313.7999999999999545 143.3000000000000398 c +311.8999999999999773 144.1000000000000512 310.1999999999999318 145.3000000000000398 308.8999999999999773 146.7000000000000455 c +307.5999999999999659 148.1000000000000512 306.5 149.9000000000000341 305.7999999999999545 151.9000000000000341 c +305.0999999999999659 153.9000000000000341 304.6999999999999318 156.1000000000000227 304.6999999999999318 158.5000000000000284 c +304.6999999999999318 160.9000000000000341 305.0999999999999091 163.1000000000000227 305.7999999999999545 165.1000000000000227 c +306.4999999999999432 167.1000000000000227 307.5999999999999659 168.9000000000000341 308.8999999999999773 170.3000000000000114 c +310.1999999999999886 171.7000000000000171 311.8999999999999773 172.9000000000000057 313.7999999999999545 173.7000000000000171 c +315.7999999999999545 174.5000000000000284 317.8999999999999773 174.9000000000000057 320.2999999999999545 174.9000000000000057 c +h +358.3999999999999773 106.6000000000000085 m +367.3999999999999773 106.6000000000000085 l +367.3999999999999773 141.5 l +367.5999999999999659 141.5 l +369.1999999999999886 139. 371.4999999999999432 137.0999999999999943 374.4999999999999432 135.6999999999999886 c +377.4999999999999432 134.2999999999999829 380.6999999999999318 133.5999999999999943 384.0999999999999659 133.5999999999999943 c +387.7999999999999545 133.5999999999999943 391.0999999999999659 134.1999999999999886 393.9999999999999432 135.5 c +396.9999999999999432 136.8000000000000114 399.4999999999999432 138.5 401.5999999999999659 140.6999999999999886 c +403.6999999999999886 142.8999999999999773 405.2999999999999545 145.5999999999999943 406.3999999999999773 148.5999999999999943 c +407.5 151.5999999999999943 408.0999999999999659 154.9000000000000057 408.0999999999999659 158.4000000000000057 c +408.0999999999999659 161.9000000000000057 407.4999999999999432 165.2000000000000171 406.3999999999999773 168.2000000000000171 c +405.2999999999999545 171.2000000000000171 403.6999999999999886 173.8000000000000114 401.5999999999999659 176.1000000000000227 c +399.4999999999999432 178.4000000000000341 396.9999999999999432 180.1000000000000227 393.9999999999999432 181.4000000000000341 c +390.9999999999999432 182.7000000000000455 387.6999999999999318 183.3000000000000398 384.0999999999999659 183.3000000000000398 c +380.8999999999999773 183.3000000000000398 377.7999999999999545 182.6000000000000512 374.7999999999999545 181.2000000000000455 c +371.7999999999999545 179.8000000000000398 369.3999999999999773 177.8000000000000398 367.6999999999999318 175.3000000000000398 c +367.4999999999999432 175.3000000000000398 l +367.4999999999999432 182.1000000000000512 l +358.4999999999999432 182.1000000000000512 l +358.4999999999999432 106.6000000000000512 l +358.3999999999999204 106.6000000000000512 l +h +383. 174.9000000000000057 m +385.3999999999999773 174.9000000000000057 387.6000000000000227 174.5 389.5 173.7000000000000171 c +391.3999999999999773 172.9000000000000057 393.1000000000000227 171.7000000000000171 394.3999999999999773 170.3000000000000114 c +395.6999999999999886 168.9000000000000057 396.7999999999999545 167.1000000000000227 397.5 165.1000000000000227 c +398.1999999999999886 163.1000000000000227 398.6000000000000227 160.9000000000000341 398.6000000000000227 158.5000000000000284 c +398.6000000000000227 156.1000000000000227 398.2000000000000455 153.9000000000000341 397.5 151.9000000000000341 c +396.8000000000000114 149.9000000000000341 395.6999999999999886 148.1000000000000227 394.3999999999999773 146.7000000000000455 c +393.0999999999999659 145.3000000000000398 391.3999999999999773 144.1000000000000512 389.5 143.3000000000000398 c +387.6000000000000227 142.5000000000000284 385.3999999999999773 142.1000000000000512 383. 142.1000000000000512 c +380.6000000000000227 142.1000000000000512 378.3999999999999773 142.5000000000000568 376.5 143.3000000000000398 c +374.6000000000000227 144.1000000000000512 372.8999999999999773 145.3000000000000398 371.6000000000000227 146.7000000000000455 c +370.3000000000000114 148.1000000000000512 369.2000000000000455 149.9000000000000341 368.5 151.9000000000000341 c +367.8000000000000114 153.9000000000000341 367.3999999999999773 156.1000000000000227 367.3999999999999773 158.5000000000000284 c +367.3999999999999773 160.9000000000000341 367.7999999999999545 163.1000000000000227 368.5 165.1000000000000227 c +369.1999999999999886 167.1000000000000227 370.3000000000000114 168.9000000000000341 371.6000000000000227 170.3000000000000114 c +372.9000000000000341 171.7000000000000171 374.6000000000000227 172.9000000000000057 376.5 173.7000000000000171 c +378.3999999999999773 174.5000000000000284 380.6000000000000227 174.9000000000000057 383. 174.9000000000000057 c +h +466.8999999999999773 182.0999999999999943 m +457.8999999999999773 182.0999999999999943 l +457.8999999999999773 175.2999999999999829 l +457.6999999999999886 175.2999999999999829 l +456. 177.7999999999999829 453.5999999999999659 179.7999999999999829 450.5999999999999659 181.1999999999999886 c +447.5999999999999659 182.5999999999999943 444.4999999999999432 183.2999999999999829 441.2999999999999545 183.2999999999999829 c +437.5999999999999659 183.2999999999999829 434.2999999999999545 182.6999999999999886 431.3999999999999773 181.3999999999999773 c +428.3999999999999773 180.0999999999999659 425.8999999999999773 178.3999999999999773 423.7999999999999545 176.0999999999999659 c +421.6999999999999318 173.7999999999999545 420.0999999999999659 171.1999999999999602 418.9999999999999432 168.1999999999999602 c +417.8999999999999204 165.1999999999999602 417.2999999999999545 161.8999999999999488 417.2999999999999545 158.3999999999999488 c +417.2999999999999545 154.8999999999999488 417.8999999999999773 151.5999999999999375 418.9999999999999432 148.5999999999999375 c +420.0999999999999659 145.5999999999999375 421.6999999999999318 142.8999999999999488 423.7999999999999545 140.6999999999999318 c +425.8999999999999773 138.4999999999999432 428.3999999999999773 136.6999999999999318 431.3999999999999773 135.4999999999999432 c +434.3999999999999773 134.1999999999999318 437.6999999999999886 133.5999999999999375 441.2999999999999545 133.5999999999999375 c +444.6999999999999318 133.5999999999999375 447.8999999999999773 134.2999999999999261 450.8999999999999773 135.6999999999999318 c +453.8999999999999773 137.0999999999999375 456.1999999999999886 139.0999999999999375 457.7999999999999545 141.4999999999999432 c +457.9999999999999432 141.4999999999999432 l +457.9999999999999432 106.5999999999999375 l +466.9999999999999432 106.5999999999999375 l +466.9999999999999432 182.0999999999999375 l +466.8999999999999204 182.0999999999999375 l +h +442.2999999999999545 174.9000000000000057 m +444.6999999999999318 174.9000000000000057 446.8999999999999773 174.5 448.7999999999999545 173.7000000000000171 c +450.6999999999999318 172.9000000000000057 452.3999999999999773 171.7000000000000171 453.6999999999999318 170.3000000000000114 c +454.9999999999999432 168.9000000000000057 456.0999999999999091 167.1000000000000227 456.7999999999999545 165.1000000000000227 c +457.4999999999999432 163.1000000000000227 457.8999999999999773 160.9000000000000341 457.8999999999999773 158.5000000000000284 c +457.8999999999999773 156.1000000000000227 457.5 153.9000000000000341 456.7999999999999545 151.9000000000000341 c +456.0999999999999659 149.9000000000000341 454.9999999999999432 148.1000000000000227 453.6999999999999318 146.7000000000000455 c +452.3999999999999204 145.3000000000000398 450.6999999999999318 144.1000000000000512 448.7999999999999545 143.3000000000000398 c +446.8999999999999773 142.5000000000000284 444.6999999999999318 142.1000000000000512 442.2999999999999545 142.1000000000000512 c +439.8999999999999773 142.1000000000000512 437.6999999999999318 142.5000000000000568 435.7999999999999545 143.3000000000000398 c +433.8999999999999773 144.1000000000000512 432.1999999999999318 145.3000000000000398 430.8999999999999773 146.7000000000000455 c +429.5999999999999659 148.1000000000000512 428.5 149.9000000000000341 427.7999999999999545 151.9000000000000341 c +427.0999999999999659 153.9000000000000341 426.6999999999999318 156.1000000000000227 426.6999999999999318 158.5000000000000284 c +426.6999999999999318 160.9000000000000341 427.0999999999999091 163.1000000000000227 427.7999999999999545 165.1000000000000227 c +428.4999999999999432 167.1000000000000227 429.5999999999999659 168.9000000000000341 430.8999999999999773 170.3000000000000114 c +432.1999999999999886 171.7000000000000171 433.8999999999999773 172.9000000000000057 435.7999999999999545 173.7000000000000171 c +437.6999999999999318 174.5000000000000284 439.8999999999999773 174.9000000000000057 442.2999999999999545 174.9000000000000057 c +h +478.9999999999999432 117.8000000000000114 m +478.9999999999999432 116.0000000000000142 479.5999999999999659 114.5000000000000142 480.8999999999999204 113.2000000000000171 c +482.1999999999999318 111.9000000000000199 483.6999999999999318 111.3000000000000114 485.4999999999999432 111.3000000000000114 c +487.2999999999999545 111.3000000000000114 488.7999999999999545 111.9000000000000057 490.0999999999999659 113.2000000000000171 c +491.3999999999999773 114.5000000000000142 491.9999999999999432 116.0000000000000142 491.9999999999999432 117.8000000000000114 c +491.9999999999999432 119.6000000000000085 491.3999999999999204 121.1000000000000085 490.0999999999999659 122.4000000000000057 c +488.7999999999999545 123.7000000000000028 487.2999999999999545 124.3000000000000114 485.4999999999999432 124.3000000000000114 c +483.6999999999999318 124.3000000000000114 482.1999999999999318 123.7000000000000171 480.8999999999999204 122.4000000000000057 c +479.6999999999999318 121.1000000000000085 478.9999999999999432 119.6000000000000085 478.9999999999999432 117.8000000000000114 c +h +481.0999999999999659 134.8000000000000114 m +490.0999999999999659 134.8000000000000114 l +490.0999999999999659 182.1000000000000227 l +481.0999999999999659 182.1000000000000227 l +481.0999999999999659 134.8000000000000114 l +h +504.5999999999999659 140.5 m +507.0999999999999659 138.1999999999999886 510.0999999999999659 136.4000000000000057 513.3999999999999773 135.3000000000000114 c +516.6999999999999318 134.1000000000000227 520.1000000000000227 133.6000000000000227 523.3999999999999773 133.6000000000000227 c +526.8999999999999773 133.6000000000000227 529.7999999999999545 134.0000000000000284 532.2999999999999545 134.9000000000000341 c +534.7999999999999545 135.8000000000000398 536.7999999999999545 136.9000000000000341 538.3999999999999773 138.4000000000000341 c +540. 139.9000000000000341 541.1999999999999318 141.5000000000000284 541.8999999999999773 143.4000000000000341 c +542.6999999999999318 145.3000000000000398 543. 147.3000000000000398 543. 149.3000000000000398 c +543. 173.5000000000000284 l +543. 175.2000000000000171 543. 176.7000000000000171 543.1000000000000227 178.1000000000000227 c +543.2000000000000455 179.5000000000000284 543.3000000000000682 180.8000000000000114 543.3999999999999773 182.1000000000000227 c +535.3999999999999773 182.1000000000000227 l +535.1999999999999318 179.7000000000000171 535.1000000000000227 177.3000000000000114 535.1000000000000227 174.9000000000000341 c +535. 174.9000000000000341 l +533. 178.0000000000000284 530.6000000000000227 180.1000000000000227 527.8999999999999773 181.4000000000000341 c +525.1999999999999318 182.7000000000000455 522. 183.3000000000000398 518.3999999999999773 183.3000000000000398 c +516.1999999999999318 183.3000000000000398 514.1000000000000227 183.0000000000000284 512.1000000000000227 182.4000000000000341 c +510.1000000000000227 181.8000000000000398 508.4000000000000341 180.9000000000000341 506.9000000000000341 179.7000000000000455 c +505.4000000000000341 178.5000000000000568 504.2000000000000455 177.0000000000000568 503.4000000000000341 175.3000000000000398 c +502.5000000000000568 173.5000000000000284 502.1000000000000227 171.5000000000000284 502.1000000000000227 169.2000000000000455 c +502.1000000000000227 166.1000000000000512 502.8000000000000114 163.6000000000000512 504.1000000000000227 161.5000000000000568 c +505.5 159.4000000000000625 507.3000000000000114 157.8000000000000682 509.7000000000000455 156.5000000000000568 c +512.1000000000000227 155.2000000000000455 514.8000000000000682 154.3000000000000682 518. 153.7000000000000455 c +521.2000000000000455 153.1000000000000512 524.5 152.9000000000000341 528.1000000000000227 152.9000000000000341 c +534.7000000000000455 152.9000000000000341 l +534.7000000000000455 150.9000000000000341 l +534.7000000000000455 149.7000000000000455 534.5 148.5000000000000284 534. 147.3000000000000398 c +533.5 146.1000000000000512 532.7999999999999545 145.0000000000000284 531.8999999999999773 144.1000000000000512 c +531. 143.1000000000000512 529.7999999999999545 142.4000000000000625 528.3999999999999773 141.8000000000000398 c +527. 141.2000000000000455 525.2999999999999545 141.0000000000000284 523.3999999999999773 141.0000000000000284 c +521.6999999999999318 141.0000000000000284 520.1999999999999318 141.2000000000000171 518.8999999999999773 141.5000000000000284 c +517.6000000000000227 141.8000000000000398 516.3999999999999773 142.2000000000000171 515.3999999999999773 142.7000000000000171 c +514.2999999999999545 143.2000000000000171 513.3999999999999773 143.8000000000000114 512.5 144.4000000000000057 c +511.6000000000000227 145.0999999999999943 510.8000000000000114 145.7000000000000171 510. 146.3000000000000114 c +504.6000000000000227 140.5 l +h +529.8999999999999773 159.3000000000000114 m +527.7999999999999545 159.3000000000000114 525.6000000000000227 159.4000000000000057 523.3999999999999773 159.6000000000000227 c +521.1999999999999318 159.8000000000000114 519.1000000000000227 160.3000000000000114 517.2999999999999545 160.9000000000000341 c +515.5 161.6000000000000227 514. 162.5000000000000284 512.7999999999999545 163.7000000000000455 c +511.5999999999999659 164.9000000000000341 511.0999999999999659 166.4000000000000341 511.0999999999999659 168.3000000000000398 c +511.0999999999999659 171.0000000000000284 511.9999999999999432 173.0000000000000284 513.7999999999999545 174.2000000000000455 c +515.5999999999999091 175.4000000000000341 518.0999999999999091 176.0000000000000568 521.1999999999999318 176.0000000000000568 c +523.6999999999999318 176.0000000000000568 525.7999999999999545 175.6000000000000512 527.4999999999998863 174.8000000000000682 c +529.1999999999999318 174.0000000000000568 530.5999999999999091 172.9000000000000625 531.6999999999999318 171.6000000000000796 c +532.7999999999999545 170.3000000000000682 533.4999999999998863 168.8000000000000682 533.9999999999998863 167.2000000000000739 c +534.4999999999998863 165.6000000000000796 534.6999999999999318 164.0000000000000853 534.6999999999999318 162.4000000000000625 c +534.6999999999999318 159.4000000000000625 l +529.8999999999999773 159.4000000000000625 l +529.8999999999999773 159.3000000000000682 l +h +603.6000000000000227 181.7000000000000171 m +603.6000000000000227 185.3000000000000114 603. 188.6000000000000227 601.8000000000000682 191.5000000000000284 c +600.6000000000000227 194.5000000000000284 598.8000000000000682 197.0000000000000284 596.6000000000000227 199.2000000000000171 c +594.3000000000000682 201.4000000000000057 591.6000000000000227 203.0000000000000284 588.3999999999999773 204.2000000000000171 c +585.1999999999999318 205.4000000000000057 581.6999999999999318 206.0000000000000284 577.7999999999999545 206.0000000000000284 c +573.2999999999999545 206.0000000000000284 569.0999999999999091 205.4000000000000341 565.3999999999999773 204.1000000000000227 c +561.6000000000000227 202.8000000000000114 558.1000000000000227 200.6000000000000227 554.6999999999999318 197.5000000000000284 c +560.7999999999999545 189.9000000000000341 l +563.0999999999999091 192.4000000000000341 565.6999999999999318 194.3000000000000398 568.3999999999999773 195.6000000000000227 c +571.1000000000000227 196.9000000000000341 574.1999999999999318 197.5000000000000284 577.6999999999999318 197.5000000000000284 c +580.9999999999998863 197.5000000000000284 583.7999999999999545 197.0000000000000284 585.9999999999998863 196.1000000000000227 c +588.1999999999999318 195.1000000000000227 589.8999999999998636 193.9000000000000341 591.1999999999999318 192.4000000000000341 c +592.4999999999998863 190.9000000000000341 593.3999999999999773 189.1000000000000227 593.8999999999999773 187.2000000000000455 c +594.3999999999999773 185.2000000000000455 594.6999999999999318 183.3000000000000398 594.6999999999999318 181.3000000000000398 c +594.6999999999999318 174.3000000000000398 l +594.3999999999999773 174.3000000000000398 l +592.6999999999999318 177.2000000000000455 590.2999999999999545 179.3000000000000398 587.3999999999999773 180.6000000000000512 c +584.3999999999999773 182.0000000000000568 581.2999999999999545 182.6000000000000512 578.1000000000000227 182.6000000000000512 c +574.6000000000000227 182.6000000000000512 571.3999999999999773 182.0000000000000568 568.5 180.8000000000000398 c +565.5 179.6000000000000512 563. 177.9000000000000341 560.8999999999999773 175.7000000000000455 c +558.7999999999999545 173.5000000000000568 557.1000000000000227 171.0000000000000568 555.8999999999999773 168.0000000000000568 c +554.6999999999999318 165.0000000000000568 554.1000000000000227 161.8000000000000682 554.1000000000000227 158.4000000000000625 c +554.1000000000000227 154.9000000000000625 554.7000000000000455 151.7000000000000739 555.8000000000000682 148.7000000000000739 c +556.9000000000000909 145.7000000000000739 558.5000000000001137 143.0000000000000853 560.6000000000000227 140.8000000000000682 c +562.7000000000000455 138.5000000000000568 565.2000000000000455 136.8000000000000682 568.2000000000000455 135.5000000000000568 c +571.2000000000000455 134.2000000000000455 574.5 133.6000000000000512 578.1000000000000227 133.6000000000000512 c +581.3000000000000682 133.6000000000000512 584.3999999999999773 134.3000000000000398 587.3999999999999773 135.7000000000000455 c +590.3999999999999773 137.1000000000000512 592.7999999999999545 139.1000000000000512 594.5 141.6000000000000512 c +594.7000000000000455 141.6000000000000512 l +594.7000000000000455 134.8000000000000398 l +603.7000000000000455 134.8000000000000398 l +603.6000000000000227 181.7000000000000455 l +h +579.1000000000000227 141.9000000000000341 m +576.7000000000000455 141.9000000000000341 574.5 142.3000000000000398 572.6000000000000227 143.1000000000000227 c +570.7000000000000455 143.9000000000000341 569. 145.1000000000000227 567.7000000000000455 146.5000000000000284 c +566.4000000000000909 147.9000000000000341 565.3000000000000682 149.7000000000000171 564.6000000000000227 151.7000000000000171 c +563.8999999999999773 153.7000000000000171 563.5 155.9000000000000057 563.5 158.3000000000000114 c +563.5 163.1000000000000227 564.8999999999999773 166.9000000000000057 567.7000000000000455 169.8000000000000114 c +570.5 172.7000000000000171 574.3000000000000682 174.1000000000000227 579.1000000000000227 174.1000000000000227 c +583.8999999999999773 174.1000000000000227 587.7000000000000455 172.7000000000000171 590.5 169.8000000000000114 c +593.2999999999999545 166.9000000000000057 594.7000000000000455 163.1000000000000227 594.7000000000000455 158.3000000000000114 c +594.7000000000000455 155.9000000000000057 594.3000000000000682 153.7000000000000171 593.6000000000000227 151.7000000000000171 c +592.8999999999999773 149.7000000000000171 591.8000000000000682 147.9000000000000057 590.5 146.5000000000000284 c +589.2000000000000455 145.1000000000000227 587.5 143.9000000000000341 585.6000000000000227 143.1000000000000227 c +583.6000000000000227 142.4000000000000341 581.5 141.9000000000000341 579.1000000000000227 141.9000000000000341 c +h +617.2000000000000455 134.8000000000000398 m +626.2000000000000455 134.8000000000000398 l +626.2000000000000455 142.1000000000000512 l +626.4000000000000909 142.1000000000000512 l +627.0000000000001137 140.8000000000000398 627.8000000000000682 139.7000000000000455 628.8000000000000682 138.7000000000000455 c +629.8000000000000682 137.7000000000000455 630.9000000000000909 136.8000000000000398 632.1000000000000227 136.1000000000000512 c +633.3000000000000682 135.4000000000000625 634.7000000000000455 134.8000000000000398 636.1000000000000227 134.4000000000000625 c +637.6000000000000227 134.0000000000000568 639. 133.8000000000000682 640.5 133.8000000000000682 c +642. 133.8000000000000682 643.2999999999999545 134.0000000000000568 644.5 134.4000000000000625 c +644.1000000000000227 144.1000000000000512 l +643.3999999999999773 143.9000000000000625 642.6000000000000227 143.7000000000000455 641.8999999999999773 143.6000000000000512 c +641.1999999999999318 143.5000000000000568 640.3999999999999773 143.4000000000000625 639.6999999999999318 143.4000000000000625 c +635.2999999999999545 143.4000000000000625 631.8999999999999773 144.6000000000000512 629.5999999999999091 147.1000000000000512 c +627.2999999999999545 149.6000000000000512 626.0999999999999091 153.4000000000000625 626.0999999999999091 158.6000000000000512 c +626.0999999999999091 182.4000000000000625 l +617.0999999999999091 182.4000000000000625 l +617.1999999999999318 134.8000000000000682 l +h +654.3000000000000682 140.5000000000000284 m +656.8000000000000682 138.2000000000000171 659.8000000000000682 136.4000000000000341 663.1000000000000227 135.3000000000000398 c +666.3999999999999773 134.1000000000000512 669.8000000000000682 133.6000000000000512 673.1000000000000227 133.6000000000000512 c +676.6000000000000227 133.6000000000000512 679.5 134.0000000000000568 682. 134.9000000000000625 c +684.5 135.8000000000000682 686.5 136.9000000000000625 688.1000000000000227 138.4000000000000625 c +689.7000000000000455 139.9000000000000625 690.8999999999999773 141.5000000000000568 691.6000000000000227 143.4000000000000625 c +692.3999999999999773 145.3000000000000682 692.7000000000000455 147.3000000000000682 692.7000000000000455 149.3000000000000682 c +692.7000000000000455 173.5000000000000568 l +692.7000000000000455 175.2000000000000455 692.7000000000000455 176.7000000000000455 692.8000000000000682 178.1000000000000512 c +692.9000000000000909 179.5000000000000568 693.0000000000001137 180.8000000000000398 693.1000000000000227 182.1000000000000512 c +685.1000000000000227 182.1000000000000512 l +684.8999999999999773 179.7000000000000455 684.8000000000000682 177.3000000000000398 684.8000000000000682 174.9000000000000625 c +684.6000000000000227 174.9000000000000625 l +682.6000000000000227 178.0000000000000568 680.2000000000000455 180.1000000000000512 677.5 181.4000000000000625 c +674.7999999999999545 182.7000000000000739 671.6000000000000227 183.3000000000000682 668. 183.3000000000000682 c +665.7999999999999545 183.3000000000000682 663.7000000000000455 183.0000000000000568 661.7000000000000455 182.4000000000000625 c +659.7000000000000455 181.8000000000000682 658. 180.9000000000000625 656.5 179.7000000000000739 c +655. 178.5000000000000853 653.7999999999999545 177.0000000000000853 653. 175.3000000000000682 c +652.1000000000000227 173.5000000000000568 651.7000000000000455 171.5000000000000568 651.7000000000000455 169.2000000000000739 c +651.7000000000000455 166.1000000000000796 652.4000000000000909 163.6000000000000796 653.7000000000000455 161.5000000000000853 c +655.1000000000000227 159.4000000000000909 656.9000000000000909 157.8000000000000966 659.3000000000000682 156.5000000000000853 c +661.7000000000000455 155.2000000000000739 664.4000000000000909 154.3000000000000966 667.6000000000000227 153.7000000000000739 c +670.8000000000000682 153.1000000000000796 674.1000000000000227 152.9000000000000625 677.7000000000000455 152.9000000000000625 c +684.3000000000000682 152.9000000000000625 l +684.3000000000000682 150.9000000000000625 l +684.3000000000000682 149.7000000000000739 684.1000000000000227 148.5000000000000568 683.6000000000000227 147.3000000000000682 c +683.1000000000000227 146.1000000000000796 682.3999999999999773 145.0000000000000568 681.5 144.1000000000000796 c +680.6000000000000227 143.1000000000000796 679.3999999999999773 142.4000000000000909 678. 141.8000000000000682 c +676.6000000000000227 141.2000000000000739 674.8999999999999773 141.0000000000000568 673. 141.0000000000000568 c +671.2999999999999545 141.0000000000000568 669.7999999999999545 141.2000000000000455 668.5 141.5000000000000568 c +667.2000000000000455 141.8000000000000682 666. 142.2000000000000455 665. 142.7000000000000455 c +663.8999999999999773 143.2000000000000455 663. 143.8000000000000398 662.1000000000000227 144.4000000000000341 c +661.2000000000000455 145.1000000000000227 660.3999999999999773 145.7000000000000455 659.6000000000000227 146.3000000000000398 c +654.3000000000000682 140.5000000000000284 l +h +679.7000000000000455 159.3000000000000398 m +677.6000000000000227 159.3000000000000398 675.4000000000000909 159.4000000000000341 673.2000000000000455 159.6000000000000512 c +671. 159.8000000000000398 668.9000000000000909 160.3000000000000398 667.1000000000000227 160.9000000000000625 c +665.3000000000000682 161.6000000000000512 663.8000000000000682 162.5000000000000568 662.6000000000000227 163.7000000000000739 c +661.3999999999999773 164.9000000000000625 660.8999999999999773 166.4000000000000625 660.8999999999999773 168.3000000000000682 c +660.8999999999999773 171.0000000000000568 661.7999999999999545 173.0000000000000568 663.6000000000000227 174.2000000000000739 c +665.3999999999999773 175.4000000000000625 667.8999999999999773 176.0000000000000853 671. 176.0000000000000853 c +673.5 176.0000000000000853 675.6000000000000227 175.6000000000000796 677.2999999999999545 174.8000000000000966 c +679. 174.0000000000000853 680.3999999999999773 172.9000000000000909 681.5 171.600000000000108 c +682.6000000000000227 170.3000000000000966 683.2999999999999545 168.8000000000000966 683.7999999999999545 167.2000000000001023 c +684.2999999999999545 165.600000000000108 684.5 164.0000000000001137 684.5 162.4000000000000909 c +684.5 159.4000000000000909 l +679.7000000000000455 159.4000000000000909 l +679.7000000000000455 159.3000000000000966 l +h +705.9000000000000909 134.8000000000000398 m +714.3000000000000682 134.8000000000000398 l +714.3000000000000682 142.2000000000000455 l +714.5000000000001137 142.2000000000000455 l +714.7000000000001592 141.5000000000000568 715.2000000000001592 140.7000000000000455 716.0000000000001137 139.7000000000000455 c +716.8000000000000682 138.7000000000000455 717.9000000000000909 137.8000000000000398 719.2000000000001592 136.9000000000000341 c +720.5000000000001137 136.0000000000000284 722.0000000000001137 135.2000000000000455 723.8000000000001819 134.6000000000000227 c +725.6000000000001364 134.0000000000000284 727.5000000000002274 133.7000000000000171 729.6000000000001364 133.7000000000000171 c +733.1000000000001364 133.7000000000000171 736.1000000000001364 134.4000000000000057 738.5000000000001137 135.9000000000000057 c +740.9000000000000909 137.4000000000000057 742.9000000000000909 139.5999999999999943 744.4000000000000909 142.5 c +745.9000000000000909 139.5999999999999943 748.1000000000001364 137.4000000000000057 750.9000000000000909 135.9000000000000057 c +753.7000000000000455 134.4000000000000057 756.5000000000001137 133.7000000000000171 759.4000000000000909 133.7000000000000171 c +763.1000000000001364 133.7000000000000171 766.1000000000001364 134.3000000000000114 768.4000000000000909 135.5000000000000284 c +770.7000000000000455 136.7000000000000171 772.6000000000001364 138.3000000000000398 773.9000000000000909 140.2000000000000171 c +775.2000000000000455 142.2000000000000171 776.1000000000001364 144.4000000000000057 776.6000000000001364 146.9000000000000057 c +777.1000000000001364 149.4000000000000057 777.3000000000001819 152. 777.3000000000001819 154.5999999999999943 c +777.3000000000001819 182.1999999999999886 l +768.3000000000001819 182.1999999999999886 l +768.3000000000001819 155.7999999999999829 l +768.3000000000001819 153.9999999999999716 768.2000000000001592 152.2999999999999829 768.0000000000002274 150.5999999999999943 c +767.8000000000001819 148.9000000000000057 767.3000000000001819 147.5 766.6000000000002501 146.1999999999999886 c +765.9000000000002046 144.8999999999999773 764.8000000000002956 143.8999999999999773 763.5000000000002274 143.1999999999999886 c +762.2000000000002728 142.3999999999999773 760.4000000000002046 142.0999999999999943 758.2000000000002728 142.0999999999999943 c +753.9000000000003183 142.0999999999999943 750.8000000000002956 143.4000000000000057 748.9000000000003183 146.0999999999999943 c +747.0000000000003411 148.7999999999999829 746.1000000000003638 152.1999999999999886 746.1000000000003638 156.4000000000000057 c +746.1000000000003638 182.3000000000000114 l +737.1000000000003638 182.3000000000000114 l +737.1000000000003638 157.5 l +737.1000000000003638 155.1999999999999886 737.0000000000003411 153.1999999999999886 736.8000000000004093 151.3000000000000114 c +736.6000000000003638 149.4000000000000057 736.1000000000003638 147.8000000000000114 735.400000000000432 146.5 c +734.7000000000003865 145.0999999999999943 733.7000000000003865 144.0999999999999943 732.400000000000432 143.3000000000000114 c +731.1000000000004775 142.5 729.400000000000432 142.2000000000000171 727.2000000000003865 142.2000000000000171 c +725.6000000000003638 142.2000000000000171 724.1000000000003638 142.5000000000000284 722.6000000000003638 143.1000000000000227 c +721.1000000000003638 143.7000000000000171 719.8000000000004093 144.7000000000000171 718.7000000000003865 145.9000000000000341 c +717.6000000000003638 147.2000000000000455 716.7000000000003865 148.8000000000000398 716.0000000000003411 150.7000000000000455 c +715.3000000000002956 152.7000000000000455 715.0000000000003411 155.0000000000000568 715.0000000000003411 157.6000000000000512 c +715.0000000000003411 182.2000000000000455 l +706.0000000000003411 182.2000000000000455 l +706.0000000000003411 134.8000000000000398 l +705.9000000000003183 134.8000000000000398 l +h +f +Q +q +0.26 0.55 1. rg +0.2 0. 0. 0.2 0. 0. cm +798.1000000000000227 182.6999999999999886 m +796.3000000000000682 182.6999999999999886 794.8000000000000682 182.0999999999999943 793.5 180.7999999999999829 c +792.2000000000000455 179.4999999999999716 791.6000000000000227 177.9999999999999716 791.6000000000000227 176.1999999999999886 c +791.6000000000000227 174.3999999999999773 792.2000000000000455 172.8999999999999773 793.5 171.5999999999999943 c +794.7999999999999545 170.2999999999999829 796.2999999999999545 169.6999999999999886 798.1000000000000227 169.6999999999999886 c +799.8999999999999773 169.6999999999999886 801.3999999999999773 170.2999999999999829 802.7000000000000455 171.5999999999999943 c +804. 172.9000000000000057 804.6000000000000227 174.4000000000000057 804.6000000000000227 176.1999999999999886 c +804.6000000000000227 178. 804. 179.5 802.7000000000000455 180.7999999999999829 c +801.4000000000000909 181.9999999999999716 799.9000000000000909 182.6999999999999886 798.1000000000000227 182.6999999999999886 c +h +817.3000000000000682 117.7999999999999829 m +817.3000000000000682 115.9999999999999858 817.9000000000000909 114.4999999999999858 819.2000000000000455 113.1999999999999886 c +820.5 111.8999999999999915 822. 111.2999999999999829 823.8000000000000682 111.2999999999999829 c +825.6000000000000227 111.2999999999999829 827.1000000000000227 111.8999999999999773 828.4000000000000909 113.1999999999999886 c +829.7000000000000455 114.4999999999999858 830.3000000000000682 115.9999999999999858 830.3000000000000682 117.7999999999999829 c +830.3000000000000682 119.5999999999999801 829.7000000000000455 121.0999999999999801 828.4000000000000909 122.3999999999999773 c +827.1000000000001364 123.6999999999999744 825.6000000000001364 124.2999999999999829 823.8000000000000682 124.2999999999999829 c +822.0000000000001137 124.2999999999999829 820.5000000000001137 123.6999999999999886 819.2000000000000455 122.3999999999999773 c +818. 121.0999999999999801 817.3000000000000682 119.5999999999999801 817.3000000000000682 117.7999999999999829 c +h +819.4000000000000909 134.7999999999999829 m +828.4000000000000909 134.7999999999999829 l +828.4000000000000909 182.0999999999999659 l +819.4000000000000909 182.0999999999999659 l +819.4000000000000909 134.7999999999999545 l +h +840.4000000000000909 158.3999999999999773 m +840.4000000000000909 154.8999999999999773 841.0000000000001137 151.6999999999999886 842.3000000000000682 148.6999999999999886 c +843.6000000000000227 145.6999999999999886 845.4000000000000909 143.0999999999999943 847.6000000000000227 140.7999999999999829 c +849.8999999999999773 138.4999999999999716 852.5 136.7999999999999829 855.6000000000000227 135.4999999999999716 c +858.7000000000000455 134.1999999999999602 862. 133.5999999999999659 865.5 133.5999999999999659 c +869. 133.5999999999999659 872.2999999999999545 134.1999999999999602 875.3999999999999773 135.4999999999999716 c +878.5 136.7999999999999829 881.1000000000000227 138.5999999999999659 883.3999999999999773 140.7999999999999829 c +885.6999999999999318 143.0999999999999943 887.3999999999999773 145.6999999999999886 888.6999999999999318 148.6999999999999886 c +889.9999999999998863 151.6999999999999886 890.5999999999999091 154.8999999999999773 890.5999999999999091 158.3999999999999773 c +890.5999999999999091 161.8999999999999773 889.9999999999998863 165.0999999999999659 888.6999999999999318 168.0999999999999659 c +887.3999999999999773 171.0999999999999659 885.5999999999999091 173.7999999999999545 883.3999999999999773 175.9999999999999716 c +881.1000000000000227 178.1999999999999602 878.5 179.9999999999999716 875.3999999999999773 181.2999999999999829 c +872.2999999999999545 182.5999999999999943 869. 183.1999999999999886 865.5 183.1999999999999886 c +862. 183.1999999999999886 858.7000000000000455 182.5999999999999943 855.6000000000000227 181.2999999999999829 c +852.5 179.9999999999999716 849.8999999999999773 178.1999999999999886 847.6000000000000227 175.9999999999999716 c +845.3000000000000682 173.7999999999999829 843.6000000000000227 171.0999999999999659 842.3000000000000682 168.0999999999999659 c +841.1000000000000227 165.0999999999999659 840.4000000000000909 161.8999999999999773 840.4000000000000909 158.3999999999999773 c +h +850.0000000000001137 158.3999999999999773 m +850.0000000000001137 160.7999999999999829 850.4000000000000909 162.9999999999999716 851.1000000000001364 164.9999999999999716 c +851.8000000000001819 166.9999999999999716 852.9000000000000909 168.7999999999999829 854.2000000000001592 170.1999999999999602 c +855.5000000000001137 171.5999999999999659 857.2000000000001592 172.7999999999999545 859.1000000000001364 173.5999999999999659 c +861.0000000000001137 174.3999999999999773 863.2000000000001592 174.7999999999999545 865.6000000000001364 174.7999999999999545 c +868.0000000000001137 174.7999999999999545 870.2000000000001592 174.3999999999999488 872.1000000000001364 173.5999999999999659 c +874.0000000000001137 172.7999999999999545 875.7000000000001592 171.5999999999999659 877.0000000000001137 170.1999999999999602 c +878.3000000000000682 168.7999999999999545 879.4000000000000909 166.9999999999999716 880.1000000000001364 164.9999999999999716 c +880.8000000000001819 162.9999999999999716 881.2000000000001592 160.7999999999999829 881.2000000000001592 158.3999999999999773 c +881.2000000000001592 155.9999999999999716 880.8000000000001819 153.7999999999999829 880.1000000000001364 151.7999999999999829 c +879.4000000000000909 149.7999999999999829 878.3000000000001819 147.9999999999999716 877.0000000000001137 146.5999999999999943 c +875.7000000000001592 145.1999999999999886 874.0000000000001137 144. 872.1000000000001364 143.1999999999999886 c +870.2000000000001592 142.3999999999999773 868.0000000000001137 142. 865.6000000000001364 142. c +863.2000000000001592 142. 861.0000000000001137 142.4000000000000057 859.1000000000001364 143.1999999999999886 c +857.2000000000001592 144. 855.5000000000001137 145.1999999999999886 854.2000000000001592 146.5999999999999943 c +852.9000000000002046 148. 851.8000000000001819 149.7999999999999829 851.1000000000001364 151.7999999999999829 c +850.4000000000000909 153.7999999999999829 850.0000000000001137 155.9999999999999716 850.0000000000001137 158.3999999999999773 c +h +f +Q +Q +Q +Q +Q +q +1. 0. 0. -1. 0. 1080. cm +q +1. 0. 0. 1. 192.8316777393960137 50. cm +1. w +0. g +q +1. 0. 0. 1. 0. 0. cm +0. 0. 1534.3366445212079725 980. re +W +n +q +q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.7021471261894021 138. 215.3657344736432435 449. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.7021471261894021 138. cm +110.9912923259820587 54. m +106.9912923259820587 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 412. l +26. 418.6666666666666856 29.3333333333333357 422. 36. 422. c +172.3657344736432435 422. l +182.3657344736432435 422. l +182.3657344736432435 422. l +172.3657344736432435 422. l +36. 422. l +29.3333333333333357 422. 26. 418.6666666666666856 26. 412. c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +106.9912923259820587 54. l +110.9912923259820587 54. l +h +116.9912923259820587 54. m +126.9912923259820587 54. l +182.3657344736432435 422. m +192.3657344736432435 422. l +113.9912923259820587 54. m +116.9912923259820587 54. m +116.9336481671917483 54.5852709660483839 l +116.7629309235159241 55.1480502970952671 l +116.485701162889697 55.6667106990588039 l +116.1126126695417042 56.1213203435596455 l +115.6580030250408697 56.4944088369076383 l +115.1393426230773258 56.7716385975338582 l +114.5765632920304427 56.9423558412096895 l +113.9912923259820587 57. l +113.4060213599336748 56.9423558412096895 l +112.8432420288867917 56.7716385975338582 l +112.3245816269232478 56.4944088369076383 l +111.8699719824224132 56.1213203435596455 l +111.4968834890744205 55.6667106990588039 l +111.2196537284481934 55.1480502970952671 l +111.0489364847723692 54.5852709660483839 l +110.9912923259820587 54. l +111.0489364847723692 53.4147290339516161 l +111.2196537284481934 52.8519497029047329 l +111.4968834890744205 52.3332893009411961 l +111.8699719824224132 51.8786796564403545 l +112.3245816269232478 51.5055911630923617 l +112.8432420288867917 51.2283614024661418 l +113.4060213599336748 51.0576441587903105 l +113.9912923259820587 51. l +114.5765632920304427 51.0576441587903105 l +115.1393426230773258 51.2283614024661418 l +115.6580030250408697 51.5055911630923617 l +116.1126126695417042 51.8786796564403545 l +116.485701162889697 52.3332893009411961 l +116.7629309235159241 52.8519497029047258 l +116.9336481671917483 53.4147290339516161 l +116.9912923259820587 54. l +182.3657344736432435 418. m +182.3657344736432435 426. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 513.0629987873326172 555. Tm +<0014> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.702147126189459 138. 149.9912923259819877 593. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.702147126189459 138. cm +110.9912923259820019 54. m +106.9912923259820019 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 556. l +26. 562.6666666666666288 29.3333333333333357 566. 36. 566. c +82.689222761946553 566. l +92.689222761946553 566. l +92.689222761946553 566. l +82.689222761946553 566. l +36. 566. l +29.3333333333333357 566. 26. 562.6666666666666288 26. 556. c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +106.9912923259820019 54. l +110.9912923259820019 54. l +h +116.9912923259820019 54. m +126.9912923259820019 54. l +92.689222761946553 566. m +102.689222761946553 566. l +113.9912923259820019 54. m +116.9912923259820019 54. m +116.9336481671916914 54.5852709660483839 l +116.7629309235158672 55.1480502970952671 l +116.4857011628896402 55.6667106990588039 l +116.1126126695416474 56.1213203435596455 l +115.6580030250408129 56.4944088369076383 l +115.139342623077269 56.7716385975338582 l +114.5765632920303858 56.9423558412096895 l +113.9912923259820019 57. l +113.406021359933618 56.9423558412096895 l +112.8432420288867348 56.7716385975338582 l +112.3245816269231909 56.4944088369076383 l +111.8699719824223564 56.1213203435596455 l +111.4968834890743636 55.6667106990588039 l +111.2196537284481366 55.1480502970952671 l +111.0489364847723124 54.5852709660483839 l +110.9912923259820019 54. l +111.0489364847723124 53.4147290339516161 l +111.2196537284481366 52.8519497029047329 l +111.4968834890743636 52.3332893009411961 l +111.8699719824223564 51.8786796564403545 l +112.3245816269231909 51.5055911630923617 l +112.8432420288867348 51.2283614024661418 l +113.406021359933618 51.0576441587903105 l +113.9912923259820019 51. l +114.5765632920303858 51.0576441587903105 l +115.139342623077269 51.2283614024661418 l +115.6580030250408129 51.5055911630923617 l +116.1126126695416474 51.8786796564403545 l +116.4857011628896402 52.3332893009411961 l +116.7629309235158672 52.8519497029047258 l +116.9336481671916914 53.4147290339516161 l +116.9912923259820019 54. l +92.689222761946553 562. m +92.689222761946553 570. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 423.3864870756360119 699. Tm +<0014> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.702147126189459 138. 1464.7500901791408978 1006.1275585178767642 re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.702147126189459 138. cm +110.9912923259820019 54. m +106.9912923259820019 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 969.1275585178767642 l +26. 975.794225184543393 29.3333333333333357 979.1275585178767642 36. 979.1275585178767642 c +1431.7500901791408978 979.1275585178767642 l +1438.4167568458076403 979.1275585178767642 1441.7500901791408978 975.794225184543393 1441.7500901791408978 969.1275585178767642 c +1441.7500901791408978 440. l +1441.7500901791408978 433.3333333333333144 1438.4167568458076403 430. 1431.7500901791408978 430. c +1363.4144186041867215 430. l +1353.4144186041867215 430. l +1353.4144186041867215 430. l +1363.4144186041867215 430. l +1431.7500901791408978 430. l +1438.4167568458076403 430. 1441.7500901791408978 433.3333333333333144 1441.7500901791408978 440. c +1441.7500901791408978 969.1275585178767642 l +1441.7500901791408978 975.794225184543393 1438.4167568458076403 979.1275585178767642 1431.7500901791408978 979.1275585178767642 c +36. 979.1275585178767642 l +29.3333333333333357 979.1275585178767642 26. 975.794225184543393 26. 969.1275585178767642 c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +106.9912923259820019 54. l +110.9912923259820019 54. l +h +116.9912923259820019 54. m +126.9912923259820019 54. l +1353.4144186041867215 430. m +1343.4144186041867215 430. l +113.9912923259820019 54. m +116.9912923259820019 54. m +116.9336481671916914 54.5852709660483839 l +116.7629309235158672 55.1480502970952671 l +116.4857011628896402 55.6667106990588039 l +116.1126126695416474 56.1213203435596455 l +115.6580030250408129 56.4944088369076383 l +115.139342623077269 56.7716385975338582 l +114.5765632920303858 56.9423558412096895 l +113.9912923259820019 57. l +113.406021359933618 56.9423558412096895 l +112.8432420288867348 56.7716385975338582 l +112.3245816269231909 56.4944088369076383 l +111.8699719824223564 56.1213203435596455 l +111.4968834890743636 55.6667106990588039 l +111.2196537284481366 55.1480502970952671 l +111.0489364847723124 54.5852709660483839 l +110.9912923259820019 54. l +111.0489364847723124 53.4147290339516161 l +111.2196537284481366 52.8519497029047329 l +111.4968834890743636 52.3332893009411961 l +111.8699719824223564 51.8786796564403545 l +112.3245816269231909 51.5055911630923617 l +112.8432420288867348 51.2283614024661418 l +113.406021359933618 51.0576441587903105 l +113.9912923259820019 51. l +114.5765632920303858 51.0576441587903105 l +115.139342623077269 51.2283614024661418 l +115.6580030250408129 51.5055911630923617 l +116.1126126695416474 51.8786796564403545 l +116.4857011628896402 52.3332893009411961 l +116.7629309235158672 52.8519497029047258 l +116.9336481671916914 53.4147290339516161 l +116.9912923259820019 54. l +1343.4144186041867215 426. m +1352.4144186041867215 430. l +1343.4144186041867215 434. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1678.1165657303761236 563. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.7021471261896295 138. 1141.4567517083128223 1006.1275585178767642 re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.7021471261896295 138. cm +110.9912923259818314 54. m +106.9912923259818314 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 969.1275585178767642 l +26. 975.794225184543393 29.3333333333333357 979.1275585178767642 36. 979.1275585178767642 c +1041.4480179582826622 979.1275585178767642 l +1048.1146846249494047 979.1275585178767642 1051.4480179582826622 975.794225184543393 1051.4480179582826622 969.1275585178767642 c +1051.4480179582826622 896. l +1051.4480179582826622 889.3333333333333712 1054.7813512916159198 886. 1061.4480179582826622 886. c +1098.4567517083128223 886. l +1108.4567517083128223 886. l +1108.4567517083128223 886. l +1098.4567517083128223 886. l +1061.4480179582826622 886. l +1054.7813512916159198 886. 1051.4480179582826622 889.3333333333333712 1051.4480179582826622 896. c +1051.4480179582826622 969.1275585178767642 l +1051.4480179582826622 975.794225184543393 1048.1146846249494047 979.1275585178767642 1041.4480179582826622 979.1275585178767642 c +36. 979.1275585178767642 l +29.3333333333333357 979.1275585178767642 26. 975.794225184543393 26. 969.1275585178767642 c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +106.9912923259818314 54. l +110.9912923259818314 54. l +h +116.9912923259818314 54. m +126.9912923259818314 54. l +1108.4567517083128223 886. m +1118.4567517083128223 886. l +113.9912923259818314 54. m +116.9912923259818314 54. m +116.9336481671915209 54.5852709660483839 l +116.7629309235156967 55.1480502970952671 l +116.4857011628894696 55.6667106990588039 l +116.1126126695414769 56.1213203435596455 l +115.6580030250406423 56.4944088369076383 l +115.1393426230770984 56.7716385975338582 l +114.5765632920302153 56.9423558412096895 l +113.9912923259818314 57. l +113.4060213599334475 56.9423558412096895 l +112.8432420288865643 56.7716385975338582 l +112.3245816269230204 56.4944088369076383 l +111.8699719824221859 56.1213203435596455 l +111.4968834890741931 55.6667106990588039 l +111.219653728447966 55.1480502970952671 l +111.0489364847721419 54.5852709660483839 l +110.9912923259818314 54. l +111.0489364847721419 53.4147290339516161 l +111.219653728447966 52.8519497029047329 l +111.4968834890741931 52.3332893009411961 l +111.8699719824221859 51.8786796564403545 l +112.3245816269230204 51.5055911630923617 l +112.8432420288865643 51.2283614024661418 l +113.4060213599334475 51.0576441587903105 l +113.9912923259818314 51. l +114.5765632920302153 51.0576441587903105 l +115.1393426230770984 51.2283614024661418 l +115.6580030250406423 51.5055911630923617 l +116.1126126695414769 51.8786796564403545 l +116.4857011628894696 52.3332893009411961 l +116.7629309235156967 52.8519497029047258 l +116.9336481671915209 53.4147290339516161 l +116.9912923259818314 54. l +1118.4567517083128223 882. m +1109.4567517083128223 886. l +1118.4567517083128223 890. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1439.4479613345024518 1019. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.6618689000528661 26. 215.4060126997797511 193. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.6618689000528661 26. cm +111.0315705521185947 166. m +107.0315705521185947 166. l +36. 166. l +29.3333333333333357 166. 26. 162.6666666666666572 26. 156. c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +172.4060126997797511 54. l +182.4060126997797511 54. l +182.4060126997797511 54. l +172.4060126997797511 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 156. l +26. 162.6666666666666572 29.3333333333333357 166. 36. 166. c +107.0315705521185947 166. l +111.0315705521185947 166. l +h +117.0315705521185947 166. m +127.0315705521185947 166. l +182.4060126997797511 54. m +192.4060126997797511 54. l +114.0315705521185947 166. m +117.0315705521185947 166. m +116.9739263933282842 166.5852709660483981 l +116.80320914965246 167.1480502970952671 l +116.525979389026233 167.6667106990587968 l +116.1528908956782402 168.1213203435596313 l +115.6982812511774057 168.4944088369076383 l +115.1796208492138618 168.7716385975338653 l +114.6168415181669786 168.9423558412096895 l +114.0315705521185947 169. l +113.4462995860702108 168.9423558412096895 l +112.8835202550233276 168.7716385975338653 l +112.3648598530597837 168.4944088369076383 l +111.9102502085589492 168.1213203435596313 l +111.5371617152109565 167.6667106990587968 l +111.2599319545847294 167.1480502970952671 l +111.0892147109089052 166.5852709660483981 l +111.0315705521185947 166. l +111.0892147109089052 165.4147290339516019 l +111.2599319545847294 164.8519497029047329 l +111.5371617152109565 164.3332893009412032 l +111.9102502085589492 163.8786796564403687 l +112.3648598530597837 163.5055911630923617 l +112.8835202550233276 163.2283614024661347 l +113.4462995860702108 163.0576441587903105 l +114.0315705521185947 163. l +114.6168415181669786 163.0576441587903105 l +115.1796208492138618 163.2283614024661347 l +115.6982812511774057 163.5055911630923617 l +116.1528908956782402 163.8786796564403687 l +116.525979389026233 164.3332893009412032 l +116.80320914965246 164.8519497029047329 l +116.9739263933282842 165.4147290339516019 l +117.0315705521185947 166. l +192.4060126997797511 50. m +183.4060126997797511 54. l +192.4060126997797511 58. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 513.3569440998326172 75. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.4958023744403022 138. 1074.240862710032161 1006.222944050892238 re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.4958023744403022 138. cm +111.1976370777311587 54. m +107.1976370777311587 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 969.222944050892238 l +26. 975.8896107175588668 29.3333333333333357 979.222944050892238 36. 979.222944050892238 c +1041.240862710032161 979.222944050892238 l +1047.9075293766989034 979.222944050892238 1051.240862710032161 975.8896107175588668 1051.240862710032161 969.222944050892238 c +1051.240862710032161 730.5244837892142868 l +1051.240862710032161 723.8784679110113984 1047.9178547709307168 720.5554599719099542 1041.2718388927278284 720.5554599719099542 c +1031.3028150754234957 720.5554599719099542 l +1021.302815075423382 720.5554599719099542 l +1021.302815075423382 720.5554599719099542 l +1031.3028150754234957 720.5554599719099542 l +1041.2718388927278284 720.5554599719099542 l +1047.9178547709307168 720.5554599719099542 1051.240862710032161 723.8784679110113984 1051.240862710032161 730.5244837892142868 c +1051.240862710032161 969.222944050892238 l +1051.240862710032161 975.8896107175588668 1047.9075293766989034 979.222944050892238 1041.240862710032161 979.222944050892238 c +36. 979.222944050892238 l +29.3333333333333357 979.222944050892238 26. 975.8896107175588668 26. 969.222944050892238 c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +107.1976370777311587 54. l +111.1976370777311587 54. l +h +117.1976370777311587 54. m +127.1976370777311587 54. l +1021.302815075423382 720.5554599719099542 m +1011.302815075423382 720.5554599719099542 l +114.1976370777311587 54. m +117.1976370777311587 54. m +117.1399929189408482 54.5852709660483839 l +116.969275675265024 55.1480502970952671 l +116.6920459146387969 55.6667106990588039 l +116.3189574212908042 56.1213203435596455 l +115.8643477767899697 56.4944088369076383 l +115.3456873748264258 56.7716385975338582 l +114.7829080437795426 56.9423558412096895 l +114.1976370777311587 57. l +113.6123661116827748 56.9423558412096895 l +113.0495867806358916 56.7716385975338582 l +112.5309263786723477 56.4944088369076383 l +112.0763167341715132 56.1213203435596455 l +111.7032282408235204 55.6667106990588039 l +111.4259984801972934 55.1480502970952671 l +111.2552812365214692 54.5852709660483839 l +111.1976370777311587 54. l +111.2552812365214692 53.4147290339516161 l +111.4259984801972934 52.8519497029047329 l +111.7032282408235204 52.3332893009411961 l +112.0763167341715132 51.8786796564403545 l +112.5309263786723477 51.5055911630923617 l +113.0495867806358916 51.2283614024661418 l +113.6123661116827748 51.0576441587903105 l +114.1976370777311587 51. l +114.7829080437795426 51.0576441587903105 l +115.3456873748264258 51.2283614024661418 l +115.8643477767899697 51.5055911630923617 l +116.3189574212908042 51.8786796564403545 l +116.6920459146387969 52.3332893009411961 l +116.969275675265024 52.8519497029047258 l +117.1399929189408482 53.4147290339516161 l +117.1976370777311587 54. l +1011.302815075423382 716.5554599719099542 m +1020.302815075423382 720.5554599719099542 l +1011.302815075423382 724.5554599719099542 l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1345.7986174498637411 853.5554599719099542 Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +331.7021471261896863 138. 1464.7500901791408978 1006.1275585178768779 re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 331.7021471261896863 138. cm +110.9912923259817745 54. m +106.9912923259817745 54. l +36. 54. l +29.3333333333333357 54. 26. 57.3333333333333357 26. 64. c +26. 969.1275585178768779 l +26. 975.7942251845435067 29.3333333333333357 979.1275585178768779 36. 979.1275585178768779 c +1431.7500901791408978 979.1275585178768779 l +1438.4167568458076403 979.1275585178768779 1441.7500901791408978 975.7942251845435067 1441.7500901791408978 969.1275585178768779 c +1441.7500901791408978 272. l +1441.7500901791408978 265.3333333333333144 1438.4167568458076403 262. 1431.7500901791408978 262. c +1359.0964703236741116 262. l +1349.0964703236741116 262. l +1349.0964703236741116 262. l +1359.0964703236741116 262. l +1431.7500901791408978 262. l +1438.4167568458076403 262. 1441.7500901791408978 265.3333333333333144 1441.7500901791408978 272. c +1441.7500901791408978 969.1275585178768779 l +1441.7500901791408978 975.7942251845435067 1438.4167568458076403 979.1275585178768779 1431.7500901791408978 979.1275585178768779 c +36. 979.1275585178768779 l +29.3333333333333357 979.1275585178768779 26. 975.7942251845435067 26. 969.1275585178768779 c +26. 64. l +26. 57.3333333333333357 29.3333333333333357 54. 36. 54. c +106.9912923259817745 54. l +110.9912923259817745 54. l +h +116.9912923259817745 54. m +126.9912923259817745 54. l +1349.0964703236741116 262. m +1339.0964703236741116 262. l +113.9912923259817745 54. m +116.9912923259817745 54. m +116.933648167191464 54.5852709660483839 l +116.7629309235156398 55.1480502970952671 l +116.4857011628894128 55.6667106990588039 l +116.11261266954142 56.1213203435596455 l +115.6580030250405855 56.4944088369076383 l +115.1393426230770416 56.7716385975338582 l +114.5765632920301584 56.9423558412096895 l +113.9912923259817745 57. l +113.4060213599333906 56.9423558412096895 l +112.8432420288865075 56.7716385975338582 l +112.3245816269229636 56.4944088369076383 l +111.869971982422129 56.1213203435596455 l +111.4968834890741363 55.6667106990588039 l +111.2196537284479092 55.1480502970952671 l +111.048936484772085 54.5852709660483839 l +110.9912923259817745 54. l +111.048936484772085 53.4147290339516161 l +111.2196537284479092 52.8519497029047329 l +111.4968834890741363 52.3332893009411961 l +111.869971982422129 51.8786796564403545 l +112.3245816269229636 51.5055911630923617 l +112.8432420288865075 51.2283614024661418 l +113.4060213599333906 51.0576441587903105 l +113.9912923259817745 51. l +114.5765632920301584 51.0576441587903105 l +115.1393426230770416 51.2283614024661418 l +115.6580030250405855 51.5055911630923617 l +116.11261266954142 51.8786796564403545 l +116.4857011628894128 52.3332893009411961 l +116.7629309235156398 52.8519497029047258 l +116.933648167191464 53.4147290339516161 l +116.9912923259817745 54. l +1339.0964703236741116 258. m +1348.0964703236741116 262. l +1339.0964703236741116 266. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1673.7986174498637411 395. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +262.7639494811136842 138. 218.9294899710577624 225. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 262.7639494811136842 138. cm +179.9294899710577624 54. m +175.9294899710577624 54. l +104.9381976450758316 54. l +98.2715309784091602 54. 94.9381976450758316 57.3333333333333357 94.9381976450758316 64. c +94.9381976450758316 188. l +94.9381976450758316 194.6666666666666572 91.604864311742503 198. 84.9381976450758316 198. c +46. 198. l +36. 198. l +36. 198. l +46. 198. l +84.9381976450758316 198. l +91.604864311742503 198. 94.9381976450758316 194.6666666666666572 94.9381976450758316 188. c +94.9381976450758316 64. l +94.9381976450758316 57.3333333333333357 98.2715309784091602 54. 104.9381976450758316 54. c +175.9294899710577624 54. l +179.9294899710577624 54. l +h +185.9294899710577624 54. m +195.9294899710577624 54. l +36. 198. m +26. 198. l +182.9294899710577624 54. m +185.9294899710577624 54. m +185.8718458122674519 54.5852709660483839 l +185.7011285685916278 55.1480502970952671 l +185.4238988079654007 55.6667106990588039 l +185.0508103146173937 56.1213203435596455 l +184.5962006701165592 56.4944088369076383 l +184.0775402681530295 56.7716385975338582 l +183.5147609371061606 56.9423558412096895 l +182.9294899710577624 57. l +182.3442190050093643 56.9423558412096895 l +181.7814396739624954 56.7716385975338582 l +181.2627792719989657 56.4944088369076383 l +180.8081696274981311 56.1213203435596455 l +180.4350811341501242 55.6667106990588039 l +180.1578513735238971 55.1480502970952671 l +179.9871341298480729 54.5852709660483839 l +179.9294899710577624 54. l +179.9871341298480729 53.4147290339516161 l +180.1578513735238971 52.8519497029047329 l +180.4350811341501242 52.3332893009411961 l +180.8081696274981311 51.8786796564403545 l +181.2627792719989657 51.5055911630923617 l +181.7814396739624954 51.2283614024661418 l +182.3442190050093643 51.0576441587903105 l +182.9294899710577624 51. l +183.5147609371061606 51.0576441587903105 l +184.0775402681530295 51.2283614024661418 l +184.5962006701165592 51.5055911630923617 l +185.0508103146173937 51.8786796564403545 l +185.4238988079654007 52.3332893009411961 l +185.7011285685916278 52.8519497029047258 l +185.8718458122674519 53.4147290339516161 l +185.9294899710577624 54. l +26. 194. m +35. 198. l +26. 202. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 291.7639494811136842 331. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +263.1143544405584862 138. 218.5790850116129604 793. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 263.1143544405584862 138. cm +179.5790850116129604 54. m +175.5790850116129604 54. l +104.5877926856308591 54. l +97.9211260189641877 54. 94.5877926856308591 57.3333333333333357 94.5877926856308591 64. c +94.5877926856308591 756. l +94.5877926856308591 762.6666666666666288 91.2544593522975305 766. 84.5877926856308591 766. c +46. 766. l +36. 766. l +36. 766. l +46. 766. l +84.5877926856308591 766. l +91.2544593522975305 766. 94.5877926856308591 762.6666666666666288 94.5877926856308591 756. c +94.5877926856308591 64. l +94.5877926856308591 57.3333333333333357 97.9211260189641877 54. 104.5877926856308591 54. c +175.5790850116129604 54. l +179.5790850116129604 54. l +h +185.5790850116129604 54. m +195.5790850116129604 54. l +36. 766. m +26. 766. l +182.5790850116129604 54. m +185.5790850116129604 54. m +185.52144085282265 54.5852709660483839 l +185.3507236091468258 55.1480502970952671 l +185.0734938485205987 55.6667106990588039 l +184.7004053551725917 56.1213203435596455 l +184.2457957106717572 56.4944088369076383 l +183.7271353087082275 56.7716385975338582 l +183.1643559776613586 56.9423558412096895 l +182.5790850116129604 57. l +181.9938140455645623 56.9423558412096895 l +181.4310347145176934 56.7716385975338582 l +180.9123743125541637 56.4944088369076383 l +180.4577646680533292 56.1213203435596455 l +180.0846761747053222 55.6667106990588039 l +179.8074464140790951 55.1480502970952671 l +179.6367291704032709 54.5852709660483839 l +179.5790850116129604 54. l +179.6367291704032709 53.4147290339516161 l +179.8074464140790951 52.8519497029047329 l +180.0846761747053222 52.3332893009411961 l +180.4577646680533292 51.8786796564403545 l +180.9123743125541637 51.5055911630923617 l +181.4310347145176934 51.2283614024661418 l +181.9938140455645623 51.0576441587903105 l +182.5790850116129604 51. l +183.1643559776613586 51.0576441587903105 l +183.7271353087082275 51.2283614024661418 l +184.2457957106717572 51.5055911630923617 l +184.7004053551725917 51.8786796564403545 l +185.0734938485205987 52.3332893009411961 l +185.3507236091468258 52.8519497029047258 l +185.52144085282265 53.4147290339516161 l +185.5790850116129604 54. l +26. 762. m +35. 766. l +26. 770. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 432.3282050771714466 187. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 292.1143544405584862 899. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +685.6856269521714466 170. 103.9906822366510255 905. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 685.6856269521714466 170. cm +43.0106297767306955 878. m +47.0106297767306955 878. l +70.9906822366510255 878. l +77.6573489033176969 878. 80.9906822366510255 874.6666666666666288 80.9906822366510255 868. c +80.9906822366510255 64. l +80.9906822366510255 57.3333333333333357 77.6573489033176969 54. 70.9906822366510255 54. c +46. 54. l +36. 54. l +36. 54. l +46. 54. l +70.9906822366510255 54. l +77.6573489033176969 54. 80.9906822366510255 57.3333333333333357 80.9906822366510255 64. c +80.9906822366510255 868. l +80.9906822366510255 874.6666666666666288 77.6573489033176969 878. 70.9906822366510255 878. c +47.0106297767306955 878. l +43.0106297767306955 878. l +h +37.0106297767306955 878. m +27.0106297767306955 878. l +36. 54. m +26. 54. l +40.0106297767306955 878. m +43.0106297767306955 878. m +42.9529856179403851 878.5852709660483697 l +42.7822683742645538 879.1480502970953239 l +42.5050386136383338 879.6667106990588536 l +42.131950120290341 880.1213203435596597 l +41.6773404757894994 880.4944088369076098 l +41.1586800738259626 880.7716385975338653 l +40.5959007427790795 880.9423558412097464 l +40.0106297767306955 881. l +39.4253588106823116 880.9423558412097464 l +38.8625794796354285 880.7716385975338653 l +38.3439190776718917 880.4944088369076098 l +37.88930943317105 880.1213203435596597 l +37.5162209398230573 879.6667106990588536 l +37.2389911791968373 879.1480502970953239 l +37.068273935521006 878.5852709660483697 l +37.0106297767306955 878. l +37.068273935521006 877.4147290339516303 l +37.2389911791968373 876.8519497029046761 l +37.5162209398230573 876.3332893009411464 l +37.88930943317105 875.8786796564403403 l +38.3439190776718917 875.5055911630923902 l +38.8625794796354214 875.2283614024661347 l +39.4253588106823116 875.0576441587902536 l +40.0106297767306955 875. l +40.5959007427790795 875.0576441587902536 l +41.1586800738259626 875.2283614024661347 l +41.6773404757894994 875.5055911630923902 l +42.131950120290341 875.8786796564403403 l +42.5050386136383338 876.3332893009411464 l +42.7822683742645538 876.8519497029046761 l +42.9529856179403851 877.4147290339516303 l +43.0106297767306955 878. l +26. 50. m +35. 54. l +26. 58. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 715.696256728902199 1043. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 714.6856269521714466 219. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +686.696256728902199 186. 153.346989627211542 889. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 686.696256728902199 186. cm +42. 862. m +46. 862. l +69.9800524599202731 862. l +76.6467191265869445 862. 79.9800524599202731 858.6666666666666288 79.9800524599202731 852. c +79.9800524599202731 64. l +79.9800524599202731 57.3333333333333357 83.3133857932536017 54. 89.9800524599202731 54. c +110.346989627211542 54. l +120.346989627211542 54. l +120.346989627211542 54. l +110.346989627211542 54. l +89.9800524599202731 54. l +83.3133857932536017 54. 79.9800524599202731 57.3333333333333357 79.9800524599202731 64. c +79.9800524599202731 852. l +79.9800524599202731 858.6666666666666288 76.6467191265869445 862. 69.9800524599202731 862. c +46. 862. l +42. 862. l +h +36. 862. m +26. 862. l +120.346989627211542 54. m +130.346989627211542 54. l +39. 862. m +42. 862. m +41.9423558412096895 862.5852709660483697 l +41.7716385975338582 863.1480502970953239 l +41.4944088369076383 863.6667106990588536 l +41.1213203435596455 864.1213203435596597 l +40.6667106990588039 864.4944088369076098 l +40.1480502970952671 864.7716385975338653 l +39.5852709660483839 864.9423558412097464 l +39. 865. l +38.4147290339516161 864.9423558412097464 l +37.8519497029047329 864.7716385975338653 l +37.3332893009411961 864.4944088369076098 l +36.8786796564403545 864.1213203435596597 l +36.5055911630923617 863.6667106990588536 l +36.2283614024661418 863.1480502970953239 l +36.0576441587903105 862.5852709660483697 l +36. 862. l +36.0576441587903105 861.4147290339516303 l +36.2283614024661418 860.8519497029046761 l +36.5055911630923617 860.3332893009411464 l +36.8786796564403545 859.8786796564403403 l +37.3332893009411961 859.5055911630923902 l +37.8519497029047258 859.2283614024661347 l +38.4147290339516161 859.0576441587902536 l +39. 859. l +39.5852709660483839 859.0576441587902536 l +40.1480502970952671 859.2283614024661347 l +40.6667106990588039 859.5055911630923902 l +41.1213203435596455 859.8786796564403403 l +41.4944088369076383 860.3332893009411464 l +41.7716385975338582 860.8519497029046761 l +41.9423558412096895 861.4147290339516303 l +42. 862. l +130.346989627211542 50. m +121.346989627211542 54. l +130.346989627211542 58. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 715.696256728902199 1043. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 806.3323088561137411 235. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +686.696256728902199 644.5554599719099542 153.346989627211542 430.4445400280900458 re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 686.696256728902199 644.5554599719099542 cm +42. 403.4445400280900458 m +46. 403.4445400280900458 l +69.9800524599202731 403.4445400280900458 l +76.6467191265869445 403.4445400280900458 79.9800524599202731 400.1112066947567314 79.9800524599202731 393.4445400280900458 c +79.9800524599202731 64. l +79.9800524599202731 57.3333333333333357 83.3133857932536017 54. 89.9800524599202731 54. c +110.346989627211542 54. l +120.346989627211542 54. l +120.346989627211542 54. l +110.346989627211542 54. l +89.9800524599202731 54. l +83.3133857932536017 54. 79.9800524599202731 57.3333333333333357 79.9800524599202731 64. c +79.9800524599202731 393.4445400280900458 l +79.9800524599202731 400.1112066947567314 76.6467191265869445 403.4445400280900458 69.9800524599202731 403.4445400280900458 c +46. 403.4445400280900458 l +42. 403.4445400280900458 l +h +36. 403.4445400280900458 m +26. 403.4445400280900458 l +120.346989627211542 54. m +130.346989627211542 54. l +39. 403.4445400280900458 m +42. 403.4445400280900458 m +41.9423558412096895 404.0298109941384155 l +41.7716385975338582 404.5925903251853128 l +41.4944088369076383 405.1112507271488425 l +41.1213203435596455 405.5658603716497055 l +40.6667106990588039 405.9389488649976556 l +40.1480502970952671 406.2161786256239111 l +39.5852709660483839 406.3868958692997353 l +39. 406.4445400280900458 l +38.4147290339516161 406.3868958692997353 l +37.8519497029047329 406.2161786256239111 l +37.3332893009411961 405.9389488649976556 l +36.8786796564403545 405.5658603716497055 l +36.5055911630923617 405.1112507271488425 l +36.2283614024661418 404.5925903251853128 l +36.0576441587903105 404.0298109941384155 l +36. 403.4445400280900458 l +36.0576441587903105 402.8592690620416761 l +36.2283614024661418 402.2964897309947787 l +36.5055911630923617 401.777829329031249 l +36.8786796564403545 401.3232196845303861 l +37.3332893009411961 400.9501311911824359 l +37.8519497029047258 400.6729014305561805 l +38.4147290339516161 400.5021841868803563 l +39. 400.4445400280900458 l +39.5852709660483839 400.5021841868803563 l +40.1480502970952671 400.6729014305561805 l +40.6667106990588039 400.9501311911824359 l +41.1213203435596455 401.3232196845303861 l +41.4944088369076383 401.777829329031249 l +41.7716385975338582 402.2964897309947787 l +41.9423558412096895 402.8592690620416761 l +42. 403.4445400280900458 l +130.346989627211542 50. m +121.346989627211542 54. l +130.346989627211542 58. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 715.696256728902199 1043. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 806.3323088561137411 693.5554599719099542 Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1019.7873869811137411 154. 124.255859375 113. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 1019.7873869811137411 154. cm +42. 54. m +46. 54. l +54.81396484375 54. l +60.68994140625 54. 63.6279296875 56.93798828125 63.6279296875 62.81396484375 c +63.6279296875 77.18603515625 l +63.6279296875 83.06201171875 66.56591796875 86. 72.44189453125 86. c +81.255859375 86. l +91.255859375 86. l +91.255859375 86. l +81.255859375 86. l +72.44189453125 86. l +66.56591796875 86. 63.6279296875 83.06201171875 63.6279296875 77.18603515625 c +63.6279296875 62.81396484375 l +63.6279296875 56.93798828125 60.68994140625 54. 54.81396484375 54. c +46. 54. l +42. 54. l +h +36. 54. m +26. 54. l +91.255859375 86. m +101.255859375 86. l +39. 54. m +42. 54. m +41.9423558412096895 54.5852709660483839 l +41.7716385975338582 55.1480502970952671 l +41.4944088369076383 55.6667106990588039 l +41.1213203435596455 56.1213203435596455 l +40.6667106990588039 56.4944088369076383 l +40.1480502970952671 56.7716385975338582 l +39.5852709660483839 56.9423558412096895 l +39. 57. l +38.4147290339516161 56.9423558412096895 l +37.8519497029047329 56.7716385975338582 l +37.3332893009411961 56.4944088369076383 l +36.8786796564403545 56.1213203435596455 l +36.5055911630923617 55.6667106990588039 l +36.2283614024661418 55.1480502970952671 l +36.0576441587903105 54.5852709660483839 l +36. 54. l +36.0576441587903105 53.4147290339516161 l +36.2283614024661418 52.8519497029047329 l +36.5055911630923617 52.3332893009411961 l +36.8786796564403545 51.8786796564403545 l +37.3332893009411961 51.5055911630923617 l +37.8519497029047258 51.2283614024661418 l +38.4147290339516161 51.0576441587903105 l +39. 51. l +39.5852709660483839 51.0576441587903105 l +40.1480502970952671 51.2283614024661418 l +40.6667106990588039 51.5055911630923617 l +41.1213203435596455 51.8786796564403545 l +41.4944088369076383 52.3332893009411961 l +41.7716385975338582 52.8519497029047258 l +41.9423558412096895 53.4147290339516161 l +42. 54. l +101.255859375 82. m +92.255859375 86. l +101.255859375 90. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1048.7873869811137411 203. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1110.3323088561137411 235. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1019.7873869811137411 612.5554599719099542 124.255859375 113. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 1019.7873869811137411 612.5554599719099542 cm +42. 54. m +46. 54. l +54.81396484375 54. l +60.68994140625 54. 63.6279296875 56.93798828125 63.6279296875 62.81396484375 c +63.6279296875 77.18603515625 l +63.6279296875 83.06201171875 66.56591796875 86. 72.44189453125 86. c +81.255859375 86. l +91.255859375 86. l +91.255859375 86. l +81.255859375 86. l +72.44189453125 86. l +66.56591796875 86. 63.6279296875 83.06201171875 63.6279296875 77.18603515625 c +63.6279296875 62.81396484375 l +63.6279296875 56.93798828125 60.68994140625 54. 54.81396484375 54. c +46. 54. l +42. 54. l +h +36. 54. m +26. 54. l +91.255859375 86. m +101.255859375 86. l +39. 54. m +42. 54. m +41.9423558412096895 54.5852709660483839 l +41.7716385975338582 55.1480502970952671 l +41.4944088369076383 55.6667106990588039 l +41.1213203435596455 56.1213203435596455 l +40.6667106990588039 56.4944088369076383 l +40.1480502970952671 56.7716385975338582 l +39.5852709660483839 56.9423558412096895 l +39. 57. l +38.4147290339516161 56.9423558412096895 l +37.8519497029047329 56.7716385975338582 l +37.3332893009411961 56.4944088369076383 l +36.8786796564403545 56.1213203435596455 l +36.5055911630923617 55.6667106990588039 l +36.2283614024661418 55.1480502970952671 l +36.0576441587903105 54.5852709660483839 l +36. 54. l +36.0576441587903105 53.4147290339516161 l +36.2283614024661418 52.8519497029047329 l +36.5055911630923617 52.3332893009411961 l +36.8786796564403545 51.8786796564403545 l +37.3332893009411961 51.5055911630923617 l +37.8519497029047258 51.2283614024661418 l +38.4147290339516161 51.0576441587903105 l +39. 51. l +39.5852709660483839 51.0576441587903105 l +40.1480502970952671 51.2283614024661418 l +40.6667106990588039 51.5055911630923617 l +41.1213203435596455 51.8786796564403545 l +41.4944088369076383 52.3332893009411961 l +41.7716385975338582 52.8519497029047258 l +41.9423558412096895 53.4147290339516161 l +42. 54. l +101.255859375 82. m +92.255859375 86. l +101.255859375 90. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1048.7873869811137411 661.5554599719099542 Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1110.3323088561137411 693.5554599719099542 Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1343.7571135436137411 154. 128.2861328125 113. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 1343.7571135436137411 154. cm +42. 54. m +46. 54. l +55.8325476841058617 54. l +62.3875794735097671 54. 65.6650953682117233 57.2775158947019563 65.6650953682117233 63.8325476841058617 c +65.6650953682117233 76.1894812778558617 l +65.6650953682117233 82.7298270926186206 68.9352682755931028 86. 75.4756140903558617 86. c +85.2861328125 86. l +95.2861328125 86. l +95.2861328125 86. l +85.2861328125 86. l +75.4756140903558617 86. l +68.9352682755931028 86. 65.6650953682117233 82.7298270926186206 65.6650953682117233 76.1894812778558617 c +65.6650953682117233 63.8325476841058617 l +65.6650953682117233 57.2775158947019563 62.3875794735097671 54. 55.8325476841058617 54. c +46. 54. l +42. 54. l +h +36. 54. m +26. 54. l +95.2861328125 86. m +105.2861328125 86. l +39. 54. m +42. 54. m +41.9423558412096895 54.5852709660483839 l +41.7716385975338582 55.1480502970952671 l +41.4944088369076383 55.6667106990588039 l +41.1213203435596455 56.1213203435596455 l +40.6667106990588039 56.4944088369076383 l +40.1480502970952671 56.7716385975338582 l +39.5852709660483839 56.9423558412096895 l +39. 57. l +38.4147290339516161 56.9423558412096895 l +37.8519497029047329 56.7716385975338582 l +37.3332893009411961 56.4944088369076383 l +36.8786796564403545 56.1213203435596455 l +36.5055911630923617 55.6667106990588039 l +36.2283614024661418 55.1480502970952671 l +36.0576441587903105 54.5852709660483839 l +36. 54. l +36.0576441587903105 53.4147290339516161 l +36.2283614024661418 52.8519497029047329 l +36.5055911630923617 52.3332893009411961 l +36.8786796564403545 51.8786796564403545 l +37.3332893009411961 51.5055911630923617 l +37.8519497029047258 51.2283614024661418 l +38.4147290339516161 51.0576441587903105 l +39. 51. l +39.5852709660483839 51.0576441587903105 l +40.1480502970952671 51.2283614024661418 l +40.6667106990588039 51.5055911630923617 l +41.1213203435596455 51.8786796564403545 l +41.4944088369076383 52.3332893009411961 l +41.7716385975338582 52.8519497029047258 l +41.9423558412096895 53.4147290339516161 l +42. 54. l +105.2861328125 82. m +96.2861328125 86. l +105.2861328125 90. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1372.7571135436137411 203. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1438.3323088561137411 235. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1343.7571135436137411 154. 129.4017852908888244 705. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 1343.7571135436137411 154. cm +42. 54. m +46. 54. l +56.2008926454444122 54. l +62.8675593121110765 54. 66.2008926454444122 57.3333333333333357 66.2008926454444122 64. c +66.2008926454444122 668. l +66.2008926454444122 674.6666666666666288 69.5342259787777408 678. 76.2008926454444122 678. c +86.4017852908888244 678. l +96.4017852908888244 678. l +96.4017852908888244 678. l +86.4017852908888244 678. l +76.2008926454444122 678. l +69.5342259787777408 678. 66.2008926454444122 674.6666666666666288 66.2008926454444122 668. c +66.2008926454444122 64. l +66.2008926454444122 57.3333333333333357 62.8675593121110765 54. 56.2008926454444122 54. c +46. 54. l +42. 54. l +h +36. 54. m +26. 54. l +96.4017852908888244 678. m +106.4017852908888244 678. l +39. 54. m +42. 54. m +41.9423558412096895 54.5852709660483839 l +41.7716385975338582 55.1480502970952671 l +41.4944088369076383 55.6667106990588039 l +41.1213203435596455 56.1213203435596455 l +40.6667106990588039 56.4944088369076383 l +40.1480502970952671 56.7716385975338582 l +39.5852709660483839 56.9423558412096895 l +39. 57. l +38.4147290339516161 56.9423558412096895 l +37.8519497029047329 56.7716385975338582 l +37.3332893009411961 56.4944088369076383 l +36.8786796564403545 56.1213203435596455 l +36.5055911630923617 55.6667106990588039 l +36.2283614024661418 55.1480502970952671 l +36.0576441587903105 54.5852709660483839 l +36. 54. l +36.0576441587903105 53.4147290339516161 l +36.2283614024661418 52.8519497029047329 l +36.5055911630923617 52.3332893009411961 l +36.8786796564403545 51.8786796564403545 l +37.3332893009411961 51.5055911630923617 l +37.8519497029047258 51.2283614024661418 l +38.4147290339516161 51.0576441587903105 l +39. 51. l +39.5852709660483839 51.0576441587903105 l +40.1480502970952671 51.2283614024661418 l +40.6667106990588039 51.5055911630923617 l +41.1213203435596455 51.8786796564403545 l +41.4944088369076383 52.3332893009411961 l +41.7716385975338582 52.8519497029047258 l +41.9423558412096895 53.4147290339516161 l +42. 54. l +106.4017852908888244 674. m +97.4017852908888244 678. l +106.4017852908888244 682. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1372.7571135436137411 203. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1439.4479613345024518 827. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1649.1165657303761236 546. 114.0728207043728162 281. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. 1649.1165657303761236 546. cm +75.4236807603763282 254. m +79.4236807603763282 254. l +85.2482507323745722 254. l +89.1312973803733968 254. 91.0728207043728162 252.0584766760005948 91.0728207043728162 248.175430028001756 c +91.0728207043728162 64. l +91.0728207043728162 57.3333333333333357 87.7394873710394876 54. 81.0728207043728162 54. c +46. 54. l +36. 54. l +36. 54. l +46. 54. l +81.0728207043728162 54. l +87.7394873710394876 54. 91.0728207043728162 57.3333333333333357 91.0728207043728162 64. c +91.0728207043728162 248.175430028001756 l +91.0728207043728162 252.0584766760005948 89.1312973803733968 254. 85.2482507323745722 254. c +79.4236807603763282 254. l +75.4236807603763282 254. l +h +69.4236807603763282 254. m +59.4236807603763282 254. l +36. 54. m +26. 54. l +72.4236807603763282 254. m +75.4236807603763282 254. m +75.3660366015860177 254.5852709660483981 l +75.1953193579101935 255.1480502970952671 l +74.9180895972839664 255.6667106990587968 l +74.5450011039359737 256.1213203435596597 l +74.0903914594351392 256.4944088369076098 l +73.5717310574715952 256.7716385975338653 l +73.0089517264247121 256.9423558412096895 l +72.4236807603763282 257. l +71.8384097943279443 256.9423558412096895 l +71.2756304632810611 256.7716385975338653 l +70.7569700613175172 256.4944088369076098 l +70.3023604168166827 256.1213203435596597 l +69.9292719234686899 255.6667106990587968 l +69.6520421628424629 255.1480502970952671 l +69.4813249191666387 254.5852709660483981 l +69.4236807603763282 254. l +69.4813249191666387 253.4147290339516019 l +69.6520421628424629 252.8519497029047329 l +69.9292719234686899 252.3332893009412032 l +70.3023604168166827 251.8786796564403687 l +70.7569700613175172 251.5055911630923617 l +71.2756304632810611 251.2283614024661347 l +71.8384097943279443 251.0576441587903105 l +72.4236807603763282 251. l +73.0089517264247121 251.0576441587903105 l +73.5717310574715952 251.2283614024661347 l +74.0903914594351392 251.5055911630923617 l +74.5450011039359737 251.8786796564403687 l +74.9180895972839664 252.3332893009412032 l +75.1953193579101935 252.8519497029047329 l +75.3660366015860177 253.4147290339516019 l +75.4236807603763282 254. l +26. 50. m +35. 54. l +26. 58. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1711.5402464907524518 795. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 1678.1165657303761236 595. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +-8. 458. 91.3702138155584862 377. re +W +n +q +q +q +2. w +0.38 0.61 0.8 RG +1. 0. 0. 1. -8. 458. cm +49.7473479186136842 54. m +45.7473479186136842 54. l +35.8736739593068421 54. l +29.2912246531022831 54. 26. 57.2912246531022831 26. 63.8736739593068421 c +26. 340. l +26. 346.6666666666666856 29.3333333333333357 350. 36. 350. c +48.3702138155584862 350. l +58.3702138155584862 350. l +58.3702138155584862 350. l +48.3702138155584862 350. l +36. 350. l +29.3333333333333357 350. 26. 346.6666666666666856 26. 340. c +26. 63.8736739593068421 l +26. 57.2912246531022831 29.2912246531022831 54. 35.8736739593068421 54. c +45.7473479186136842 54. l +49.7473479186136842 54. l +h +55.7473479186136842 54. m +65.7473479186136842 54. l +58.3702138155584862 350. m +68.3702138155584862 350. l +52.7473479186136842 54. m +55.7473479186136842 54. m +55.6897037598233737 54.5852709660483839 l +55.5189865161475424 55.1480502970952671 l +55.2417567555213225 55.6667106990588039 l +54.8686682621733297 56.1213203435596455 l +54.4140586176724881 56.4944088369076383 l +53.8953982157089513 56.7716385975338582 l +53.3326188846620681 56.9423558412096895 l +52.7473479186136842 57. l +52.1620769525653003 56.9423558412096895 l +51.5992976215184171 56.7716385975338582 l +51.0806372195548803 56.4944088369076383 l +50.6260275750540387 56.1213203435596455 l +50.252939081706046 55.6667106990588039 l +49.975709321079826 55.1480502970952671 l +49.8049920774039947 54.5852709660483839 l +49.7473479186136842 54. l +49.8049920774039947 53.4147290339516161 l +49.975709321079826 52.8519497029047329 l +50.252939081706046 52.3332893009411961 l +50.6260275750540387 51.8786796564403545 l +51.0806372195548803 51.5055911630923617 l +51.59929762151841 51.2283614024661418 l +52.1620769525653003 51.0576441587903105 l +52.7473479186136842 51. l +53.3326188846620681 51.0576441587903105 l +53.8953982157089513 51.2283614024661418 l +54.4140586176724881 51.5055911630923617 l +54.8686682621733297 51.8786796564403545 l +55.2417567555213225 52.3332893009411961 l +55.5189865161475424 52.8519497029047258 l +55.6897037598233737 53.4147290339516161 l +55.7473479186136842 54. l +68.3702138155584862 346. m +59.3702138155584862 350. l +68.3702138155584862 354. l +S +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 31.3821135436136842 507. Tm +<0013001100110014> Tj +ET +Q +Q +q +q +BT +/F15 14 Tf +16.0999999999999979 TL +0. g +1. 0. 0. -1. 49.6592763155584862 803. Tm +<000d> Tj +ET +Q +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 144. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 458.6934394521714466 144. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 468.6934394521714466 163.25 Tm +<0056004b0048004800530056> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 176. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 458.6934394521714466 176. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 195.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 484.8872871084214466 185.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 654.9224433584214466 195.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 208. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 458.6934394521714466 208. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 227.25 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 227.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 240. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 240. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 259.25 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 259.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 272. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 272. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 291.25 Tm +<004c004600520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 291.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 304. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 304. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 323.25 Tm +<00580058004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 323.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 336. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 336. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 355.25 Tm +<0044005300530052004c005100570050004800510057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.3135566396714466 355.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 368. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 368. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 387.25 Tm +<00460044005100420059004c0048005a004200560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 387.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 400. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 400. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 419.25 Tm +<00460044005100420059004c0048005a004200560046004b004800470058004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 419.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +458.6934394521714466 432. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 458.6934394521714466 432. cm +0. 0. m +252.9921875 0. l +252.9921875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 468.6934394521714466 451.25 Tm +<00460044005100420059004c0048005a00420057004800550055004c005700520055005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.8262519521714466 451.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 480. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 524.0678815998326172 480. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 534.0678815998326172 499.25 Tm +<004400470050004c0051004c00560057005500440057005200550056> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 512. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 512. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 531.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 550.2617292560826172 521.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 654.7002058185826172 531.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 544. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 524.0678815998326172 544. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 563.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.6040144123326172 563.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 576. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 576. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 595.25 Tm +<00580058004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.0913190998326172 595.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 624. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 434.3913698881360119 624. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 444.3913698881360119 643.25 Tm +<0050005200470048005500440057005200550056> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 656. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 656. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 675.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 460.5852175443860119 665.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 656.6901980131360688 675.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 688. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 434.3913698881360119 688. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 707.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 707.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 720. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 720. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 739.25 Tm +<00580058004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 680.0813112943860688 739.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 752. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 752. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 771.25 Tm +<004600440051004200440047004700420056004b0048004800530056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 771.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 784. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 784. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 803.25 Tm +<004600440051004200440047004700420057004800550055004c005700520055005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 803.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 816. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 816. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 835.25 Tm +<00460044005100420050004400510044004a0048005500420057004800550055004c005700520055005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 835.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 848. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 848. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 867.25 Tm +<0046004400510042004400470047004200560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 867.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 880. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 880. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 899.25 Tm +<00460044005100420050004400510044004a00480055004200560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 899.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +434.3913698881360119 912. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 434.3913698881360119 912. cm +0. 0. m +279.06201171875 0. l +279.06201171875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 444.3913698881360119 931.25 Tm +<0046004400510042004400470047004200560046004b004800470058004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 660.5940066068860688 931.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +486.3578778226521422 968. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 486.3578778226521422 968. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 496.3578778226521422 987.25 Tm +<004a00550052005800530056> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +486.3578778226521422 1000. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 486.3578778226521422 1000. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 496.3578778226521422 1019.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 512.551725478902199 1009.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 655.933073135152199 1019.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +486.3578778226521422 1032. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 486.3578778226521422 1032. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 496.3578778226521422 1051.25 Tm +<004a00550052005800530042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 659.836881728902199 1051.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +486.3578778226521422 1064. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 486.3578778226521422 1064. cm +0. 0. m +226.33837890625 0. l +226.33837890625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 496.3578778226521422 1083.25 Tm +<0056004b0044005500480042004b00440056004b> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 679.324186416402199 1083.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 0. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 524.0678815998326172 0. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 534.0678815998326172 19.25 Tm +<005600580045005600460055004c00530057004c00520051> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 32. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 32. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 51.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 550.2617292560826172 41.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 654.7002058185826172 51.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 64. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 524.0678815998326172 64. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 83.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 658.6040144123326172 83.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +524.0678815998326172 96. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 524.0678815998326172 96. cm +0. 0. m +187.3955078125 0. l +187.3955078125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 534.0678815998326172 115.25 Tm +<00570052004e00480051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 678.0913190998326172 115.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 817.0432463561137411 160. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 827.0432463561137411 179.25 Tm +<004b0052005800560048> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 192. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 817.0432463561137411 192. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 843.2370940123637411 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 989.0242033873637411 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 224. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 817.0432463561137411 224. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 243.25 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 992.9280119811137411 243.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 256. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 275.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 275.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 288. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 307.25 Tm +<005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 307.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 320. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 339.25 Tm +<00530052004c005100570056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 339.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 352. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 371.25 Tm +<00530052004c0051005700560042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 371.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 384. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 403.25 Tm +<004a00480052> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 416. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 416. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 435.25 Tm +<0052005600500042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 435.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 448. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 448. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 467.25 Tm +<0056004800570057004f00480050004800510057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 467.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 480. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 480. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 499.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 499.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 512. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 512. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 531.25 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 531.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 544. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 544. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 563.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 563.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1121.0432463561137411 160. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1131.0432463561137411 179.25 Tm +<00480051005700550044005100460048> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 192. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1121.0432463561137411 192. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1147.2370940123637411 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1312.9939299498637411 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 224. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1121.0432463561137411 224. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 243.25 Tm +<004b00520058005600480042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1316.8977385436137411 243.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 256. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 275.25 Tm +<004800510057005500440051004600480042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1316.8977385436137411 275.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 288. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 307.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 307.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 320. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 339.25 Tm +<00530052004c005100570056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 339.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 352. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 371.25 Tm +<00530052004c0051005700560042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 371.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 384. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 403.25 Tm +<0049004f0052005200550056004200540058004400510057004c0057005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 416. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 416. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 435.25 Tm +<0044005300440055005700500048005100570056004200540058004400510057004c0057005c> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 435.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 448. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 448. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 467.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1336.3850432311137411 467.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 480. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 480. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 499.25 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1294.4651213561137411 499.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 512. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 512. cm +0. 0. m +248.7138671875 0. l +248.7138671875 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 531.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1294.4651213561137411 531.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1449.0432463561137411 160. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1459.0432463561137411 179.25 Tm +<004800510057005500440051004600480042004b004c0056005700520055005c> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 192. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 192. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1475.2370940123637411 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1614.0354338561137411 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 224. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1449.0432463561137411 224. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 243.25 Tm +<004800510057005500440051004600480042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1617.9392424498637411 243.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 256. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 275.25 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1637.4265471373637411 275.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 288. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 307.25 Tm +<0047004400570048004200560057004400550057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1595.5066252623637411 307.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 320. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 320. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 339.25 Tm +<00470044005700480042004800510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1595.5066252623637411 339.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 352. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 371.25 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1617.9392424498637411 371.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 384. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1449.0432463561137411 384. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 403.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1637.4265471373637411 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.0432463561137411 416. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.0432463561137411 416. cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.0432463561137411 435.25 Tm +<005a00520055004e004c0051004a> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1617.9392424498637411 435.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 752. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1450.1588988345024518 752. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1460.1588988345024518 771.25 Tm +<0044005300440055005700500048005100570056> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 784. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1450.1588988345024518 784. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 803.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1476.3527464907524518 793.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1651.7770628970024518 803.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 816. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1450.1588988345024518 816. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 835.25 Tm +<004800510057005500440051004600480042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 835.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 848. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 848. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 867.25 Tm +<0044005300440055005700500048005100570042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 867.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 880. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 880. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 899.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1675.1681761782524518 899.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 912. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 912. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 931.25 Tm +<0049004f00520052005500560042005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 931.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 944. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 944. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 963.25 Tm +<005600570044005700580056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1655.6808714907524518 963.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 976. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 976. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 995.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1675.1681761782524518 995.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 1008. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1450.1588988345024518 1008. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 1027.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1675.1681761782524518 1027.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1450.1588988345024518 1040. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1450.1588988345024518 1040. cm +0. 0. m +258.38134765625 0. l +258.38134765625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1460.1588988345024518 1059.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1633.2482543032524518 1059.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 488. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1449.7430305741261236 488. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1459.7430305741261236 507.25 Tm +<00440053004400550057005000480051005700560042004b004c0056005700520055005c> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 520. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 520. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 539.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1475.9368782303761236 529.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1618.3533821366261236 539.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 552. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1449.7430305741261236 552. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 571.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1641.7444954178761236 571.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 584. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1449.7430305741261236 584. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 603.25 Tm +<00440053004400550057005000480051005700560042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1622.2571907303761236 603.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 616. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 616. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 635.25 Tm +<005600570044005700580056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1622.2571907303761236 635.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 648. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 648. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 667.25 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1641.7444954178761236 667.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1449.7430305741261236 680. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1449.7430305741261236 680. cm +0. 0. m +225.37353515625 0. l +225.37353515625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1459.7430305741261236 699.25 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1599.8245735428761236 699.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 618.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 817.0432463561137411 618.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 827.0432463561137411 637.8054599719099542 Tm +<004b00520050004800560057004800440047> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 650.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 817.0432463561137411 650.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 669.8054599719099542 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 843.2370940123637411 659.8054599719099542 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 989.0242033873637411 669.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 682.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 817.0432463561137411 682.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 701.8054599719099542 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 992.9280119811137411 701.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 714.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 714.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 733.8054599719099542 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 733.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 746.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 746.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 765.8054599719099542 Tm +<005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 765.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 778.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 778.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 797.8054599719099542 Tm +<00530052004c005100570056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 797.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 810.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 810.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 829.8054599719099542 Tm +<00530052004c005100570042004c0046005200510056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 829.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 842.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 842.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 861.8054599719099542 Tm +<004a00480052> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 861.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 874.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 874.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 893.8054599719099542 Tm +<0052005600500042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 893.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 906.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 906.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 925.8054599719099542 Tm +<0056004800570057004f00480050004800510057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 925.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 938.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 938.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 957.8054599719099542 Tm +<00470048005600460055004c00530057004c00520051> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1012.4153166686137411 957.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 970.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 970.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 989.8054599719099542 Tm +<0046005500480044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 989.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +817.0432463561137411 1002.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 817.0432463561137411 1002.5554599719099542 cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 827.0432463561137411 1021.8054599719099542 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 970.4953947936137411 1021.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 618.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 1121.0432463561137411 618.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 1131.0432463561137411 637.8054599719099542 Tm +<004b005200500048005600570048004400470042004b004c0056005700520055005c> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 650.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 650.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 669.8054599719099542 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 1147.2370940123637411 659.8054599719099542 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1286.0354338561137411 669.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 682.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1121.0432463561137411 682.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 701.8054599719099542 Tm +<004b005200500048005600570048004400470042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1289.9392424498637411 701.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 714.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 714.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 733.8054599719099542 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1309.4265471373637411 733.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 746.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 746.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 765.8054599719099542 Tm +<0047004400570048004200560057004400550057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1267.5066252623637411 765.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 778.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 778.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 797.8054599719099542 Tm +<00470044005700480042004800510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1267.5066252623637411 797.8054599719099542 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 810.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 810.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 829.8054599719099542 Tm +<004a00550052005800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1289.9392424498637411 829.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 842.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 1121.0432463561137411 842.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 861.8054599719099542 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1309.4265471373637411 861.8054599719099542 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +1121.0432463561137411 874.5554599719099542 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 1121.0432463561137411 874.5554599719099542 cm +0. 0. m +221.75537109375 0. l +221.75537109375 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 1131.0432463561137411 893.8054599719099542 Tm +<005a00520055004e004c0051004a> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 1289.9392424498637411 893.8054599719099542 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 160. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 81.0432463561136842 160. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 91.0432463561136842 179.25 Tm +<0050004800480057004c0051004a0056004200560046004b004800470058004f0048> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 192. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 192. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 211.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 107.2370940123636842 201.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 232.0007658873636842 211.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 224. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 224. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 243.25 Tm +<0047004400570048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 213.4719572936136842 243.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 256. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 256. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 275.25 Tm +<0057005c00530048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 275.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 288. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 288. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 307.25 Tm +<0051004400500048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 307.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 320. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 81.0432463561136842 320. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 339.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 339.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 352. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 352. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 371.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 371.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +81.0432463561136842 384. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 81.0432463561136842 384. cm +0. 0. m +207.720703125 0. l +207.720703125 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 91.0432463561136842 403.25 Tm +<005100580050004500480055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 403.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 464. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 57.7473479186136842 464. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 67.7473479186136842 483.25 Tm +<005600570044005100470042004f004c00560057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 496. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 57.7473479186136842 496. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 515.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 83.9411955748636842 505.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 232.0007658873636842 515.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 528. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 528. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 547.25 Tm +<0057004c0057004f0048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 547.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 560. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 560. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 579.25 Tm +<004b005200580055004200560057004400550057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 579.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 592. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 592. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 611.25 Tm +<004b0052005800550042004800510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 611.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 624. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 624. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 643.25 Tm +<00540058004400510057004c0057005c00420056004b004800480053> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 235.9045744811136842 643.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +57.7473479186136842 656. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 57.7473479186136842 656. cm +0. 0. m +231.0166015625 0. l +231.0166015625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 67.7473479186136842 675.25 Tm +<005a00480048004e004200470044005c0056> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.3918791686136842 675.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 728. 1534.3366445212079725 980. re +W +n +q +q +0.19 0.41 0.59 rg +1. 0. 0. 1. 60.3702138155584862 728. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +1. g +1. 0. 0. -1. 70.3702138155584862 747.25 Tm +<00560057004400510047004200560046004b004800470058004f0048> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 760. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 760. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 779.25 Tm +<004c0047> Tj +ET +Q +Q +q +0.44 g +1. 0. 0. 1. 86.5640614718084862 769.25 cm +6.5625 0.9844000000000001 m +8.1935000000000002 0.9844000000000001 9.5155999999999992 2.3065000000000002 9.5155999999999992 3.9375 c +9.5155999999999992 5.5685000000000002 8.1935000000000002 6.8906000000000001 6.5625 6.8906000000000001 c +6.1734999999999998 6.8906000000000001 5.8022 6.8152999999999997 5.4619999999999997 6.6786000000000003 c +4.5937999999999999 7.5468999999999999 l +3.9375 7.5468999999999999 l +3.9375 8.5312999999999999 l +2.9531000000000001 8.5312999999999999 l +2.9531000000000001 9.5155999999999992 l +0.9844000000000001 9.5155999999999992 l +0.9844000000000001 7.5468999999999999 l +3.7360000000000002 4.7952000000000004 l +3.6518000000000002 4.5171000000000001 3.6092 4.2281000000000004 3.6093999999999999 3.9375 c +3.6093999999999999 2.3065000000000002 4.9314999999999998 0.9844000000000001 6.5625 0.9844000000000001 c +h +6.5625 0. m +4.3879999999999999 0. 2.625 1.7626999999999999 2.625 3.9375 c +2.625 4.1185999999999998 2.6373000000000002 4.2988999999999997 2.6619000000000002 4.4771999999999998 c +0.1441 6.9950000000000001 l +0.0519 7.0872999999999999 0. 7.2125000000000004 0. 7.343 c +0. 10.0077999999999996 l +0. 10.2797000000000001 0.2204 10.5 0.4922 10.5 c +3.4453 10.5 l +3.7170999999999998 10.5 3.9375 10.2797000000000001 3.9375 10.0077999999999996 c +3.9375 9.5155999999999992 l +4.4297000000000004 9.5155999999999992 l +4.7015000000000002 9.5155999999999992 4.9218999999999999 9.2952999999999992 4.9218999999999999 9.0234000000000005 c +4.9218999999999999 8.6133000000000006 l +5.7431999999999999 7.7895000000000003 l +6.0110000000000001 7.8464 6.2847999999999997 7.875 6.5625 7.875 c +8.7370000000000001 7.875 10.5 6.1123000000000003 10.5 3.9375 c +10.5 1.7629999999999999 8.7372999999999994 0. 6.5625 0. c +h +6.5625 2.9531000000000001 m +6.5625 3.4967999999999999 7.0031999999999996 3.9375 7.5468999999999999 3.9375 c +8.0905000000000005 3.9375 8.5312999999999999 3.4967999999999999 8.5312999999999999 2.9531000000000001 c +8.5312999999999999 2.4095 8.0905000000000005 1.9688000000000001 7.5468999999999999 1.9688000000000001 c +7.0031999999999996 1.9688000000000001 6.5625 2.4095 6.5625 2.9531000000000001 c +h +f +Q +q +q +BT +/F16 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 232.3511708468084862 779.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 792. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 60.3702138155584862 792. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 811.25 Tm +<00560057004400510047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 236.2549794405584862 811.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 824. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 824. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 843.25 Tm +<0047004400570048> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 213.8223622530584862 843.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 856. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 856. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 875.25 Tm +<004b005200580055> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 236.2549794405584862 875.25 Tm +<004c005100570048004a00480055> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 888. 1534.3366445212079725 980. re +W +n +q +q +0.87 0.93 0.95 rg +1. 0. 0. 1. 60.3702138155584862 888. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 907.25 Tm +<0056004b0048004800530042004c0047> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.7422841280584862 907.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 920. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 920. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 939.25 Tm +<00510058005000450048005500420056004b004800480053> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 255.7422841280584862 939.25 Tm +<00570048005b0057> Tj +ET +Q +Q +Q +Q +q +0.850306044571455 0. 0. 0.850306044571455 6.8024483565716398 3.5301571680902839 cm +60.3702138155584862 952. 1534.3366445212079725 980. re +W +n +q +q +0.95 g +1. 0. 0. 1. 60.3702138155584862 952. cm +0. 0. m +228.744140625 0. l +228.744140625 32. l +0. 32. l +h +f +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.435 g +1. 0. 0. -1. 70.3702138155584862 971.25 Tm +<0058005300470044005700480047004200440057> Tj +ET +Q +Q +q +q +BT +/F15 13 Tf +14.9499999999999993 TL +0.6 g +1. 0. 0. -1. 213.8223622530584862 971.25 Tm +<0057004c0050004800560057004400500053> Tj +ET +Q +Q +Q +Q +Q +Q +Q +Q +Q +endstream +endobj +1 0 obj +<> +endobj +7 0 obj +<< +/Length 26556 +/Length1 26556 +>> +stream + +0Epcmap8glyfK @ Rloca7rhmtxSCW#hhea 5$maxp5 post&5'jnamer]L headõg$6OS/2@,g\`` ~01ac7Y #(  OP\_?M   " & 0 3 : < D p z  !!!! !"!&!.!^""""""""+"H"`"e%ʧS6<>ADK 12bd7Y#& PQ]`>M   & 0 2 9 < D p t | !!!! !"!&!.![""""""""+"H"`"d%ʧS*8>@CF~ ZHyu`{xYM geb^Qyj h(;,us +N$!WhX_HL|dHI#$t  + 5\78x9:yhidfkegmbY +@  +   /2901%'%7&'ss'YdYE's + r+20174632#"&D13FF31DhF;;FE??g+  r r+2+201#"&5463232654&#"+6ti_Ԯh>qq?>ss=ݲeQQ @ + + + r r++22/301!#4667'3Ϣ6(W ;UG% -!q1H/301!5!w{^Z(#@%%  r +rr+2++9/333012#'##"&&54$%754&#"'663265Iľy .d_dY +zoVF3JHͨr^Z32#4&#"#U "iKY}z?/(Q":O)T6]h +r +r++201#2#"&546UU);;)+99HH58766785$ @r  +  +r +r++29+0136673##TQlG}(s,f,zsV r +r++01!#3V\'(@$%! r!rr +r+22+++233012#4&#"#4&&#"#33>32366Usq3eMm; !d|F}& 6\2ƅYv;ZH9N(]__]A\@r +r r+233+2+012#4&#"#33>Ȥ} #l\6H:O)r`\ r r+2+201#".546632326654&&#"`FvnIz㝖}FsrFFt&ԒMMԇjj„hs\(%@rr "" rr+233+233++012#"&&'##33>"326654&pˊW^   \>r@=wfC\.N.'n)>22S1X dnŀq4\$%@rrr r+233+233++01467##"46632373266754&#" .p͉/tA'f%LfgJ`W#&\@ r +rr+233++012&&#"#33>!HBBuX2"`\5cUH=e<gt\*@' r  r+2+2901#"&'532654&&'.54632&&#"tiÇs?Ca3xjiScK8DPs{9~ggQ,iH$!!6\O-EA'(Or['!(LB3B:'&Qs F@ r r+2+233901%267#"&&5#5773!!)Vg1WUBdA_t + =QA{gf8H@ r r +r++233+201#'##"&&53326658 "lLY|z@H9N'T>\AH @ + r +r++29901!336673`4 + 8_HiD22CJ*@")r* +r+2+22901%.'##33>733>73+ ̻Ҭ ʳ~)OI??JQ)H]' H @  +rr+2+290133##! ˼1ZAH@ r r+2+2901336673#"&'5326677$4#&ef/H?">[B<H8g^,2U{eQ /Z>bbbbdddddddddddddddddddddddddddddddddddddddddddddd*0F&rrx  + +  z R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R0+4fo\R\>hYgSRge\,t]ggAgsgt,v+ +}r!}<&\-29}9}cihcyN3P8Rr^rr~rX4hrqEg 30'P9eCgDyez6dDOgRdmug2%8R=zLCMB%,:!t5 +}rrrr<<<<:9}9}9}9}9}9}yr^r^r^r^r^r^^r~r~r~r~rqrrrrrgrr^r^r^ +}r +}r +}r +}rr:rr~rr~rr~rr~rr~r}X}X}X}X<<<<X1<b +&\44-----i9}r9}r9}rf}pEE}Ecigcigcigcigh h h c3yyNPNPNPr^^9}rcigERERRRlRbRRRvR +)%rN9}<2hC9}Hhy`iao?O<yrYr pYrq4HTpr5rrr[ 1sr1sr)}ci<<&\{+)y rO29} +}h`iAK} ?b.r^vs'~rC" rr)p0'.&%An"~rsrg "7xc3c3c3yRRRF[[A[EAy9 ^fP9PgOgM0r^F&4"p&?Of>%H^e% Jgd%u ggggl>:4VTTT[ 2hr^u?}r.Mr~rR4@'f_cyW @ao <}r }r}3r'~.wR4@'|rm++11,3.t.<8OCK["4z &5yv6}r +}rh)yyY')8H-8H-<q =D<r^r^^r~rx~jx~jOCI9}r<}r<}r ?A4s%3.tV'0'~r(}$p/LfOL4O I }r1)nY r^r^r^r-r^r^r^r^r^r^r^r^r~rr~rr~rr~rr\~Ir~rr~rr~r<w<9}r9}r9}r9}`9}r9}r9}r?}r?}r?}r?}r?}r.M.M.M.M.Myyyrppiuuug0h 9}r9}r~jup))#__kkbff"-r<XWG8LW :)&WWWWG8WWW:W:G8W[rAr^~r1rrrrGpW0rrQrr0r.rzCq/R>1 , >"F6cdrun<YnuO,R(RLRPqqq/R>1 , "F6crunYnuO,R(%a:7[@DWZ""FH(S)L2%>):4#sv3jOW0~szf)L2%>):4#p$*PUC;.{yv8!gbg\H\\_\K\\`\T\B\L\F)L2%>):4#RPP==HHHHHnqt3 4 st_/2t +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a  +bcdefghjikmlnoqprsutvwxzy{}|~    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}NULLCRuni00A0uni00AD overscoreuni00B2uni00B3uni00B5uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflexCdotcdotDcarondcaronDcroatEmacronemacronEbreveebreve +Edotaccent +edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflexGdotgdotuni0122uni0123 Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflexuni0136uni0137 kgreenlandicLacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146Ncaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacute Scircumflex scircumflexuni021Auni021BTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute +Zdotaccent +zdotaccentlongs +Aringacute +aringacuteAEacuteaeacute Oslashacute oslashacuteuni0218uni0219tonos dieresistonos +Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos +OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiuni03A9 IotadieresisUpsilondieresis +alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhouni03C2sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos +omegatonosuni0401uni0402uni0403uni0404uni0405uni0406uni0407uni0408uni0409uni040Auni040Buni040Cuni040Euni040Funi0410uni0411uni0412uni0413uni0414uni0415uni0416uni0417uni0418uni0419uni041Auni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni0424uni0425uni0426uni0427uni0428uni0429uni042Auni042Buni042Cuni042Duni042Euni042Funi0430uni0431uni0432uni0433uni0434uni0435uni0436uni0437uni0438uni0439uni043Auni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni0444uni0445uni0446uni0447uni0448uni0449uni044Auni044Buni044Cuni044Duni044Euni044Funi0451uni0452uni0453uni0454uni0455uni0456uni0457uni0458uni0459uni045Auni045Buni045Cuni045Euni045Funi0490uni0491WgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2015 underscoredbl quotereversedminutesecond exclamdbluni207F afii08941pesetaEurouni2105uni2113uni2116uni2126 estimated oneeighth threeeighths fiveeighths seveneighthsuni2206 cyrillicbrevecaroncommaaccentuni0326commaaccentrotateuni2074uni2075uni2077uni2078uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200BuniFEFFuniFFFCuniFFFDuni01F0uni02BCuni03D1uni03D2uni03D6uni1E3Euni1E3Funi1E00uni1E01uni02F3OhornohornUhornuhornhookuni0400uni040Duni0450uni045Duni0460uni0461uni0462uni0463uni0464uni0465uni0466uni0467uni0468uni0469uni046Auni046Buni046Cuni046Duni046Euni046Funi0470uni0471uni0472uni0473uni0474uni0475uni0476uni0477uni0478uni0479uni047Auni047Buni047Cuni047Duni047Euni047Funi0480uni0481uni0482uni0488uni0489uni048Auni048Buni048Cuni048Duni048Euni048Funi0492uni0493uni0494uni0495uni0496uni0497uni0498uni0499uni049Auni049Buni049Cuni049Duni049Euni049Funi04A0uni04A1uni04A2uni04A3uni04A4uni04A5uni04A6uni04A7uni04A8uni04A9uni04AAuni04ABuni04ACuni04ADuni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B4uni04B5uni04B6uni04B7uni04B8uni04B9uni04BAuni04BBuni04BCuni04BDuni04BEuni04BFuni04C0uni04C1uni04C2uni04C3uni04C4uni04C5uni04C6uni04C7uni04C8uni04C9uni04CAuni04CBuni04CCuni04CDuni04CEuni04CFuni04D0uni04D1uni04D2uni04D3uni04D4uni04D5uni04D6uni04D7uni04D8uni04D9uni04DAuni04DBuni04DCuni04DDuni04DEuni04DFuni04E0uni04E1uni04E2uni04E3uni04E4uni04E5uni04E6uni04E7uni04E8uni04E9uni04EAuni04EBuni04ECuni04EDuni04EEuni04EFuni04F0uni04F1uni04F2uni04F3uni04F4uni04F5uni04F6uni04F7uni04F8uni04F9uni04FAuni04FBuni04FCuni04FDuni04FEuni04FFuni0500uni0501uni0502uni0503uni0504uni0505uni0506uni0507uni0508uni0509uni050Auni050Buni050Cuni050Duni050Euni050Funi0510uni0511uni0512uni0513uni1EA0uni1EA1uni1EA2uni1EA3uni1EA4uni1EA5uni1EA6uni1EA7uni1EA8uni1EA9uni1EAAuni1EABuni1EACuni1EADuni1EAEuni1EAFuni1EB0uni1EB1uni1EB2uni1EB3uni1EB4uni1EB5uni1EB6uni1EB7uni1EB8uni1EB9uni1EBAuni1EBBuni1EBCuni1EBDuni1EBEuni1EBFuni1EC0uni1EC1uni1EC2uni1EC3uni1EC4uni1EC5uni1EC6uni1EC7uni1EC8uni1EC9uni1ECAuni1ECBuni1ECCuni1ECDuni1ECEuni1ECFuni1ED0uni1ED1uni1ED2uni1ED3uni1ED4uni1ED5uni1ED6uni1ED7uni1ED8uni1ED9uni1EDAuni1EDBuni1EDCuni1EDDuni1EDEuni1EDFuni1EE0uni1EE1uni1EE2uni1EE3uni1EE4uni1EE5uni1EE6uni1EE7uni1EE8uni1EE9uni1EEAuni1EEBuni1EECuni1EEDuni1EEEuni1EEFuni1EF0uni1EF1uni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9uni20ABcircumflexacutecombcircumflexgravecombcircumflexhookcombcircumflextildecombbreveacutecombbrevegravecomb brevehookcombbrevetildecombcyrillichookleftcyrillicbighookUCuni0162uni0163uni01EAuni01EBuni01ECuni01EDuni0259 hookabovecombuni1F4Duni1FDEuni2070uni2076uni2079uni03B9030803040300uni03B9030803040301uni03B9030803060300uni03B9030803060301uni03C5030803040300uni03C5030803040301uni03C5030803060300uni03C5030803060301Eng.alt1Eng.alt2Eng.alt3uni030103060308uni030003060308uni030103040308uni030003040308cyrillic_otmarkf_ff_f_if_f_luni1E9EuniA7B3uniA7B4uni013B.loclMAHuni0145.loclMAHAogonek.loclNAVEogonek.loclNAVIogonek.loclNAVUogonek.loclNAVI.saltJ.salt Igrave.salt Iacute.saltIcircumflex.saltIdieresis.salt Itilde.salt Imacron.salt Ibreve.salt Iogonek.saltIogonek_loclNAV.saltIdotaccent.saltIJ.saltJcircumflex.salt uni1EC8.salt uni1ECA.saltIotatonos.salt Iota.saltIotadieresis.salt uni0406.salt uni0407.salt uni0408.salt uni04C0.saltuni0237uniA7B5uniAB53 uni0123.altuni013C.loclMAHuni0146.loclMAHaogonek.loclNAVeogonek.loclNAViogonek.loclNAVuogonek.loclNAVg.saltgcircumflex.salt gbreve.salt gdot.salt florin.ss03uni0431.loclSRB uni04CF.saltuni2095uni2096uni2097uni2098uni2099uni209Auni209Buni209Cuni05D0uni05D1uni05D2uni05D3uni05D4uni05D5uni05D6uni05D7uni05D8uni05D9uni05DAuni05DBuni05DCuni05DDuni05DEuni05DFuni05E0uni05E1uni05E2uni05E3uni05E4uni05E5uni05E6uni05E7uni05E8uni05E9uni05EAuniFB2AuniFB2BuniFB2CuniFB2DuniFB2EuniFB2FuniFB30uniFB31uniFB32uniFB33uniFB34uniFB35uniFB36uniFB38uniFB39uniFB3AuniFB3BuniFB3CuniFB3EuniFB40uniFB41uniFB43uniFB44uniFB46uniFB47uniFB48uniFB49uniFB4AuniFB4B gravecomb acutecombuni0302 tildecombuni0304uni0306uni0307uni0308uni030Auni030Buni030Cuni030Funi0312 dotbelowcombuni0327uni0328uni0485uni0486uni0483uni0484uni05B0uni05B1uni05B2uni05B3uni05B4uni05B5uni05B6uni05B7uni05B8uni05B9uni05BAuni05BBuni05BCuni05BDuni05C1uni05C2uni05C7 zero.dnomone.dnomtwo.dnom +three.dnom four.dnom five.dnomsix.dnom +seven.dnom +eight.dnom nine.dnomzero.lfone.lftwo.lfthree.lffour.lffive.lfsix.lfseven.lfeight.lfnine.lf zero.numrone.numrtwo.numr +three.numr four.numr five.numrsix.numr +seven.numr +eight.numr nine.numrzero.osfone.osftwo.osf three.osffour.osffive.osfsix.osf seven.osf eight.osfnine.osf +zero.slash zero.tosfone.tosftwo.tosf +three.tosf four.tosf five.tosfsix.tosf +seven.tosf +eight.tosf nine.tosfuni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089uni05BEuni207Duni208Duni207Euni208Euni207Auni207Cuni208Auni208Cuni2215uni20AAuni2120afii10103dotlessafii10105dotless commaaccent2iogonekdotlessuni1ECBdotless,    6 " $  > ^ * (, +BT > < " 42 f    +  +        +"  $ +  .  &J &p * , $ . 8> <v > 6 @& f x        +Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)Open SansRegular3.000;GOOG;OpenSans-RegularOpen Sans RegularVersion 3.000OpenSans-RegularOpen Sans is a trademark of Google and may be registered in certain jurisdictions.Monotype Imaging Inc.Monotype Design TeamDesigned by Monotype design team.http://www.google.com/get/noto/http://www.monotype.com/studioThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttp://scripts.sil.org/OFLOpenSansRomanWeightWidthLightSemiBoldBoldExtraBoldCondensed LightCondensed RegularCondensed SemiBoldCondensed BoldCondensed ExtraBoldOpenSansRoman-LightOpenSansRoman-RegularOpenSansRoman-SemiBoldOpenSansRoman-BoldOpenSansRoman-ExtraBoldOpenSansRoman-CondensedLightOpenSansRoman-CondensedRegularOpenSansRoman-CondensedSemiBoldOpenSansRoman-CondensedBoldOpenSansRoman-CondensedExtraBoldCondensedSemiCondensedNormalMediumItalicRomanB_< w&Q b332@ (GOOGH  +endstream +endobj +8 0 obj +<< +/Length 706 +/Length1 706 +>> +stream +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo << + /Registry (Adobe) + /Ordering (UCS) + /Supplement 0 +>> def +/CMapName /Adobe-Identity-UCS def +/CMapType 2 def +1 begincodespacerange +<0000> +endcodespacerange +29 beginbfchar +<000d><002a> +<0011><002e> +<0013><0030> +<0014><0031> +<0042><005f> +<0044><0061> +<0045><0062> +<0046><0063> +<0047><0064> +<0048><0065> +<0049><0066> +<004a><0067> +<004b><0068> +<004c><0069> +<004e><006b> +<004f><006c> +<0050><006d> +<0051><006e> +<0052><006f> +<0053><0070> +<0054><0071> +<0055><0072> +<0056><0073> +<0057><0074> +<0058><0075> +<0059><0076> +<005a><0077> +<005b><0078> +<005c><0079> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +endstream +endobj +9 0 obj +<< +/Type /FontDescriptor +/FontName /Open#20Sans +/FontFile2 7 0 R +/FontBBox [-549 -272 1201 1048] +/Flags 32 +/StemV 0 +/ItalicAngle 0 +/Ascent 1069 +/Descent -293 +/CapHeight 1462 +>> +endobj +10 0 obj +<< +/Type /Font +/BaseFont /Open#20Sans +/FontDescriptor 9 0 R +/W [19 [571] 17 [262] 20 [571] 13 [550] 74 [542] 85 [408] 82 [601] 88 [613] 83 [611] 66 [437] 76 [252] 71 [611] 81 [613] 87 [356] 72 [561] 68 [555] 80 [925] 91 [523] 70 [479] 89 [499] 90 [774] 86 [476] 75 [613] 79 [252] 92 [500] 69 [611] 78 [525] 73 [336] 84 [611]] +/CIDToGIDMap /Identity +/DW 1000 +/Subtype /CIDFontType2 +/CIDSystemInfo +<< +/Supplement 0 +/Registry (Adobe) +/Ordering (Identity-H) +>> +>> +endobj +11 0 obj +<< +/Type /Font +/Subtype /Type0 +/ToUnicode 8 0 R +/BaseFont /Open#20Sans +/Encoding /Identity-H +/DescendantFonts [10 0 R] +>> +endobj +12 0 obj +<< +/Length 25496 +/Length1 25496 +>> +stream + +0Epcmap8glyfJ Dloca&p& hmtx hhea) 1$maxp1 post&1'jnamecHoY< head%c6OS/2l c8`` ~01ac7Y #(  OP\_?M   " & 0 3 : < D p z  !!!! !"!&!.!^""""""""+"H"`"e%ʧS6<>ADK 12bd7Y#& PQ]`>M   & 0 2 9 < D p t | !!!! !"!&!.![""""""""+"H"`"d%ʧS*8>@CF~ ZHyu`{xYM geb^Qyj h(;,us +N$!WhX_HL|dHI#$t  + 5\78x9:yhidfkegmbNH/301A!5!NRV;u(#@%%  r +rr+2++9/33301A2#'##"&&5467754&#"'663265j;0d]cZ\RQNeYvsRBbuPj48jL_FFyz-%KqoG3.,'\q$%@ +rr +r r+233+233++01E"323&&5!#'#726754&#"PzY +2; Wx}gders%',J. }Bf.K,!\bs@   rr+2+29/301A2!3267#"$&546"!.mz/k^SYu /]sw⣔,,)&|rzDj>ms/?K-@" @@ 99))Fr0r+2+2239/3929901A"&5467&&5467&&546632!#&'332%26654&&##"2654&#"~z/FJFXgk͓RE 5/%K8mT1cM8Y4yVPSSTTSe[3@U)&rzZ +-%T/()K4*1$A+?HPj[eeee[j@r +r r+233+2+01A3>32!4&#"! $cxEydX\\j,S:H"U'xzUw +r +r++201A!2#"&546ϙDbbDEaa^^?VUAAUV? r +r++01a!!1Bs'(@$%! r!rr +r+22+++23301A2!4&#"!4&&#"!33>32366RVyf$J:Ua))"g|@{.2s'xzPl6Uw^:H"PTVNs@r +r r+233+2+01A2!4&#"!33>W]f)$ks'xz^:H"\s r r+2+201A#".54632326654&&#"K~vőO0fRQe//fRym1ؕLL،nLLnoJs(%@rr "" rr+233+233++01A2#"&&'#!33>"326654&n~QtR+VyP^+)aUFZ-fs)A%(T(=J-L-Be!lNNmws@ r +rr+233++01A2&&#"!33>=7;oX3-!csCmO^9_9\s*@' r  r+2+2901A#"&'532654&&'.54632&&#"kԞuU[OYMfmiAhd\SLCD#eb_LLrQ#)55+-9.,Z{_*.$.$%*3('U}/7L@ r r+2+233901e267#"&&5#5773!!w2_/1Vd[X9IAf@?^@ r r +r++233+201A#'##"&&5!32665)$lFxc1V^]j+^9H"UsxzUw^@ r r+2+2901Q!3667!#"&'5326677N + +G'+k4L@#@\>^>B$6^.utN 6[67$$^f`rNV\ D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D DJu+-X5?R!R=\?XH?=HuNJyNN#dH7HBHuH?XXX-f`w{dwhP^w^wHh^) 3V1N 3/JRV\\\)Bqq}qB\\\y/B +7'h'RXJuRqhjd/RX=dmPX/;RH=qHu\9R--Z7w{{{{/^w^w^w^w^w^w    VVVVVVVV\\\\\qqqq\B\\\\\X\BBBBVVVw\w\w\w\\/1\{\{\{\{\{\wwwwBBqqqq\Lhq}PqqqqBBB)B^w\^w\^w\w\HHHZh^\h^Nh^\h^P)y/)y/)y/ B B B B B B171717VVV^w\h^\RRJRRRR9RR!RHuf +B`}D9{1^wP3R^wN)\VmJ7-\qNBB)-\H\qN\B\BH\\y\9\N))V\mB)\)m{q)}jwh^hq)`N`} +{/^`^ww)N\V?m?NHRV\P\qN)L\7\m/\ +?{J\B1\\qqq}B`RRRJH@@!{!qbu +??m^1^RRu +wjh#R#B\?))9/#J7f7;`;;D9 )Xd%qLXXXXXh^TN T;-VHTTTq}) 3VXwo\{\+'bLf +7o) +)qm^w\ +w X\wo\ww+'jw1\h))Tj/y/;/^qN R``- 7w?\w\)f/ +q)T/om{m?{B9Lm?{JhVVVV{\XX/^qN99^w\^w\^w\NHJNNNm?{}?y/) +V +\\h\b\N9JND{XfwN\)//XqNVVVVVVVVVVV{\{\{\{\{{\{\{\quq^w\^w\^w\^w^w\^w\^w\wo\wo\wo\wo\wo\ B B1\- -11111 +V)y/^w\^w\X)3+BBBB)))) ==VV1)))))`{ B9B8> BBBB9BBmB8B89Bqq}H\q_BV\q\B\\\\# \Bjh9hhhjhJh<B1\fFa+AqpA2PE+B[GAfZIo\\FF\A:+EfGEfEfEfEf1\1\1\fFa+Aq2PE+B[Gfo\\F\A:+EfGq^P}Z Rj<5/-?VAEE)\/; T3;-+m#yDN#fmFb\)\/; T3;-+`?=-hXFHHJ=NC;!hXFN>)\/; T3;-+=LL99HHHHNZ37qq}^q\ + +st_/2t +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a  +bcdefghjikmlnoqprsutvwxzy{}|~    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}NULLCRuni00A0uni00AD overscoreuni00B2uni00B3uni00B5uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflexCdotcdotDcarondcaronDcroatEmacronemacronEbreveebreve +Edotaccent +edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflexGdotgdotuni0122uni0123 Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflexuni0136uni0137 kgreenlandicLacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146Ncaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacute Scircumflex scircumflexuni021Auni021BTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute +Zdotaccent +zdotaccentlongs +Aringacute +aringacuteAEacuteaeacute Oslashacute oslashacuteuni0218uni0219tonos dieresistonos +Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos +OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiuni03A9 IotadieresisUpsilondieresis +alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhouni03C2sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos +omegatonosuni0401uni0402uni0403uni0404uni0405uni0406uni0407uni0408uni0409uni040Auni040Buni040Cuni040Euni040Funi0410uni0411uni0412uni0413uni0414uni0415uni0416uni0417uni0418uni0419uni041Auni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni0424uni0425uni0426uni0427uni0428uni0429uni042Auni042Buni042Cuni042Duni042Euni042Funi0430uni0431uni0432uni0433uni0434uni0435uni0436uni0437uni0438uni0439uni043Auni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni0444uni0445uni0446uni0447uni0448uni0449uni044Auni044Buni044Cuni044Duni044Euni044Funi0451uni0452uni0453uni0454uni0455uni0456uni0457uni0458uni0459uni045Auni045Buni045Cuni045Euni045Funi0490uni0491WgravewgraveWacutewacute Wdieresis wdieresisYgraveygraveuni2015 underscoredbl quotereversedminutesecond exclamdbluni207F afii08941pesetaEurouni2105uni2113uni2116uni2126 estimated oneeighth threeeighths fiveeighths seveneighthsuni2206 cyrillicbrevecaroncommaaccentuni0326commaaccentrotateuni2074uni2075uni2077uni2078uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200BuniFEFFuniFFFCuniFFFDuni01F0uni02BCuni03D1uni03D2uni03D6uni1E3Euni1E3Funi1E00uni1E01uni02F3OhornohornUhornuhornhookuni0400uni040Duni0450uni045Duni0460uni0461uni0462uni0463uni0464uni0465uni0466uni0467uni0468uni0469uni046Auni046Buni046Cuni046Duni046Euni046Funi0470uni0471uni0472uni0473uni0474uni0475uni0476uni0477uni0478uni0479uni047Auni047Buni047Cuni047Duni047Euni047Funi0480uni0481uni0482uni0488uni0489uni048Auni048Buni048Cuni048Duni048Euni048Funi0492uni0493uni0494uni0495uni0496uni0497uni0498uni0499uni049Auni049Buni049Cuni049Duni049Euni049Funi04A0uni04A1uni04A2uni04A3uni04A4uni04A5uni04A6uni04A7uni04A8uni04A9uni04AAuni04ABuni04ACuni04ADuni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B4uni04B5uni04B6uni04B7uni04B8uni04B9uni04BAuni04BBuni04BCuni04BDuni04BEuni04BFuni04C0uni04C1uni04C2uni04C3uni04C4uni04C5uni04C6uni04C7uni04C8uni04C9uni04CAuni04CBuni04CCuni04CDuni04CEuni04CFuni04D0uni04D1uni04D2uni04D3uni04D4uni04D5uni04D6uni04D7uni04D8uni04D9uni04DAuni04DBuni04DCuni04DDuni04DEuni04DFuni04E0uni04E1uni04E2uni04E3uni04E4uni04E5uni04E6uni04E7uni04E8uni04E9uni04EAuni04EBuni04ECuni04EDuni04EEuni04EFuni04F0uni04F1uni04F2uni04F3uni04F4uni04F5uni04F6uni04F7uni04F8uni04F9uni04FAuni04FBuni04FCuni04FDuni04FEuni04FFuni0500uni0501uni0502uni0503uni0504uni0505uni0506uni0507uni0508uni0509uni050Auni050Buni050Cuni050Duni050Euni050Funi0510uni0511uni0512uni0513uni1EA0uni1EA1uni1EA2uni1EA3uni1EA4uni1EA5uni1EA6uni1EA7uni1EA8uni1EA9uni1EAAuni1EABuni1EACuni1EADuni1EAEuni1EAFuni1EB0uni1EB1uni1EB2uni1EB3uni1EB4uni1EB5uni1EB6uni1EB7uni1EB8uni1EB9uni1EBAuni1EBBuni1EBCuni1EBDuni1EBEuni1EBFuni1EC0uni1EC1uni1EC2uni1EC3uni1EC4uni1EC5uni1EC6uni1EC7uni1EC8uni1EC9uni1ECAuni1ECBuni1ECCuni1ECDuni1ECEuni1ECFuni1ED0uni1ED1uni1ED2uni1ED3uni1ED4uni1ED5uni1ED6uni1ED7uni1ED8uni1ED9uni1EDAuni1EDBuni1EDCuni1EDDuni1EDEuni1EDFuni1EE0uni1EE1uni1EE2uni1EE3uni1EE4uni1EE5uni1EE6uni1EE7uni1EE8uni1EE9uni1EEAuni1EEBuni1EECuni1EEDuni1EEEuni1EEFuni1EF0uni1EF1uni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9uni20ABcircumflexacutecombcircumflexgravecombcircumflexhookcombcircumflextildecombbreveacutecombbrevegravecomb brevehookcombbrevetildecombcyrillichookleftcyrillicbighookUCuni0162uni0163uni01EAuni01EBuni01ECuni01EDuni0259 hookabovecombuni1F4Duni1FDEuni2070uni2076uni2079uni03B9030803040300uni03B9030803040301uni03B9030803060300uni03B9030803060301uni03C5030803040300uni03C5030803040301uni03C5030803060300uni03C5030803060301Eng.alt1Eng.alt2Eng.alt3uni030103060308uni030003060308uni030103040308uni030003040308cyrillic_otmarkf_ff_f_if_f_luni1E9EuniA7B3uniA7B4uni013B.loclMAHuni0145.loclMAHAogonek.loclNAVEogonek.loclNAVIogonek.loclNAVUogonek.loclNAVI.saltJ.salt Igrave.salt Iacute.saltIcircumflex.saltIdieresis.salt Itilde.salt Imacron.salt Ibreve.salt Iogonek.saltIogonek_loclNAV.saltIdotaccent.saltIJ.saltJcircumflex.salt uni1EC8.salt uni1ECA.saltIotatonos.salt Iota.saltIotadieresis.salt uni0406.salt uni0407.salt uni0408.salt uni04C0.saltuni0237uniA7B5uniAB53 uni0123.altuni013C.loclMAHuni0146.loclMAHaogonek.loclNAVeogonek.loclNAViogonek.loclNAVuogonek.loclNAVg.saltgcircumflex.salt gbreve.salt gdot.salt florin.ss03uni0431.loclSRB uni04CF.saltuni2095uni2096uni2097uni2098uni2099uni209Auni209Buni209Cuni05D0uni05D1uni05D2uni05D3uni05D4uni05D5uni05D6uni05D7uni05D8uni05D9uni05DAuni05DBuni05DCuni05DDuni05DEuni05DFuni05E0uni05E1uni05E2uni05E3uni05E4uni05E5uni05E6uni05E7uni05E8uni05E9uni05EAuniFB2AuniFB2BuniFB2CuniFB2DuniFB2EuniFB2FuniFB30uniFB31uniFB32uniFB33uniFB34uniFB35uniFB36uniFB38uniFB39uniFB3AuniFB3BuniFB3CuniFB3EuniFB40uniFB41uniFB43uniFB44uniFB46uniFB47uniFB48uniFB49uniFB4AuniFB4B gravecomb acutecombuni0302 tildecombuni0304uni0306uni0307uni0308uni030Auni030Buni030Cuni030Funi0312 dotbelowcombuni0327uni0328uni0485uni0486uni0483uni0484uni05B0uni05B1uni05B2uni05B3uni05B4uni05B5uni05B6uni05B7uni05B8uni05B9uni05BAuni05BBuni05BCuni05BDuni05C1uni05C2uni05C7 zero.dnomone.dnomtwo.dnom +three.dnom four.dnom five.dnomsix.dnom +seven.dnom +eight.dnom nine.dnomzero.lfone.lftwo.lfthree.lffour.lffive.lfsix.lfseven.lfeight.lfnine.lf zero.numrone.numrtwo.numr +three.numr four.numr five.numrsix.numr +seven.numr +eight.numr nine.numrzero.osfone.osftwo.osf three.osffour.osffive.osfsix.osf seven.osf eight.osfnine.osf +zero.slash zero.tosfone.tosftwo.tosf +three.tosf four.tosf five.tosfsix.tosf +seven.tosf +eight.tosf nine.tosfuni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089uni05BEuni207Duni208Duni207Euni208Euni207Auni207Cuni208Auni208Cuni2215uni20AAuni2120afii10103dotlessafii10105dotless commaaccent2iogonekdotlessuni1ECBdotless,    0   h  * (r +B0 > < " 4` F  :  +0  +&        +"  $  v  &P &* * , $ . 8J < > 6 @Z H .  "    +  +RomanItalicMediumNormalSemiCondensedCondensedOpenSansRoman-CondensedExtraBoldOpenSansRoman-CondensedBoldOpenSansRoman-CondensedSemiBoldOpenSansRoman-CondensedRegularOpenSansRoman-CondensedLightOpenSansRoman-ExtraBoldOpenSansRoman-BoldOpenSansRoman-SemiBoldOpenSansRoman-RegularOpenSansRoman-LightCondensed ExtraBoldCondensed BoldCondensed SemiBoldCondensed RegularCondensed LightExtraBoldSemiBoldRegularLightWidthWeightOpenSansRomanhttp://scripts.sil.org/OFLThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttp://www.monotype.com/studiohttp://www.google.com/get/noto/Designed by Monotype design team.Monotype Design TeamMonotype Imaging Inc.Open Sans is a trademark of Google and may be registered in certain jurisdictions.OpenSans-BoldVersion 3.000Open Sans Bold3.000;GOOG;OpenSans-BoldBoldOpen SansCopyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)Bj=_< w&Q +332@ (GOOGH  +endstream +endobj +13 0 obj +<< +/Length 576 +/Length1 576 +>> +stream +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo << + /Registry (Adobe) + /Ordering (UCS) + /Supplement 0 +>> def +/CMapName /Adobe-Identity-UCS def +/CMapType 2 def +1 begincodespacerange +<0000> +endcodespacerange +19 beginbfchar +<0042><005f> +<0044><0061> +<0045><0062> +<0046><0063> +<0047><0064> +<0048><0065> +<004a><0067> +<004b><0068> +<004c><0069> +<004f><006c> +<0050><006d> +<0051><006e> +<0052><006f> +<0053><0070> +<0055><0072> +<0056><0073> +<0057><0074> +<0058><0075> +<005c><0079> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +endstream +endobj +14 0 obj +<< +/Type /FontDescriptor +/FontName /Open#20Sans +/FontFile2 12 0 R +/FontBBox [-619 -295 1319 1069] +/Flags 32 +/StemV 0 +/ItalicAngle 0 +/Ascent 1069 +/Descent -293 +/CapHeight 1462 +>> +endobj +15 0 obj +<< +/Type /Font +/BaseFont /Open#20Sans +/FontDescriptor 14 0 R +/W [86 [497] 75 [657] 72 [590] 83 [632] 76 [305] 71 [632] 81 [657] 87 [434] 74 [564] 85 [454] 68 [604] 80 [981] 82 [619] 88 [657] 69 [632] 70 [514] 66 [411] 92 [568] 79 [305]] +/CIDToGIDMap /Identity +/DW 1000 +/Subtype /CIDFontType2 +/CIDSystemInfo +<< +/Supplement 0 +/Registry (Adobe) +/Ordering (Identity-H) +>> +>> +endobj +16 0 obj +<< +/Type /Font +/Subtype /Type0 +/ToUnicode 13 0 R +/BaseFont /Open#20Sans +/Encoding /Identity-H +/DescendantFonts [15 0 R] +>> +endobj +17 0 obj +<< +/ca 0. +>> +endobj +2 0 obj +<< +/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << +/F15 11 0 R +/F16 16 0 R +>> +/ExtGState << +/GS1 17 0 R +>> +/XObject << +>> +>> +endobj +18 0 obj +<< +/Producer (jsPDF 2.5.2) +/CreationDate (D:20250313011157+02'00') +>> +endobj +19 0 obj +<< +/Type /Catalog +/Pages 1 0 R +/OpenAction [3 0 R /FitH null] +/PageLayout /OneColumn +>> +endobj +xref +0 20 +0000000000 65535 f +0000383860 00000 n +0000439078 00000 n +0000000015 00000 n +0000000327 00000 n +0000191754 00000 n +0000192066 00000 n +0000383923 00000 n +0000410547 00000 n +0000411317 00000 n +0000411509 00000 n +0000411985 00000 n +0000412123 00000 n +0000437688 00000 n +0000438329 00000 n +0000438523 00000 n +0000438910 00000 n +0000439049 00000 n +0000439225 00000 n +0000439311 00000 n +trailer +<< +/Size 20 +/Root 19 0 R +/Info 18 0 R +/ID [ <693E0E0BD40C9B6F4285870E88F306B3> <693E0E0BD40C9B6F4285870E88F306B3> ] +>> +startxref +439415 +%%EOF \ No newline at end of file diff --git a/dock/Sheep-Service.png b/dock/Sheep-Service.png new file mode 100644 index 0000000..50284b9 Binary files /dev/null and b/dock/Sheep-Service.png differ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fa32423 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,43 @@ +services: + api: + container_name: sheep-service-api + image: sheep-service/api + build: ./api + restart: always + ports: + - "${api:-4000}:${api:-4000}" + volumes: + - "${DB_PATH:-./data}:/app/data" + - "${CARDS_PATH:-./data}:/app/data/cards" + environment: + - DATABASE_PATH=/app/data/ + - CARDS_PATH=/app/data/cards/ + - PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium + shm_size: '1gb' + + ws: + container_name: sheep-service-ws + image: sheep-service/ws + build: ./ws + restart: always + ports: + - "${ws:-4001}:${ws:-4001}" + volumes: + - "${DB_PATH:-./data}:/app/data" + environment: + - DATABASE_PATH=/app/data/ + + web: + container_name: sheep-service-web + image: sheep-service/web + build: ./web + restart: always + ports: + - "${web:-4002}:${web:-4002}" + volumes: + - "${CARDS_PATH:-./data}:/app/data/cards" + environment: + - CARDS_PATH=/app/data/cards/ + +volumes: + data: diff --git a/scripts/import.js b/scripts/import.js new file mode 100644 index 0000000..4714f31 --- /dev/null +++ b/scripts/import.js @@ -0,0 +1,170 @@ +const sqlite3 = require('sqlite3'); +const crypto = require('crypto'); + +// Данные для записи +const data = [ + { "name": "Богданова Л.", "group": "1", "status": "lamb" }, + { "name": "Ботюк Л.", "group": "1", "status": "lamb" }, + { "name": "Ботюк М.", "group": "1", "status": "elder" }, + { "name": "Венгер С.", "group": "1", "status": "lamb" }, + { "name": "Гловюк С.", "group": "1", "status": "lamb" }, + { "name": "Гнатюк П.", "group": "1", "status": "lamb" }, + { "name": "Дуньковська Г.", "group": "1", "status": "lamb" }, + { "name": "Корінь О.", "group": "1", "status": "lamb" }, + { "name": "Медецька Л.", "group": "1", "status": "lamb" }, + { "name": "Меладзе А.", "group": "1", "status": "lamb" }, + { "name": "Меладзе М.", "group": "1", "status": "lamb" }, + { "name": "Нуждіна Н.", "group": "1", "status": "lamb" }, + { "name": "Сидорчук І.", "group": "1", "status": "lamb" }, + { "name": "Сидорчук О.", "group": "1", "status": "elder" }, + { "name": "Смірнов Б.", "group": "1", "status": "lamb" }, + { "name": "Смірнова В.", "group": "1", "status": "lamb" }, + { "name": "Смірнов Л.", "group": "1", "status": "lamb" }, + { "name": "Ткаченко Н.", "group": "1", "status": "lamb" }, + { "name": "Медецький Р.", "group": "1", "status": "lamb" }, + { "name": "Заболотний В.", "group": "1", "status": "lamb" }, + { "name": "Власюк Т.", "group": "2", "status": "lamb" }, + { "name": "Демків В.", "group": "2", "status": "lamb" }, + { "name": "Іващенко А.", "group": "2", "status": "lamb" }, + { "name": "Кіналь Г.", "group": "2", "status": "lamb" }, + { "name": "Кіналь М.", "group": "2", "status": "lamb" }, + { "name": "Кіналь Т.", "group": "2", "status": "lamb" }, + { "name": "Ковчук Д.", "group": "2", "status": "lamb" }, + { "name": "Кушнірук Н.", "group": "2", "status": "lamb" }, + { "name": "Муц М.", "group": "2", "status": "elder" }, + { "name": "Муц Н.", "group": "2", "status": "lamb" }, + { "name": "Муц О.", "group": "2", "status": "lamb" }, + { "name": "Подвірна О.", "group": "2", "status": "lamb" }, + { "name": "Позовиков М.", "group": "2", "status": "elder" }, + { "name": "Позовиков О.", "group": "2", "status": "lamb" }, + { "name": "Позовикова Е.", "group": "2", "status": "lamb" }, + { "name": "Позовикова Л.", "group": "2", "status": "lamb" }, + { "name": "Позовикова М.", "group": "2", "status": "lamb" }, + { "name": "Резніченко А.", "group": "2", "status": "lamb" }, + { "name": "Резніченко В.", "group": "2", "status": "lamb" }, + { "name": "Хоптій Л.", "group": "2", "status": "lamb" }, + { "name": "Авдєєва В.", "group": "3", "status": "lamb" }, + { "name": "Авдєєв П.", "group": "3", "status": "lamb" }, + { "name": "Гречило Л.", "group": "3", "status": "lamb" }, + { "name": "Гушатей З.", "group": "3", "status": "lamb" }, + { "name": "Дворянська Н.", "group": "3", "status": "lamb" }, + { "name": "Дворянський М.", "group": "3", "status": "lamb" }, + { "name": "Дворянська М.", "group": "3", "status": "lamb" }, + { "name": "Дуньковська Ол.", "group": "3", "status": "lamb" }, + { "name": "Дуньковський В.", "group": "3", "status": "elder" }, + { "name": "Дуньковська Л.", "group": "3", "status": "lamb" }, + { "name": "Кавюк Н.", "group": "3", "status": "lamb" }, + { "name": "Ковалюк Е.", "group": "3", "status": "lamb" }, + { "name": "Ковалюк С.", "group": "3", "status": "lamb" }, + { "name": "Липа А.", "group": "3", "status": "lamb" }, + { "name": "Липа Н.", "group": "3", "status": "lamb" }, + { "name": "Музика С.", "group": "3", "status": "elder" }, + { "name": "Музика Св.", "group": "3", "status": "lamb" }, + { "name": "Філь Н.", "group": "3", "status": "lamb" }, + { "name": "Червенко Л.", "group": "3", "status": "lamb" }, + { "name": "Майка М.", "group": "3", "status": "lamb" }, + { "name": "Петрович І.", "group": "3", "status": "lamb" }, + { "name": "Буняк Н.", "group": "4", "status": "lamb" }, + { "name": "Буярська А.", "group": "4", "status": "lamb" }, + { "name": "Буярська Н.", "group": "4", "status": "lamb" }, + { "name": "Буярський М.", "group": "4", "status": "elder" }, + { "name": "Грищук Т.", "group": "4", "status": "lamb" }, + { "name": "Карелін І.", "group": "4", "status": "lamb" }, + { "name": "Кареліна Ір.", "group": "4", "status": "lamb" }, + { "name": "Кареліна С.", "group": "4", "status": "lamb" }, + { "name": "Ковальчук Н.", "group": "4", "status": "lamb" }, + { "name": "Ковальчук Р.", "group": "4", "status": "lamb" }, + { "name": "Ковчук Р.", "group": "4", "status": "lamb" }, + { "name": "Резніченко Т.", "group": "4", "status": "lamb" }, + { "name": "Сергієнко О.", "group": "4", "status": "lamb" }, + { "name": "Сергієнко С.", "group": "4", "status": "lamb" }, + { "name": "Стойкевич М.", "group": "4", "status": "lamb" }, + { "name": "Чапайло Г.", "group": "4", "status": "lamb" }, + { "name": "Шептицька В.", "group": "4", "status": "lamb" }, + { "name": "Шептицький І.", "group": "4", "status": "lamb" }, + { "name": "Благов Я.", "group": "5", "status": "lamb" }, + { "name": "Благова П.", "group": "5", "status": "lamb" }, + { "name": "Богів Г.", "group": "5", "status": "lamb" }, + { "name": "Богів Т.", "group": "5", "status": "lamb" }, + { "name": "Галка А.", "group": "5", "status": "lamb" }, + { "name": "Домбрович О.", "group": "5", "status": "lamb" }, + { "name": "Кавюк А.", "group": "5", "status": "lamb" }, + { "name": "Кавюк В.", "group": "5", "status": "elder" }, + { "name": "Кузнєцова Н.", "group": "5", "status": "lamb" }, + { "name": "Луців І.", "group": "5", "status": "lamb" }, + { "name": "Луців О.", "group": "5", "status": "lamb" }, + { "name": "Сиротюк В.", "group": "5", "status": "lamb" }, + { "name": "Сиротюк О.", "group": "5", "status": "lamb" }, + { "name": "Солонинка С.", "group": "5", "status": "lamb" }, + { "name": "Ульянич І.", "group": "5", "status": "lamb" }, + { "name": "Ульянич О.", "group": "5", "status": "lamb" }, + { "name": "Шмигельська С.", "group": "5", "status": "lamb" }, + { "name": "Сидорчук Т.", "group": "5", "status": "lamb" }, + { "name": "Білоліпецький І.", "group": "6", "status": "lamb" }, + { "name": "Винниченко Г.", "group": "6", "status": "lamb" }, + { "name": "Воронцов Д.", "group": "6", "status": "lamb" }, + { "name": "Дуньковська О.", "group": "6", "status": "lamb" }, + { "name": "Загурська О.", "group": "6", "status": "lamb" }, + { "name": "Іваненко К.", "group": "6", "status": "lamb" }, + { "name": "Кравчук Н.", "group": "6", "status": "lamb" }, + { "name": "Кузюк В.", "group": "6", "status": "lamb" }, + { "name": "Кузюк С.", "group": "6", "status": "lamb" }, + { "name": "Маняхіна А.", "group": "6", "status": "lamb" }, + { "name": "Мельник Н.", "group": "6", "status": "lamb" }, + { "name": "Мінтенко М.", "group": "6", "status": "lamb" }, + { "name": "Мінтенко Н.", "group": "6", "status": "lamb" }, + { "name": "Наворинська Н.", "group": "6", "status": "lamb" }, + { "name": "Носевич І.", "group": "6", "status": "lamb" }, + { "name": "Носевич Т.", "group": "6", "status": "lamb" }, + { "name": "Страшок М.", "group": "6", "status": "elder" }, + { "name": "Страшок О.", "group": "6", "status": "lamb" }, + { "name": "Мельник О.", "group": "6", "status": "lamb" }, + { "name": "Бугайов Д.", "group": "7", "status": "lamb" }, + { "name": "Гергель Л.", "group": "7", "status": "lamb" }, + { "name": "Гергель О.", "group": "7", "status": "lamb" }, + { "name": "Горун А.", "group": "7", "status": "lamb" }, + { "name": "Ковчук Л.", "group": "7", "status": "lamb" }, + { "name": "Ковчук Н.", "group": "7", "status": "lamb" }, + { "name": "Михайлів С.", "group": "7", "status": "lamb" }, + { "name": "Музика І.", "group": "7", "status": "lamb" }, + { "name": "Музика О.", "group": "7", "status": "lamb" }, + { "name": "Наворинський Р.", "group": "7", "status": "lamb" }, + { "name": "Парила І.", "group": "7", "status": "lamb" }, + { "name": "Резніченко А.", "group": "7", "status": "elder" }, + { "name": "Резніченко В.", "group": "7", "status": "lamb" }, + { "name": "Семчишин Ф.", "group": "7", "status": "elder" }, + { "name": "Сувалко В.", "group": "7", "status": "elder" }, + { "name": "Сувалко Н.", "group": "7", "status": "lamb" }, + { "name": "Якубович Л.", "group": "7", "status": "lamb" } +]; + +// Подключение к базе данных (или создание, если не существует) +const db = new sqlite3.Database('../database.sqlite', (err) => { + if (err) { + console.error('Ошибка при подключении к БД:', err.message); + } else { + console.log('Подключение к SQLite успешно'); + } +}); + +// Вставка данных +const insertData = () => { + const stmt = db.prepare("INSERT INTO sheep (name, group_id, appointment, hash) VALUES (?, ?, ?, ?)"); + data.forEach(user => { + stmt.run(user.name, user.group, user.status, crypto.randomUUID()); + }); + stmt.finalize(); + console.log('Данные успешно записаны'); +}; + +// Запуск вставки данных после создания таблицы +insertData(); + +// Закрытие соединения с БД +db.close((err) => { + if (err) { + console.error('Ошибка при закрытии БД:', err.message); + } else { + console.log('Соединение с БД закрыто'); + } +}); \ No newline at end of file diff --git a/scripts/migrator.js b/scripts/migrator.js new file mode 100644 index 0000000..9076bc9 --- /dev/null +++ b/scripts/migrator.js @@ -0,0 +1,161 @@ +const sqlite3 = require('sqlite3').verbose(); + +const db = new sqlite3.Database('database.sqlite'); +const db_old = new sqlite3.Database('old_db.sqlite'); + + +// Створення підїздів +// const sql_1 = `SELECT * FROM areas`; +// db_old.all(sql_1, [], (err, areas) => { +// if (err) { +// throw err; +// } + +// for (let i = 0; i < areas.length; i++) { +// const area = areas[i]; + +// if(area.type == "house"){ +// // console.log(JSON.parse(area.entrance)); + +// db.get('SELECT * FROM house WHERE title = ? AND number = ?', [area.address_title, area.address_number], (err, house) => { +// if (err) { +// console.error(err.message); +// } else { +// let entrances = JSON.parse(area.entrance); +// let entrance_numbers = JSON.parse(area.entrance_number); + +// for (let q = 0; q < entrances.length; q++) { +// const entrance = entrances[q]; +// const number = entrance_numbers[q]; +// console.log(entrance, number); + +// db.run(`INSERT INTO entrance(house_id, entrance_number, title, points, points_number) VALUES(?, ?, ?, ?, ?)`, +// [ +// house.id, +// q, +// `Під'їзд ${q+1}`, +// JSON.stringify(entrance), +// JSON.stringify(number) +// ], +// function (err) { +// if (err) { +// console.error(err.message); +// } else { +// console.log("New user entrance added with id " + this.lastID); +// } +// } +// ); +// } + +// // console.log(JSON.parse(area.entrance)); +// } +// }) +// } +// } +// }); + + + +// Міграція історії з старої БД в нову +// const sql_1 = `SELECT * FROM history ORDER BY date_start`; +// db_old.all(sql_1, [], (err, historys) => { +// if (err) { +// throw err; +// } + +// for (let i = 0; i < historys.length; i++) { +// const history = historys[i]; + +// db_old.get('SELECT * FROM territory WHERE number = ?', [history.territory_number], (err, territory) => { +// if (err) { +// console.error(err.message); +// } else { +// // console.log(territory); +// let areas_id = JSON.parse(territory.areas_id) + +// for (let index = 0; index < areas_id.length; index++) { +// const element = areas_id[index]; + +// db_old.get('SELECT * FROM areas WHERE id = ?', [element[0]], (err, area) => { +// if (err) { +// console.error(err.message); +// } else { +// if (area.type == "house") { +// console.log(area.address_title, area.address_number); + +// db.get('SELECT * FROM house WHERE title = ? AND number = ?', [area.address_title, area.address_number], (err, house) => { +// if (err) { +// console.error(err.message); +// } else { +// console.log(area.address_title, area.address_number); +// console.log(house.id, element[1]); + +// db.get('SELECT * FROM entrance WHERE house_id = ? AND entrance_number = ?', [house.id, element[1]], (err, entrance) => { +// if (err) { +// console.error(err.message); +// } else { +// console.log(house.id, element[1]); + +// console.log(entrance.id, house.title, house.number, entrance.title); + +// db.run(`INSERT INTO entrance_history(entrance_id, name, date_start, date_end, group_number, working) VALUES(?, ?, ?, ?, ?, ?)`, +// [ +// entrance.id, +// history.name, +// history.date_start, +// history.date_end, +// history.group_number, +// history.working, +// ], +// function (err) { +// if (err) { +// console.error(err.message); +// } else { +// console.log("New user history added with id " + this.lastID); +// } +// } +// ); +// } +// }) +// } +// }) + +// } else { +// db.get('SELECT * FROM homestead WHERE title = ? AND number = ?', [area.address_title, area.address_number], (err, homestead) => { +// if (err) { +// console.error(err.message); +// } else { +// // console.log(house.id, house.title, house.number); + +// db.run(`INSERT INTO homestead_history(homestead_id, name, date_start, date_end, group_number, working) VALUES(?, ?, ?, ?, ?, ?)`, +// [ +// homestead.id, +// history.name, +// history.date_start, +// history.date_end, +// history.group_number, +// history.working, +// ], +// function (err) { +// if (err) { +// console.error(err.message); +// } else { +// console.log("New user history added with id " + this.lastID); +// } +// } +// ); +// } +// }) +// } +// } +// }) + + +// } + + +// } +// }) +// } +// }); + diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 0000000..bba76b2 --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,14 @@ +{ + "name": "import", + "version": "1.0.0", + "main": "import.js", + "scripts": { + "start": "node import.js" + }, + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "sqlite3": "^5.1.7" + } +} diff --git a/scripts/updateDB.py b/scripts/updateDB.py new file mode 100644 index 0000000..dfa095a --- /dev/null +++ b/scripts/updateDB.py @@ -0,0 +1,181 @@ +import sqlite3 + +def table_exists(cursor, table_name): + cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name=?;", (table_name,)) + return cursor.fetchone() is not None + +def create_tables(): + conn = sqlite3.connect("database.sqlite") + cursor = conn.cursor() + + tables = { + "sheep": """ + CREATE TABLE IF NOT EXISTS sheep ( + id INTEGER PRIMARY KEY, + group_id INTEGER, + name TEXT, + icon TEXT, + hash TEXT, + appointment TEXT DEFAULT 'lamb', + mode INTEGER DEFAULT 0, + cu_access INTEGER DEFAULT 0, + mt_access INTEGER DEFAULT 0, + ct_access INTEGER DEFAULT 0, + ms_access INTEGER DEFAULT 0, + sm_access INTEGER DEFAULT 0, + FOREIGN KEY (group_id) REFERENCES groups(id) + );""", + "groups": """ + CREATE TABLE IF NOT EXISTS groups ( + id INTEGER PRIMARY KEY, + group_number INTEGER, + share_hash TEXT + );""", + "subscription": """ + CREATE TABLE IF NOT EXISTS subscription ( + id INTEGER PRIMARY KEY, + sheep_id INTEGER, + token TEXT, + FOREIGN KEY (sheep_id) REFERENCES sheep(id) + );""", + "house": """ + CREATE TABLE IF NOT EXISTS house ( + id INTEGER PRIMARY KEY, + group_id INTEGER, + title TEXT, + number TEXT, + points TEXT DEFAULT '[]', + points_number TEXT DEFAULT '[]', + geo TEXT DEFAULT '[]', + osm_id TEXT DEFAULT '[]', + settlement TEXT, + description TEXT, + created_at TIMESTAMP, + updated_at TIMESTAMP, + FOREIGN KEY (group_id) REFERENCES groups(id) + );""", + "entrance": """ + CREATE TABLE IF NOT EXISTS entrance ( + id INTEGER PRIMARY KEY, + house_id INTEGER, + entrance_number INTEGER, + title TEXT, + points TEXT DEFAULT '[]', + points_number TEXT DEFAULT '[]', + floors_quantity TEXT, + apartments_quantity TEXT, + description TEXT, + created_at TIMESTAMP, + updated_at TIMESTAMP, + FOREIGN KEY (house_id) REFERENCES house(id) + );""", + "entrance_history": """ + CREATE TABLE IF NOT EXISTS entrance_history ( + id INTEGER PRIMARY KEY, + entrance_id INTEGER, + name TEXT, + date_start TIMESTAMP, + date_end TIMESTAMP, + group_number INTEGER, + sheep_id TEXT, + working INTEGER DEFAULT 0, + FOREIGN KEY (entrance_id) REFERENCES entrance(id), + FOREIGN KEY (sheep_id) REFERENCES sheep(id) + );""", + "apartments": """ + CREATE TABLE IF NOT EXISTS apartments ( + id INTEGER PRIMARY KEY, + entrance_id INTEGER, + apartment_number INTEGER, + title TEXT, + floors_number INTEGER, + status INTEGER, + description TEXT, + sheep_id TEXT, + updated_at TIMESTAMP, + FOREIGN KEY (entrance_id) REFERENCES entrance(id), + FOREIGN KEY (sheep_id) REFERENCES sheep(id) + );""", + "apartments_history": """ + CREATE TABLE IF NOT EXISTS apartments_history ( + id INTEGER PRIMARY KEY, + apartments_id INTEGER, + status INTEGER, + description TEXT, + sheep_id TEXT, + created_at TIMESTAMP, + FOREIGN KEY (apartments_id) REFERENCES apartments(id) + );""", + "homestead": """ + CREATE TABLE IF NOT EXISTS homestead ( + id INTEGER PRIMARY KEY, + group_id INTEGER, + title TEXT, + number TEXT, + points TEXT DEFAULT '[]', + point_icons TEXT DEFAULT '[]', + geo TEXT DEFAULT '[]', + osm_id TEXT DEFAULT '[]', + settlement TEXT, + description TEXT, + created_at TIMESTAMP, + updated_at TIMESTAMP, + FOREIGN KEY (group_id) REFERENCES groups(id) + );""", + "homestead_history": """ + CREATE TABLE IF NOT EXISTS homestead_history ( + id INTEGER PRIMARY KEY, + homestead_id INTEGER, + name TEXT, + date_start TIMESTAMP, + date_end TIMESTAMP, + group_number INTEGER, + sheep_id TEXT, + working INTEGER DEFAULT 0, + FOREIGN KEY (homestead_id) REFERENCES homestead(id), + FOREIGN KEY (sheep_id) REFERENCES sheep(id) + );""", + "meetings_schedule": """ + CREATE TABLE IF NOT EXISTS meetings_schedule ( + id INTEGER PRIMARY KEY, + date TIMESTAMP, + type INTEGER, + name TEXT, + sheep_id TEXT, + title TEXT, + number TEXT, + FOREIGN KEY (sheep_id) REFERENCES sheep(id) + );""", + "stand_list": """ + CREATE TABLE IF NOT EXISTS stand_list ( + id INTEGER PRIMARY KEY, + title TEXT, + hour_start INTEGER DEFAULT 10, + hour_end INTEGER DEFAULT 16, + quantity_sheep INTEGER DEFAULT 2, + week_days TEXT DEFAULT '[0, 1, 2, 3, 4, 5, 6]' + );""", + "stand_schedule": """ + CREATE TABLE IF NOT EXISTS stand_schedule ( + id INTEGER PRIMARY KEY, + stand INTEGER, + date TIMESTAMP, + hour INTEGER, + sheep_id TEXT, + number_sheep TEXT, + updated_at TIMESTAMP, + FOREIGN KEY (sheep_id) REFERENCES sheep(id), + FOREIGN KEY (stand) REFERENCES stand_list(id) + );""" + } + + for name, sql in tables.items(): + if not table_exists(cursor, name): + cursor.execute(sql) + + conn.commit() + conn.close() + +if __name__ == "__main__": + create_tables() + print("Database setup complete.") \ No newline at end of file diff --git a/web/Dockerfile b/web/Dockerfile new file mode 100644 index 0000000..df39bea --- /dev/null +++ b/web/Dockerfile @@ -0,0 +1,13 @@ +FROM node:20.18 + +WORKDIR /app + +COPY package.json package-lock.json ./ + +RUN npm install + +COPY . . + +EXPOSE 4002 + +CMD npm start diff --git a/web/config.js b/web/config.js new file mode 100644 index 0000000..626f88e --- /dev/null +++ b/web/config.js @@ -0,0 +1,4 @@ +const CONFIG = { + "api": "https://sheep-service.com/api/", + "wss": "wss://sheep-service.com/ws" +} \ No newline at end of file diff --git a/web/css/main.css b/web/css/main.css new file mode 100644 index 0000000..e63e37b --- /dev/null +++ b/web/css/main.css @@ -0,0 +1,551 @@ +@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); + +@media (prefers-color-scheme: light) { + :root { + /* PrimaryColor */ + --PrimaryColor: #28a55a; + --PrimaryColor: #f2bd53; + --PrimaryColorText: #2e2e2e; + /* BGColor */ + --ColorThemes0: #fbfbfb; + --ColorThemes1: #f3f3f3; + --ColorThemes2: #e5e5df; + /* TextColor */ + --ColorThemes3: #313131; + + --ColorAnimation: linear-gradient(90deg, #f3f3f3, #efefef, #f3f3f3); + + --shadow-l1: 0px 2px 4px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04); + --border-radius: 15px; + + + --CardAnimation: linear-gradient(to right, #fbfbfb 0%, #fbfbfb 30%, #d8d8d8 45%, #d8d8d8 50%, #fbfbfb 60%, #fbfbfb 100%); + } +} + +@media (prefers-color-scheme: dark) { + :root { + /* PrimaryColor */ + --PrimaryColor: #28a55a; + --PrimaryColor: #cb9e44; + --PrimaryColorText: #2e2e2e; + /* BGColor */ + --ColorThemes0: #1c1c19; + --ColorThemes1: #21221d; + --ColorThemes2: #3a3a39; + /* TextColor */ + --ColorThemes3: #f3f3f3; + + --ColorAnimation: linear-gradient(90deg, #21221d, #242520, #21221d); + + --shadow-l1: 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04); + --border-radius: 15px; + + + + --CardAnimation: linear-gradient(to right, #1c1c19 0%, #1c1c19 30%, #252525 45%, #252525 50%, #1c1c19 60%, #1c1c19 100%); + } +} + +* { + border: 0; + padding: 0; + font-family: 'Roboto', sans-serif; + margin: 0; + font-weight: 300; + outline: none; +} + +*:disabled { + opacity: 0.6 !important; + cursor: no-drop !important; +} + +@media (min-width: 800px) { + * { + scroll-snap-type: none !important; + } +} + +@media (pointer:fine) { + ::-webkit-scrollbar { + width: 7px; + height: 7px; + background-color: #f9f9fd; + border-radius: var(--border-radius); + background: 0; + } + + ::-webkit-scrollbar-thumb { + background: var(--PrimaryColor); + border-radius: var(--border-radius); + } + + ::-webkit-scrollbar-track { + background: 0; + border: 0; + margin: 0; + border-radius: var(--border-radius); + } +} + +a { + text-decoration: none; + font-size: 15px; + font-weight: 700; + cursor: pointer; +} + +body { + background-color: var(--ColorThemes2); + color: var(--ColorThemes3); + /* transition: .3s ease; */ +} + +/* Стили для анимации обновления страници свайпом */ +@keyframes fade-in { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fade-out { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +select { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + appearance: none; + background-image: url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23F2BD53%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E); + background-repeat: no-repeat; + background-position: right 0.7rem top 50%; + background-size: 0.65rem auto; +} + +.hold-button{ + user-select: none; +} + + +.custom-checkbox { + position: absolute; + z-index: -1; + opacity: 0; +} + +.custom-checkbox+label { + display: inline-flex; + align-items: center; + user-select: none; +} + +.custom-checkbox+label::before { + content: ''; + display: inline-block; + width: 25px; + height: 25px; + flex-shrink: 0; + flex-grow: 0; + border: 1px solid #adb5bd; + border-radius: 10px; + margin-right: 0.5em; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.custom-checkbox:checked+label::before { + border-color: var(--PrimaryColor); + background-color: var(--PrimaryColor); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox:not(:disabled):not(:checked)+label:hover::before { + border-color: var(--PrimaryColor); +} + +.custom-checkbox:not(:disabled):active+label::before { + background-color: var(--PrimaryColor); + border-color: var(--PrimaryColor); +} + +.custom-checkbox:focus:not(:checked)+label::before { + border-color: var(--PrimaryColor); +} + +.custom-checkbox:disabled+label::before { + background-color: #e9ecef; +} + +#swipe_updater { + position: absolute; + top: 0px; + width: 100%; +} + +#swipe_block { + width: calc(100% - 252px); + margin-left: 252px; + height: 50px; + display: flex; + justify-content: center; + align-items: flex-end; + position: relative; +} + +#swipe_icon { + width: 20px; + fill: var(--ColorThemes3); + transform: rotate(0deg); + position: absolute; + margin-top: -45px; + top: -45px; + background: var(--ColorThemes2); + border: 2px solid var(--ColorThemes3); + border-radius: 50%; + padding: 10px; + display: flex; + overflow: hidden; + height: 0; + opacity: 0; + transition: height 0ms 400ms, opacity 400ms 0ms; +} + +#swipe_icon[data-state="active"] { + height: 20px; + opacity: 1; + transition: height 0ms 0ms, opacity 400ms 0ms; +} + +@media (max-width: 1100px) { + #swipe_block { + width: calc(100% - 122px); + margin-left: 122px; + } +} + +@media (max-width: 700px) { + #swipe_block { + width: 100%; + margin-left: 0; + } +} + + + + +/* Уведомление и кнопка обновления приложения */ +#update_banner { + height: 55px; + transition: .3s ease; +} + +#update_banner .content { + margin: 0 auto; + max-width: 300px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +#update_banner .headline { + font-weight: 800; + font-size: 15px; + color: var(--PrimaryColorText); + font-family: 'Roboto', sans-serif; +} + +#update_banner .subhead { + font-size: 13px; + text-align: center; + color: var(--PrimaryColorText); + font-family: 'Roboto', sans-serif; +} + +#update_banner[data-state="noupdate"] { + display: none; +} + +#update_banner[data-state="updateavailable"] { + display: block; + cursor: pointer; + background-color: var(--PrimaryColor); + color: var(--PrimaryColorText); + transition: .3s ease; + opacity: 0.95; + z-index: 9999; + position: fixed; + width: 300px; + margin: 10px; + padding: 5px; + border-radius: 25px; + right: 0; +} + +#update_banner_icon { + display: none; +} + +#update_banner_icon svg { + padding: 0px 50px; + width: 25px; + margin: -4px; + fill: var(--PrimaryColorText); +} + +@media (max-width: 700px) { + #update_banner[data-state="updateavailable"] { + width: calc(100% - 30px); + } +} + +/* Стили для меню */ +#navigation { + position: fixed; + width: 230px; + height: calc(100vh - 60px); + min-height: 510px; + background: var(--ColorThemes2); + padding: 36px 10px; + -webkit-transition: width .2s ease 0s; + -o-transition: width .2s ease 0s; + transition: width .2s ease 0s; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +#navigation>nav { + display: flex; + flex-direction: column; + height: 290px; + align-items: center; + justify-content: flex-start; +} + +#navigation>nav>li { + width: 180px; + height: 50px; + list-style-type: none; + position: relative; + -webkit-transition: all .2s ease 0s; + -o-transition: all .2s ease 0s; + transition: all .2s ease 0s; + z-index: 1; + margin: 5px; +} + +#navigation>nav>li>div { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + justify-content: flex-start; + height: 50px; + padding: 0 10px; + border-radius: var(--border-radius); + -webkit-transition: all .2s ease 0s; + -o-transition: all .2s ease 0s; + transition: all .2s ease 0s; + opacity: 0.8; + cursor: pointer; + border: 2px; + border: 2px solid var(--ColorThemes2); + overflow: hidden; +} + +#navigation>nav>li>div[data-state="active"] { + background: var(--ColorThemes3); + border: 2px solid var(--ColorThemes3); + box-shadow: var(--shadow-l1); +} + +#navigation>nav>li:has(div[data-state="active"]) { + z-index: 10; +} + +#navigation>nav>li>div>svg { + width: 25px; + height: 25px; + min-width: 25px; + min-height: 25px; + fill: var(--ColorThemes3); +} + +#navigation>nav>li>div[data-state="active"] svg { + fill: var(--ColorThemes2); +} + +#navigation>nav>li>div>b { + margin-left: 15px; + font-size: 14px; + font-weight: 300; + color: var(--ColorThemes3); + white-space: nowrap; +} + +#navigation>nav>li>div[data-state="active"] b { + color: var(--ColorThemes2); +} + +#navigation>nav>li>a { + position: absolute; + width: 100%; + height: 100%; + top: 2px; +} + + +@media (hover: hover) { + #navigation>nav>li:hover { + transform: scale(1.01); + } + + #navigation>nav>li:hover>div { + border: 2px solid var(--ColorThemes3); + } +} + +@media (max-width: 1100px) { + #navigation { + width: 100px; + } + + #navigation>nav>li { + width: 50px; + } + + #navigation>nav>li>div { + width: 30px; + justify-content: center; + } + + #navigation>nav>li>div>b { + display: none; + } +} + +#app { + background: var(--ColorThemes0); + position: absolute; + margin-top: 40px; + margin-left: 250px; + padding: 5px; + width: calc(100% - 250px - 10px); + min-height: calc(100% - 50px); + border-radius: 20px 0 0 0; + -webkit-transition: all .2sease 0s; + -o-transition: all .2s ease 0s; + transition: all .2sease 0s; + box-shadow: var(--shadow-l1); + display: flex; +} + +@media (max-width: 1100px) { + #app { + margin-left: 120px; + width: calc(100% - 130px); + } +} + +@media (max-width: 700px), +(max-height: 540px) { + body { + background: var(--ColorThemes0); + } + + #navigation { + width: 100%; + height: 60px; + min-height: 60px; + padding: 0; + z-index: 99999990; + bottom: -1px; + border: 0; + margin: 0; + box-shadow: 0px 24px 32px rgba(0, 0, 0, .09), 0px 16px 24px rgba(0, 0, 0, .09), 0px 4px 8px rgba(0, 0, 0, .09), 0px 0px 1px rgba(0, 0, 0, .09); + } + + #navigation>nav { + display: flex; + flex-direction: row; + height: 100%; + justify-content: space-around; + align-items: center; + } + + #navigation>nav>li { + width: 40px; + height: 40px; + } + + #navigation>nav>li:hover { + transform: scale(1.0); + } + + #navigation>nav>li:hover>div { + border: 0; + box-shadow: none; + } + + #navigation>nav>li>div { + width: 100%; + height: 40px; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + border: 0; + box-shadow: none; + } + + #navigation>nav>li>div>span { + display: none; + } + + #navigation>nav>li>div[data-state="active"] { + background: 0; + border: 0; + box-shadow: none; + } + + #navigation>nav>li>div[data-state="active"]>svg { + fill: var(--PrimaryColor); + } + + #navigation>nav>li>button { + display: none; + } + + #navigation[data-state="ios"] { + height: 70px; + } + + #navigation[data-state="ios"]>nav { + align-items: flex-start; + } + + #app { + margin-left: 0px; + width: 100%; + border-radius: 0; + padding: 0; + margin-top: 0; + padding-bottom: 80px; + height: auto; + } +} \ No newline at end of file diff --git a/web/fonts/PT_Mono/OFL.txt b/web/fonts/PT_Mono/OFL.txt new file mode 100644 index 0000000..fcbaa96 --- /dev/null +++ b/web/fonts/PT_Mono/OFL.txt @@ -0,0 +1,94 @@ +Copyright (c) 2011, ParaType Ltd. (http://www.paratype.com/public), +with Reserved Font Names "PT Sans", "PT Serif", "PT Mono" and "ParaType". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/web/fonts/PT_Mono/PTMono-Regular.ttf b/web/fonts/PT_Mono/PTMono-Regular.ttf new file mode 100644 index 0000000..b198383 Binary files /dev/null and b/web/fonts/PT_Mono/PTMono-Regular.ttf differ diff --git a/web/fonts/UbuntuMono/UFL.txt b/web/fonts/UbuntuMono/UFL.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/web/fonts/UbuntuMono/UFL.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/web/fonts/UbuntuMono/UbuntuMono-Bold.ttf b/web/fonts/UbuntuMono/UbuntuMono-Bold.ttf new file mode 100644 index 0000000..01ad81b Binary files /dev/null and b/web/fonts/UbuntuMono/UbuntuMono-Bold.ttf differ diff --git a/web/fonts/UbuntuMono/UbuntuMono-BoldItalic.ttf b/web/fonts/UbuntuMono/UbuntuMono-BoldItalic.ttf new file mode 100644 index 0000000..731884e Binary files /dev/null and b/web/fonts/UbuntuMono/UbuntuMono-BoldItalic.ttf differ diff --git a/web/fonts/UbuntuMono/UbuntuMono-Italic.ttf b/web/fonts/UbuntuMono/UbuntuMono-Italic.ttf new file mode 100644 index 0000000..b89338d Binary files /dev/null and b/web/fonts/UbuntuMono/UbuntuMono-Italic.ttf differ diff --git a/web/fonts/UbuntuMono/UbuntuMono-Regular.ttf b/web/fonts/UbuntuMono/UbuntuMono-Regular.ttf new file mode 100644 index 0000000..4977028 Binary files /dev/null and b/web/fonts/UbuntuMono/UbuntuMono-Regular.ttf differ diff --git a/web/img/0.svg b/web/img/0.svg new file mode 100644 index 0000000..bab786f --- /dev/null +++ b/web/img/0.svg @@ -0,0 +1,41 @@ + + + + synchronize-cloud + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/img/1.gif b/web/img/1.gif new file mode 100644 index 0000000..95fa3ca Binary files /dev/null and b/web/img/1.gif differ diff --git a/web/img/1.json b/web/img/1.json new file mode 100644 index 0000000..a42d5bd --- /dev/null +++ b/web/img/1.json @@ -0,0 +1 @@ +{"v":"5.7.3","fr":24,"ip":0,"op":28,"w":48,"h":48,"nm":"synchronize-cloud","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"cloud","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[24,24,0],"ix":2},"a":{"a":0,"k":[24,24,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.96,0],[0,0],[7.49,0],[0.75,-7.29],[0,0],[0,-4.96],[-4.96,0],[0,0],[-0.06,0.67],[0,0],[0,0],[0,3.31],[-3.31,0],[0,0],[0,0.83],[-6.34,0],[0,-6.34],[-0.83,0],[0,0],[0,-3.31],[3.31,0],[0,0],[0.97,-0.84],[0,0],[0,4.96]],"o":[[0,0],[-0.75,-7.29],[-7.49,0],[0,0],[-4.96,0],[0,4.96],[0,0],[-0.21,-0.59],[0,0],[0,0],[-3.31,0],[0,-3.31],[0,0],[0.83,0],[0,-6.34],[6.34,0],[0,0.83],[0,0],[3.31,0],[0,3.31],[0,0],[-0.65,1.14],[0,0],[4.96,0],[0,-4.96]],"v":[[15,-2.5],[14.42,-2.5],[0,-15.5],[-14.42,-2.5],[-15,-2.5],[-24,6.5],[-15,15.5],[-12.17,15.5],[-12.42,13.59],[-12.32,12.5],[-15,12.5],[-21,6.5],[-15,0.5],[-13,0.5],[-11.5,-1],[0,-12.5],[11.5,-1],[13,0.5],[15,0.5],[21,6.5],[15,12.5],[10.38,12.5],[7.92,15.5],[15,15.5],[24,6.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24,22.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"arrows","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[24,24,0],"ix":2},"a":{"a":0,"k":[24,24,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.265,0],[-1.083,-2.81]],"o":[[1.03,-2.913],[3.192,0],[0,0]],"v":[[-7.036,2.5],[0.036,-2.5],[7.036,2.303]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[23.963,24],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.708,-2.49],[2.273,2.491],[-2.708,2.055]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.775,2.301],[1.775,2.298],[1.777,2.29]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.767,2.292],[1.767,2.289],[1.768,2.281]],"c":false}]},{"t":25,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.708,-2.49],[2.273,2.491],[-2.708,2.055]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[29.227,24.009],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.264,0],[1.083,2.81]],"o":[[-1.03,2.913],[-3.191,0],[0,0]],"v":[[7.036,-2.5],[-0.036,2.5],[-7.036,-2.303]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[24.037,34],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-2.708,2.491],[-2.273,-2.49],[2.708,-2.055]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.771,-2.28],[-1.761,-2.279],[-1.78,-2.283]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.768,-2.281],[-1.758,-2.28],[-1.778,-2.284]],"c":false}]},{"t":25,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-2.708,2.491],[-2.273,-2.49],[2.708,-2.055]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[18.772,33.991],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[24,29],"ix":2},"a":{"a":0,"k":[24,29],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":3,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[380]},{"t":25,"s":[360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":28,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/web/img/1.svg b/web/img/1.svg new file mode 100644 index 0000000..9cf2167 --- /dev/null +++ b/web/img/1.svg @@ -0,0 +1,6 @@ + + + diff --git a/web/img/2.gif b/web/img/2.gif new file mode 100644 index 0000000..95fa3ca Binary files /dev/null and b/web/img/2.gif differ diff --git a/web/img/IconKitchen.zip b/web/img/IconKitchen.zip new file mode 100644 index 0000000..d3a21aa Binary files /dev/null and b/web/img/IconKitchen.zip differ diff --git a/web/img/apple-touch-icon.png b/web/img/apple-touch-icon.png new file mode 100644 index 0000000..12749d5 Binary files /dev/null and b/web/img/apple-touch-icon.png differ diff --git a/web/img/badge.png b/web/img/badge.png new file mode 100644 index 0000000..74f17fa Binary files /dev/null and b/web/img/badge.png differ diff --git a/web/img/favicon.ico b/web/img/favicon.ico new file mode 100644 index 0000000..44b99a0 Binary files /dev/null and b/web/img/favicon.ico differ diff --git a/web/img/icon-192-maskable.png b/web/img/icon-192-maskable.png new file mode 100644 index 0000000..e38cf15 Binary files /dev/null and b/web/img/icon-192-maskable.png differ diff --git a/web/img/icon-192.png b/web/img/icon-192.png new file mode 100644 index 0000000..2affa71 Binary files /dev/null and b/web/img/icon-192.png differ diff --git a/web/img/icon-512-maskable.png b/web/img/icon-512-maskable.png new file mode 100644 index 0000000..d49ced6 Binary files /dev/null and b/web/img/icon-512-maskable.png differ diff --git a/web/img/icon-512.png b/web/img/icon-512.png new file mode 100644 index 0000000..f70598e Binary files /dev/null and b/web/img/icon-512.png differ diff --git a/web/img/icons/info.gif b/web/img/icons/info.gif new file mode 100644 index 0000000..57a914e Binary files /dev/null and b/web/img/icons/info.gif differ diff --git a/web/img/icons/info.svg b/web/img/icons/info.svg new file mode 100644 index 0000000..0d63472 --- /dev/null +++ b/web/img/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/img/map/1.jpg b/web/img/map/1.jpg new file mode 100644 index 0000000..9d618ba Binary files /dev/null and b/web/img/map/1.jpg differ diff --git a/web/img/sheep.svg b/web/img/sheep.svg new file mode 100644 index 0000000..06585e3 --- /dev/null +++ b/web/img/sheep.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..36f7e3d --- /dev/null +++ b/web/index.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + Sheep Service + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + +
+
+
+ + +
+
+ + + +
+
+ + + + + +
+ + diff --git a/web/js/app.js b/web/js/app.js new file mode 100644 index 0000000..75aa1ee --- /dev/null +++ b/web/js/app.js @@ -0,0 +1,303 @@ +let socket, username; + +let listEntrances = [] +let listApartment = [] + +let statusD = document.getElementById("status"); +let hashD = document.getElementById("hash"); + +const urlParams = new URLSearchParams(window.location.search); +const share_hash = urlParams.get('share_hash'); + +let house = urlParams.get('id') ?? 81; +let entrance = 1; +let group_number = 1; + +const api = "https://sheep-service.com"; +const wss = "wss://sheep-service.com/ws"; + +// let color_status = [ +// "#000000", +// "#C16917", +// "#b10202", +// "#3d3d3d", +// "#11734b", +// "#6cc5fc", +// "#5a3286" +// ]; + +// let color_status = [ +// ["#ffffff", "#000000"], +// ["#e7af32", "#ffffff"], +// ["#fc2a2a", "#ffffff"], +// ["#3d3d3d", "#ffffff"], +// ["#11a568", "#ffffff"], +// ["#6cc5fc", "#ffffff"], +// ["#b381eb", "#ffffff"] +// ]; + +let color_status = [ + ["#ffffff", "#eaebef"], + ["#fbf1e0", "#ff8300"], + ["#fce3e2", "#ff0000"], + ["#e2e0e0", "#3d3d3d"], + ["#d5e9dd", "#11a568"], + ["#d7ebfa", "#3fb4fc"], + ["#e8dbf5", "#b381eb"] +]; + +function makeid(length) { + let result = ''; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + const charactersLength = characters.length; + let counter = 0; + while (counter < length) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + counter += 1; + } + return result; +} + +function start(name) { + if (!hash) return; + + + hashD.innerText = `HASH: ${name}` + username = name; + + socket = new WebSocket(`${wss}?share_hash=${share_hash}`); + + let user_hash = localStorage.getItem('hash') ?? share_hash; + + socket.onopen = function (e) { + console.log("[WebSocket | open] Соединение установлено"); + statusD.innerText = "WebSocket | open"; + + const message = { + event: 'connection', + id: getTimeInSeconds(), + date: getTimeInSeconds(), + hash: user_hash, + username: name, + data: { + id: 1, + entrance_id: 1, + apartment_number: "1", + group_number: 1, + status: 1, + description: "", + created_at: 1727541827, + updated_at: 1727541827 + } + } + + socket.send(JSON.stringify(message)) + }; + + socket.onmessage = function (event) { + let data = JSON.parse(event.data) + + if (data.event == 'connection') { + if (data.username == username) return + + console.log(`Добавлен новый пользователь по имени ${data.username}`); + } else if (data.event == 'message') { + update(data); + + if (data.username == username) return + + console.log(`${data.username} пишет: `, data.data); + } + }; + + socket.onclose = function (event) { + if (event.wasClean) { + statusD.innerText = "WebSocket | close" + console.log(`[WebSocket | close] Соединение закрыто чисто, код=${event.code} причина=${event.reason}`); + } else { + statusD.innerText = "WebSocket | close" + console.log('[WebSocket | close] Соединение прервано'); + + // setTimeout(function() { + // start(username); + // }, 1000); + + const result = confirm(`З'єднання розірвано! Перепідключитись?`); + if (result) { + getEntrances(); + start(username); + } + } + }; + + socket.onerror = function (error) { + console.log(`[WebSocket | error]`); + statusD.innerText = "WebSocket | error" + }; +} + +function mess(entrance_number, id, date_type) { + console.log(id, listApartment[entrance_number]); + + const pos = listApartment[entrance_number].map(e => e.id).indexOf(id); + let apartment = listApartment[entrance_number][pos]; + + console.log(pos, apartment); + + + let status = document.getElementById(`status_${id}`); + let description = document.getElementById(`description_${id}`); + let date = new Date(document.getElementById(`date_${id}`).value); + const timestamp = date.getTime(); + + apartment.description = description.value; + apartment.status = Number(status.value); + apartment.updated_at = date_type ? getTimeInSeconds(timestamp) : getTimeInSeconds(), + + + status.style.backgroundColor = color_status[status.value][0]; + status.style.color = color_status[status.value][1]; + status.style.border = `1px solid ${color_status[status.value][1]}`; + + let user_hash = localStorage.getItem('hash') ?? share_hash; + + let message = { + event: 'message', + id: getTimeInSeconds(), + date: getTimeInSeconds(), + hash: user_hash, + username: username, + data: { + id: apartment.id, + entrance_id: apartment.entrance_id, + apartment_number: apartment.apartment_number, + group_number: apartment.group_number, + status: apartment.status, + description: apartment.description, + updated_at: apartment.updated_at, + } + } + + socket.send(JSON.stringify(message)); + + sort(apartment.id, apartment.entrance_id); +} + +function update(message) { + if (!document.getElementById(`status_${message.data.id}`)) return; + + let now = new Date(message.data.updated_at); + now.setMinutes(now.getMinutes() - now.getTimezoneOffset()); + + document.getElementById(`status_${message.data.id}`).style.backgroundColor = color_status[message.data.status][0]; + document.getElementById(`status_${message.data.id}`).style.color = color_status[message.data.status][1]; + document.getElementById(`status_${message.data.id}`).style.border = `1px solid ${color_status[message.data.status][1]}`; + + document.getElementById(`status_${message.data.id}`).value = message.data.status; + document.getElementById(`description_${message.data.id}`).value = message.data.description; + document.getElementById(`date_${message.data.id}`).value = now.toISOString().slice(0, 16); +} + +function getEntrances(house_id = house) { + let url = `${api}/api/house/${house_id}/entrances?share_hash=${share_hash}`; + fetch(url) + .then(function (response) { + return response.json(); + }) + .then(function (data) { + listEntrances = data; + document.getElementById('list').innerHTML = ""; + + for (let i = 0; i < listEntrances.length; i++) { + const element = listEntrances[i]; + + let status = () => { + if (element.history.name == "Групова") return '' + else return ' ' + } + + document.getElementById('list').innerHTML += ` +
+ +

${element.title}

+ ${status()} +
+
+ +
+
+ `; + getApartment(element.id, element.entrance_number); + + console.log(element); + + } + }) + +} + +function getApartment(entrance_id, entrance_number) { + let url = `${api}/api/apartment/${entrance_id}?share_hash=${share_hash}`; + fetch(url) + .then(function (response) { + return response.json(); + }) + .then(function (data) { + listApartment[entrance_number] = data; + + data.sort((a, b) => a.apartment_number - b.apartment_number); + + data.sort((a, b) => a.updated_at - b.updated_at); + + for (let i = 0; i < data.length; i++) { + const element = data[i]; + + let now = new Date(element.updated_at); + now.setMinutes(now.getMinutes() - now.getTimezoneOffset()); + now = now.toISOString().slice(0, 16) + + document.getElementById(`apartments_${entrance_id}`).innerHTML += ` +
+ кв.${element.title} + + + +
+ `; + } + }) + +} + +function sort(id, entrance_id) { + let child = document.getElementById(`card_${id}`); + + document.getElementById(`apartments_${entrance_id}`).removeChild(child); + + document.getElementById(`apartments_${entrance_id}`).append(child); + + child.style.border = "1px solid var(--PrimaryColor)"; +} + +function getTimeInSeconds(time = Date.now()) { + // Если время больше 10 знаков (это значит, что время в миллисекундах) + if (time.toString().length < 10) { + // Округляем до секунд, убирая последние 3 цифры (миллисекунды) + time = Math.floor(time * 1000); + } + + return time; +} + +getEntrances(); +start(makeid(6)); + + diff --git a/web/lib/app.js b/web/lib/app.js new file mode 100644 index 0000000..68388a8 --- /dev/null +++ b/web/lib/app.js @@ -0,0 +1,116 @@ +let USER = {}; + +// Определение ID главного блока +let app = document.getElementById('app'); + +// Конфигурация роутера +Router.config({ mode: 'history' }); + +async function appReload() { + + location.reload(); + + // Router.navigate(window.location.pathname, false).check(); + + // // Закрытие старого соединения WebSocket + // if (socket) socket.close(1000, "Перезапуск соединения"); + // listEntrances = [] + // listApartment = [] +} + +const Rotation = async () => { + const result = confirm(`Ви бажаєте провести ротацію територій між групами?`); + + if (result) { + let rotationButton = document.getElementById('rotationButton-title'); + rotationButton.innerText = "Зачекайте"; + + let uuid = localStorage.getItem("uuid"); + + const URL = `${CONFIG.api}rotation`; + await fetch(URL, { + method: 'GET', + headers: { + "Content-Type": "application/json, text/plain, */*", + "Authorization": uuid + } + }) + .then(response => response.json()) + .then(data => { + console.log(data); + rotationButton.innerText = 'Ротація завершилась успішно!'; + + Territory.house.setHTML(); + Territory.homestead.setHTML(); + + setTimeout(() => { + rotationButton.innerText = "Провести ротацію"; + }, 3000); + }) + .catch(err => { + console.log(err); + rotationButton.innerText = "Помилка ротації!"; + }) + } +} + +// Функция загрузки приложения +window.addEventListener('load', async function () { + console.log('[OS] ', detectOS()); + if (window.matchMedia('(display-mode: standalone)').matches) { + if (detectOS() == 'Android') { + document.getElementById('navigation').dataset.state = ''; + } else if (detectOS() == 'iOS') { + document.getElementById('navigation').dataset.state = 'ios'; + localStorage.setItem('backToTop', 'false'); + } else if (detectOS() == 'MacOS') { + document.getElementById('navigation').dataset.state = 'ios'; + localStorage.setItem('backToTop', 'false'); + } else { + document.getElementById('navigation').dataset.state = ''; + } + } + + let userInput = () => { + let h = prompt("Введіть ваше посилання з UUID:"); + if (h) { + h = h.replace("https://sheep-service.com/?uuid=", ""); + h = h.replace("https://sheep-service.com?uuid=", ""); + h = h.replace("https://sheep-service.com?/hash=", ""); + h = h.replace("https://sheep-service.com?hash=", ""); + + localStorage.setItem("uuid", h) + return h; + } + }; + + const urlParams = new URLSearchParams(window.location.search); + if (urlParams.get('uuid')) { + localStorage.setItem("uuid", urlParams.get('uuid')) + } + if (urlParams.get('hash')) { + localStorage.setItem("uuid", urlParams.get('hash')) + } + + let uuid = localStorage.getItem("uuid") ? localStorage.getItem("uuid") : userInput(); + if (uuid) { + const URL = `${CONFIG.api}auth`; + USER = await fetch(URL, { + method: 'GET', + headers: { + "Content-Type": "application/json, text/plain, */*", + "Authorization": uuid + } + }).then((response) => response.json()); + + console.log("USER Info: ", USER); + + + if (USER.administrator.uuid || USER.moderator.uuid) document.getElementById("li-sheeps").style.display = ""; + if (USER.administrator.uuid || (USER.moderator.uuid && USER.moderator.can_add_schedule)) document.getElementById("li-schedule").style.display = ""; + if (USER.administrator.uuid || (USER.moderator.uuid && USER.moderator.can_manager_territory)) document.getElementById("li-territory").style.display = ""; + if (USER.administrator.uuid || USER.can_view_stand) document.getElementById("li-stand").style.display = ""; + } + + Router.check().listen(); +}); \ No newline at end of file diff --git a/web/lib/components/clipboard.js b/web/lib/components/clipboard.js new file mode 100644 index 0000000..339af8d --- /dev/null +++ b/web/lib/components/clipboard.js @@ -0,0 +1,5 @@ +clipboard = (text) => { + navigator.clipboard.writeText(text) + .then(() => console.log("Текст скопійовано!")) + .catch(err => console.error(err)) +} \ No newline at end of file diff --git a/web/lib/components/colorGroup.js b/web/lib/components/colorGroup.js new file mode 100644 index 0000000..de35cba --- /dev/null +++ b/web/lib/components/colorGroup.js @@ -0,0 +1,20 @@ +let colorGroup = (number) => { + switch (number) { + case 1: + return "#c1ae4d" + case 2: + return "#93c14d" + case 3: + return "#4dc1a7" + case 4: + return "#4d90c1" + case 5: + return "#654dc1" + case 6: + return "#c14db7" + case 7: + return "#c1734d" + default: + return "#C14D4D" + } +} \ No newline at end of file diff --git a/web/lib/components/detectBrowser.js b/web/lib/components/detectBrowser.js new file mode 100644 index 0000000..04d62eb --- /dev/null +++ b/web/lib/components/detectBrowser.js @@ -0,0 +1,35 @@ +detectBrowser = () => { + const userAgent = navigator.userAgent; + let browser = "unkown"; + // Detect browser name + browser = (/ucbrowser/i).test(userAgent) ? 'UCBrowser' : browser; + browser = (/edg/i).test(userAgent) ? 'Edge' : browser; + browser = (/googlebot/i).test(userAgent) ? 'GoogleBot' : browser; + browser = (/chromium/i).test(userAgent) ? 'Chromium' : browser; + browser = (/firefox|fxios/i).test(userAgent) && !(/seamonkey/i).test(userAgent) ? 'Firefox' : browser; + browser = (/; msie|trident/i).test(userAgent) && !(/ucbrowser/i).test(userAgent) ? 'IE' : browser; + browser = (/chrome|crios/i).test(userAgent) && !(/opr|opera|chromium|edg|ucbrowser|googlebot/i).test(userAgent) ? 'Chrome' : browser;; + browser = (/safari/i).test(userAgent) && !(/chromium|edg|ucbrowser|chrome|crios|opr|opera|fxios|firefox/i).test(userAgent) ? 'Safari' : browser; + browser = (/opr|opera/i).test(userAgent) ? 'Opera' : browser; + + // detect browser version + switch (browser) { + case 'UCBrowser': return `${browser}/${browserVersion(userAgent,/(ucbrowser)\/([\d\.]+)/i)}`; + case 'Edge': return `${browser}/${browserVersion(userAgent,/(edge|edga|edgios|edg)\/([\d\.]+)/i)}`; + case 'GoogleBot': return `${browser}/${browserVersion(userAgent,/(googlebot)\/([\d\.]+)/i)}`; + case 'Chromium': return `${browser}/${browserVersion(userAgent,/(chromium)\/([\d\.]+)/i)}`; + case 'Firefox': return `${browser}/${browserVersion(userAgent,/(firefox|fxios)\/([\d\.]+)/i)}`; + case 'Chrome': return `${browser}/${browserVersion(userAgent,/(chrome|crios)\/([\d\.]+)/i)}`; + case 'Safari': return `${browser}/${browserVersion(userAgent,/(safari)\/([\d\.]+)/i)}`; + case 'Opera': return `${browser}/${browserVersion(userAgent,/(opera|opr)\/([\d\.]+)/i)}`; + case 'IE': const version = browserVersion(userAgent,/(trident)\/([\d\.]+)/i); + // IE version is mapped using trident version + // IE/8.0 = Trident/4.0, IE/9.0 = Trident/5.0 + return version ? `${browser}/${parseFloat(version) + 4.0}` : `${browser}/7.0`; + default: return `unknown/0.0.0.0`; + } +} + +browserVersion = (userAgent,regex) => { + return userAgent.match(regex) ? userAgent.match(regex)[2] : null; +} \ No newline at end of file diff --git a/web/lib/components/detectOS.js b/web/lib/components/detectOS.js new file mode 100644 index 0000000..dd4e728 --- /dev/null +++ b/web/lib/components/detectOS.js @@ -0,0 +1,12 @@ +function detectOS() { + const platform = navigator.platform.toLowerCase(), + iosPlatforms = ['iphone', 'ipad', 'ipod', 'ipod touch']; + + if (platform.includes('mac')) return 'MacOS'; + if (iosPlatforms.includes(platform)) return 'iOS'; + if (platform.includes('win')) return 'Windows'; + if (/android/.test(navigator.userAgent.toLowerCase())) return 'Android'; + if (/linux/.test(platform)) return 'Linux'; + + return 'unknown'; +} \ No newline at end of file diff --git a/web/lib/components/formattedDate.js b/web/lib/components/formattedDate.js new file mode 100644 index 0000000..fcf44bd --- /dev/null +++ b/web/lib/components/formattedDate.js @@ -0,0 +1,9 @@ +let formattedDate = (unix_timestamp) => { + if(!unix_timestamp) return + + let date = new Date(unix_timestamp); + let year = date.getFullYear() >= 10 ? date.getFullYear() : "0" + date.getFullYear(); + let month = (date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : "0" + (date.getMonth() + 1); + let weekday = date.getDate() >= 10 ? date.getDate() : "0" + date.getDate(); + return weekday + '.' + month + '.' + year; +} \ No newline at end of file diff --git a/web/lib/components/geoman/leaflet-geoman.css b/web/lib/components/geoman/leaflet-geoman.css new file mode 100644 index 0000000..c7d4bbc --- /dev/null +++ b/web/lib/components/geoman/leaflet-geoman.css @@ -0,0 +1,283 @@ +.marker-icon, +.marker-icon:focus { + background-color: #ffffff; + border: 1px solid #3388ff; + border-radius: 50%; + margin: -4px 0 0 -4px !important; + width: 6px !important; + height: 6px !important; + outline: 0; + transition: opacity ease 0.3s; +} + +.marker-icon-middle, +.marker-icon-middle:focus { + opacity: 0.7; + margin: -6px 0 0 -6px !important; + width: 10px !important; + height: 10px !important; +} + +.leaflet-pm-draggable { + cursor: move !important; +} + +.cursor-marker { + cursor: crosshair; + pointer-events: none; + opacity: 0; +} + +.cursor-marker.visible { + opacity: 1 !important; +} + +.leaflet-pm-invalid { + stroke: red; + transition: fill ease 0s, stroke ease 0s; +} + +.rect-style-marker, +.rect-start-marker { + opacity: 0; +} + +.rect-style-marker.visible, +.rect-start-marker.visible { + opacity: 1 !important; +} + +.vertexmarker-disabled { + opacity: 0.7; +} + +.pm-text-marker { + width: 0; + height: 0; +} + +.pm-textarea { + background-color: #fff; + color: #000; + resize: none; + border: none; + outline: 0; + cursor: pointer; + border-radius: 3px; + padding-left: 7px; + padding-bottom: 0; + padding-top: 4px; +} + +.leaflet-pm-draggable .pm-textarea { + cursor: move; +} + +.pm-textarea:focus, +.pm-textarea:focus-within, +.pm-textarea:focus-visible, +.pm-textarea:active { + border: 2px solid #000; + outline: 0; +} + +.pm-textarea.pm-disabled { + border: none; + user-select: none; +} + +.pm-textarea.pm-hasfocus { + cursor: auto; +} + +.leaflet-pm-toolbar { +} + +.leaflet-pm-toolbar .leaflet-buttons-control-button { + padding: 5px; + box-sizing: border-box; + position: relative; + z-index: 3; +} + +.leaflet-pm-toolbar + .leaflet-pm-actions-container + a.leaflet-pm-action:first-child:not(.pos-right), +.leaflet-pm-toolbar + .leaflet-pm-actions-container + a.leaflet-pm-action:last-child.pos-right { + border-radius: 0; +} + +.leaflet-pm-toolbar .button-container a.leaflet-buttons-control-button { + border-radius: 0; +} + +.leaflet-pm-toolbar + .button-container:last-child + a.leaflet-buttons-control-button { + border-radius: 0 0 2px 2px; +} + +.leaflet-pm-toolbar + .button-container:first-child + a.leaflet-buttons-control-button { + border-radius: 2px 2px 0 0; +} + +.leaflet-pm-toolbar + .button-container:last-child + a.leaflet-buttons-control-button { + border-bottom: none; +} + +.leaflet-pm-toolbar .control-fa-icon { + font-size: 19px; + line-height: 24px; +} + +.leaflet-pm-toolbar .control-icon { + width: 100%; + height: 100%; + box-sizing: border-box; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; +} + +.leaflet-pm-toolbar .leaflet-pm-icon-marker { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjUgKDY3NDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5BdG9tcy9JY29ucy9Ub29scy9NYXJrZXI8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMTUuNSwyNC44NzgyOTU5IEMxNS4yOTA5MjAxLDI0Ljg3NzIyMTkgMTUuMTc0NDg1NywyNC44NDY3ODE3IDE0LjY1OTA4NjYsMjQuMjM1NDE2MyBDMTAuMjE5Njk1NSwxOS40MTE4MDU0IDgsMTUuNTAxNDM5MiA4LDEyLjUwNDMxNzcgQzgsOC4zNTk3OTc0NiAxMS4zNTc4NjQ0LDUgMTUuNSw1IEMxOS42NDIxMzU2LDUgMjMsOC4zNTk3OTc0NiAyMywxMi41MDQzMTc3IEMyMywxNyAxOC4yODc4MjE3LDIxLjkyNjgzNzggMTYuMzMzNjYwMSwyNC4yNDQwMTg2IEMxNS44MjI0NjIyLDI0Ljg1MDE4MDIgMTUuNzA5MDc5OSwyNC44NzkzNjk5IDE1LjUsMjQuODc4Mjk1OSBaIE0xNS41LDE1LjUzMjY5NDggQzE3LjI3NTIwMSwxNS41MzI2OTQ4IDE4LjcxNDI4NTcsMTQuMTE4MDAwNCAxOC43MTQyODU3LDEyLjM3Mjg4NjQgQzE4LjcxNDI4NTcsMTAuNjI3NzcyMyAxNy4yNzUyMDEsOS4yMTMwNzc5MiAxNS41LDkuMjEzMDc3OTIgQzEzLjcyNDc5OSw5LjIxMzA3NzkyIDEyLjI4NTcxNDMsMTAuNjI3NzcyMyAxMi4yODU3MTQzLDEyLjM3Mjg4NjQgQzEyLjI4NTcxNDMsMTQuMTE4MDAwNCAxMy43MjQ3OTksMTUuNTMyNjk0OCAxNS41LDE1LjUzMjY5NDggWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJBdG9tcy9JY29ucy9Ub29scy9NYXJrZXIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zLjAwMDAwMCwgLTMuMDAwMDAwKSI+CiAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgPHVzZSBpZD0iTWFzayIgZmlsbD0iIzVCNUI1QiIgZmlsbC1ydWxlPSJub256ZXJvIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==); +} +.leaflet-pm-toolbar .leaflet-pm-icon-polygon { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0icG9seWdvbi1hIiBkPSJNMTkuNDIwNjg5Miw5LjE2NTA5NzI1IEMxOS4xNTIzNjgxLDguNjY5OTI5MTQgMTksOC4xMDI3NTgzMSAxOSw3LjUgQzE5LDUuNTY3MDAzMzggMjAuNTY3MDAzNCw0IDIyLjUsNCBDMjQuNDMyOTk2Niw0IDI2LDUuNTY3MDAzMzggMjYsNy41IEMyNiw5LjI2MzIzNTk1IDI0LjY5NjE0NzEsMTAuNzIxOTQwNyAyMywxMC45NjQ1NTU2IEwyMywxOS4wMzU0NDQ0IEMyNC42OTYxNDcxLDE5LjI3ODA1OTMgMjYsMjAuNzM2NzY0IDI2LDIyLjUgQzI2LDI0LjQzMjk5NjYgMjQuNDMyOTk2NiwyNiAyMi41LDI2IEMyMC43MzY3NjQsMjYgMTkuMjc4MDU5MywyNC42OTYxNDcxIDE5LjAzNTQ0NDQsMjMgTDEwLjk2NDU1NTYsMjMgQzEwLjcyMTk0MDcsMjQuNjk2MTQ3MSA5LjI2MzIzNTk1LDI2IDcuNSwyNiBDNS41NjcwMDMzOCwyNiA0LDI0LjQzMjk5NjYgNCwyMi41IEM0LDIwLjU2NzAwMzQgNS41NjcwMDMzOCwxOSA3LjUsMTkgQzguMTAyNzU4MzEsMTkgOC42Njk5MjkxNCwxOS4xNTIzNjgxIDkuMTY1MDk3MjUsMTkuNDIwNjg5MiBMMTkuNDIwNjg5Miw5LjE2NTA5NzI1IFogTTIwLjgzNDkwNzMsMTAuNTc5MzA2MyBMMTAuNTc5MzEwOCwyMC44MzQ5MDI3IEMxMC42MDg2NzMxLDIwLjg4OTA4ODggMTAuNjM2NjQ2OSwyMC45NDQxMzcyIDEwLjY2MzE4NDQsMjEgTDE5LjMzNjgxNTYsMjEgQzE5LjY4MjU3NzUsMjAuMjcyMTU0IDIwLjI3MjE1NCwxOS42ODI1Nzc1IDIxLDE5LjMzNjgxNTYgTDIxLDEwLjY2MzE4NDQgQzIwLjk0NDEzNzIsMTAuNjM2NjQ2OSAyMC44ODkwODg4LDEwLjYwODY3MzEgMjAuODM0OTAyNywxMC41NzkzMTA4IFogTTIyLjUsOSBDMjMuMzI4NDI3MSw5IDI0LDguMzI4NDI3MTIgMjQsNy41IEMyNCw2LjY3MTU3Mjg4IDIzLjMyODQyNzEsNiAyMi41LDYgQzIxLjY3MTU3MjksNiAyMSw2LjY3MTU3Mjg4IDIxLDcuNSBDMjEsOC4zMjg0MjcxMiAyMS42NzE1NzI5LDkgMjIuNSw5IFogTTIyLjUsMjQgQzIzLjMyODQyNzEsMjQgMjQsMjMuMzI4NDI3MSAyNCwyMi41IEMyNCwyMS42NzE1NzI5IDIzLjMyODQyNzEsMjEgMjIuNSwyMSBDMjEuNjcxNTcyOSwyMSAyMSwyMS42NzE1NzI5IDIxLDIyLjUgQzIxLDIzLjMyODQyNzEgMjEuNjcxNTcyOSwyNCAyMi41LDI0IFogTTcuNSwyNCBDOC4zMjg0MjcxMiwyNCA5LDIzLjMyODQyNzEgOSwyMi41IEM5LDIxLjY3MTU3MjkgOC4zMjg0MjcxMiwyMSA3LjUsMjEgQzYuNjcxNTcyODgsMjEgNiwyMS42NzE1NzI5IDYsMjIuNSBDNiwyMy4zMjg0MjcxIDYuNjcxNTcyODgsMjQgNy41LDI0IFoiLz4KICA8L2RlZnM+CiAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMyAtMykiPgogICAgPG1hc2sgaWQ9InBvbHlnb24tYiIgZmlsbD0iI2ZmZiI+CiAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BvbHlnb24tYSIvPgogICAgPC9tYXNrPgogICAgPHVzZSBmaWxsPSIjNUI1QjVCIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHhsaW5rOmhyZWY9IiNwb2x5Z29uLWEiLz4KICAgIDxnIGZpbGw9IiM1QjVCNUIiIG1hc2s9InVybCgjcG9seWdvbi1iKSI+CiAgICAgIDxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==); +} +.leaflet-pm-toolbar .leaflet-pm-icon-polyline { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0ibGluZS1hIiBkPSJNOS4xNjUwOTcyNSwxOS40MjA2ODkyIEwxOC40MjA2ODkyLDEwLjE2NTA5NzMgQzE4LjE1MjM2ODEsOS42Njk5MjkxNCAxOCw5LjEwMjc1ODMxIDE4LDguNSBDMTgsNi41NjcwMDMzOCAxOS41NjcwMDM0LDUgMjEuNSw1IEMyMy40MzI5OTY2LDUgMjUsNi41NjcwMDMzOCAyNSw4LjUgQzI1LDEwLjQzMjk5NjYgMjMuNDMyOTk2NiwxMiAyMS41LDEyIEMyMC44OTcyNDE3LDEyIDIwLjMzMDA3MDksMTEuODQ3NjMxOSAxOS44MzQ5MDI3LDExLjU3OTMxMDggTDEwLjU3OTMxMDgsMjAuODM0OTAyNyBDMTAuODQ3NjMxOSwyMS4zMzAwNzA5IDExLDIxLjg5NzI0MTcgMTEsMjIuNSBDMTEsMjQuNDMyOTk2NiA5LjQzMjk5NjYyLDI2IDcuNSwyNiBDNS41NjcwMDMzOCwyNiA0LDI0LjQzMjk5NjYgNCwyMi41IEM0LDIwLjU2NzAwMzQgNS41NjcwMDMzOCwxOSA3LjUsMTkgQzguMTAyNzU4MzEsMTkgOC42Njk5MjkxNCwxOS4xNTIzNjgxIDkuMTY1MDk3MjUsMTkuNDIwNjg5MiBaIE0yMS41LDEwIEMyMi4zMjg0MjcxLDEwIDIzLDkuMzI4NDI3MTIgMjMsOC41IEMyMyw3LjY3MTU3Mjg4IDIyLjMyODQyNzEsNyAyMS41LDcgQzIwLjY3MTU3MjksNyAyMCw3LjY3MTU3Mjg4IDIwLDguNSBDMjAsOS4zMjg0MjcxMiAyMC42NzE1NzI5LDEwIDIxLjUsMTAgWiBNNy41LDI0IEM4LjMyODQyNzEyLDI0IDksMjMuMzI4NDI3MSA5LDIyLjUgQzksMjEuNjcxNTcyOSA4LjMyODQyNzEyLDIxIDcuNSwyMSBDNi42NzE1NzI4OCwyMSA2LDIxLjY3MTU3MjkgNiwyMi41IEM2LDIzLjMyODQyNzEgNi42NzE1NzI4OCwyNCA3LjUsMjQgWiIvPgogIDwvZGVmcz4KICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zIC0zKSI+CiAgICA8bWFzayBpZD0ibGluZS1iIiBmaWxsPSIjZmZmIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjbGluZS1hIi8+CiAgICA8L21hc2s+CiAgICA8dXNlIGZpbGw9IiM1QjVCNUIiIGZpbGwtcnVsZT0ibm9uemVybyIgeGxpbms6aHJlZj0iI2xpbmUtYSIvPgogICAgPGcgZmlsbD0iIzVCNUI1QiIgbWFzaz0idXJsKCNsaW5lLWIpIj4KICAgICAgPHJlY3Qgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K); +} +.leaflet-pm-toolbar .leaflet-pm-icon-circle { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjUgKDY3NDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5BdG9tcy9JY29ucy9Ub29scy9DaXJjbGU8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMTguMjg5Nzc1MSw2Ljc4NjAyMjc1IEMxOC44OTI0MTMxLDYuMjk0NjQ5ODEgMTkuNjYxNzk3LDYgMjAuNSw2IEMyMi40MzI5OTY2LDYgMjQsNy41NjcwMDMzOCAyNCw5LjUgQzI0LDEwLjMzODIwMyAyMy43MDUzNTAyLDExLjEwNzU4NjkgMjMuMjEzOTc3MiwxMS43MTAyMjQ5IEMyMy43MTk1OTksMTIuODcxMjA1MyAyNCwxNC4xNTI4NTcxIDI0LDE1LjUgQzI0LDIwLjc0NjcwNTEgMTkuNzQ2NzA1MSwyNSAxNC41LDI1IEM5LjI1MzI5NDg4LDI1IDUsMjAuNzQ2NzA1MSA1LDE1LjUgQzUsMTAuMjUzMjk0OSA5LjI1MzI5NDg4LDYgMTQuNSw2IEMxNS44NDcxNDI5LDYgMTcuMTI4Nzk0Nyw2LjI4MDQwMDk4IDE4LjI4OTc3NTEsNi43ODYwMjI3NSBaIE0xNy4xNTA0MjI4LDguNDgxNzU4NiBDMTYuMzI2MzU4MSw4LjE3MDM5MjM2IDE1LjQzMzA3NzcsOCAxNC41LDggQzEwLjM1Nzg2NDQsOCA3LDExLjM1Nzg2NDQgNywxNS41IEM3LDE5LjY0MjEzNTYgMTAuMzU3ODY0NCwyMyAxNC41LDIzIEMxOC42NDIxMzU2LDIzIDIyLDE5LjY0MjEzNTYgMjIsMTUuNSBDMjIsMTQuNTY2OTIyMyAyMS44Mjk2MDc2LDEzLjY3MzY0MTkgMjEuNTE4MjQxNCwxMi44NDk1NzcyIEMyMS4xOTYwMzgzLDEyLjk0NzM5NjggMjAuODU0MTYyMiwxMyAyMC41LDEzIEMxOC41NjcwMDM0LDEzIDE3LDExLjQzMjk5NjYgMTcsOS41IEMxNyw5LjE0NTgzNzc4IDE3LjA1MjYwMzIsOC44MDM5NjE2OSAxNy4xNTA0MjI4LDguNDgxNzU4NiBaIE0xNC41LDE3IEMxMy42NzE1NzI5LDE3IDEzLDE2LjMyODQyNzEgMTMsMTUuNSBDMTMsMTQuNjcxNTcyOSAxMy42NzE1NzI5LDE0IDE0LjUsMTQgQzE1LjMyODQyNzEsMTQgMTYsMTQuNjcxNTcyOSAxNiwxNS41IEMxNiwxNi4zMjg0MjcxIDE1LjMyODQyNzEsMTcgMTQuNSwxNyBaIE0yMC41LDExIEMyMS4zMjg0MjcxLDExIDIyLDEwLjMyODQyNzEgMjIsOS41IEMyMiw4LjY3MTU3Mjg4IDIxLjMyODQyNzEsOCAyMC41LDggQzE5LjY3MTU3MjksOCAxOSw4LjY3MTU3Mjg4IDE5LDkuNSBDMTksMTAuMzI4NDI3MSAxOS42NzE1NzI5LDExIDIwLjUsMTEgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJBdG9tcy9JY29ucy9Ub29scy9DaXJjbGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zLjAwMDAwMCwgLTMuMDAwMDAwKSI+CiAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgPHVzZSBpZD0iTWFzayIgZmlsbD0iIzVCNUI1QiIgZmlsbC1ydWxlPSJub256ZXJvIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgPGcgaWQ9IkF0b21zL0NvbG9yL0dyZXkiIG1hc2s9InVybCgjbWFzay0yKSIgZmlsbD0iIzVCNUI1QiI+CiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiPjwvcmVjdD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+); +} +.leaflet-pm-toolbar .leaflet-pm-icon-circle-marker { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KCjxzdmcgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjNUI1QjVCIiBzdHJva2Utd2lkdGg9IjgiCiAgICAgZmlsbD0ibm9uZSI+CjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjM1Ii8+CiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iMyIgZmlsbD0iIzVCNUI1QiIvPgo8L3N2Zz4=); +} +.leaflet-pm-toolbar .leaflet-pm-icon-rectangle { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0icmVjdGFuZ2xlLWEiIGQ9Ik0yMywxMC45NjQ1NTU2IEwyMywxOS4wMzU0NDQ0IEMyNC42OTYxNDcxLDE5LjI3ODA1OTMgMjYsMjAuNzM2NzY0IDI2LDIyLjUgQzI2LDI0LjQzMjk5NjYgMjQuNDMyOTk2NiwyNiAyMi41LDI2IEMyMC43MzY3NjQsMjYgMTkuMjc4MDU5MywyNC42OTYxNDcxIDE5LjAzNTQ0NDQsMjMgTDEwLjk2NDU1NTYsMjMgQzEwLjcyMTk0MDcsMjQuNjk2MTQ3MSA5LjI2MzIzNTk1LDI2IDcuNSwyNiBDNS41NjcwMDMzOCwyNiA0LDI0LjQzMjk5NjYgNCwyMi41IEM0LDIwLjczNjc2NCA1LjMwMzg1MjkzLDE5LjI3ODA1OTMgNywxOS4wMzU0NDQ0IEw3LDEwLjk2NDU1NTYgQzUuMzAzODUyOTMsMTAuNzIxOTQwNyA0LDkuMjYzMjM1OTUgNCw3LjUgQzQsNS41NjcwMDMzOCA1LjU2NzAwMzM4LDQgNy41LDQgQzkuMjYzMjM1OTUsNCAxMC43MjE5NDA3LDUuMzAzODUyOTMgMTAuOTY0NTU1Niw3IEwxOS4wMzU0NDQ0LDcgQzE5LjI3ODA1OTMsNS4zMDM4NTI5MyAyMC43MzY3NjQsNCAyMi41LDQgQzI0LjQzMjk5NjYsNCAyNiw1LjU2NzAwMzM4IDI2LDcuNSBDMjYsOS4yNjMyMzU5NSAyNC42OTYxNDcxLDEwLjcyMTk0MDcgMjMsMTAuOTY0NTU1NiBaIE0yMSwxMC42NjMxODQ0IEMyMC4yNzIxNTQsMTAuMzE3NDIyNSAxOS42ODI1Nzc1LDkuNzI3ODQ1OTggMTkuMzM2ODE1Niw5IEwxMC42NjMxODQ0LDkgQzEwLjMxNzQyMjUsOS43Mjc4NDU5OCA5LjcyNzg0NTk4LDEwLjMxNzQyMjUgOSwxMC42NjMxODQ0IEw5LDE5LjMzNjgxNTYgQzkuNzI3ODQ1OTgsMTkuNjgyNTc3NSAxMC4zMTc0MjI1LDIwLjI3MjE1NCAxMC42NjMxODQ0LDIxIEwxOS4zMzY4MTU2LDIxIEMxOS42ODI1Nzc1LDIwLjI3MjE1NCAyMC4yNzIxNTQsMTkuNjgyNTc3NSAyMSwxOS4zMzY4MTU2IEwyMSwxMC42NjMxODQ0IFogTTcuNSw5IEM4LjMyODQyNzEyLDkgOSw4LjMyODQyNzEyIDksNy41IEM5LDYuNjcxNTcyODggOC4zMjg0MjcxMiw2IDcuNSw2IEM2LjY3MTU3Mjg4LDYgNiw2LjY3MTU3Mjg4IDYsNy41IEM2LDguMzI4NDI3MTIgNi42NzE1NzI4OCw5IDcuNSw5IFogTTIyLjUsOSBDMjMuMzI4NDI3MSw5IDI0LDguMzI4NDI3MTIgMjQsNy41IEMyNCw2LjY3MTU3Mjg4IDIzLjMyODQyNzEsNiAyMi41LDYgQzIxLjY3MTU3MjksNiAyMSw2LjY3MTU3Mjg4IDIxLDcuNSBDMjEsOC4zMjg0MjcxMiAyMS42NzE1NzI5LDkgMjIuNSw5IFogTTIyLjUsMjQgQzIzLjMyODQyNzEsMjQgMjQsMjMuMzI4NDI3MSAyNCwyMi41IEMyNCwyMS42NzE1NzI5IDIzLjMyODQyNzEsMjEgMjIuNSwyMSBDMjEuNjcxNTcyOSwyMSAyMSwyMS42NzE1NzI5IDIxLDIyLjUgQzIxLDIzLjMyODQyNzEgMjEuNjcxNTcyOSwyNCAyMi41LDI0IFogTTcuNSwyNCBDOC4zMjg0MjcxMiwyNCA5LDIzLjMyODQyNzEgOSwyMi41IEM5LDIxLjY3MTU3MjkgOC4zMjg0MjcxMiwyMSA3LjUsMjEgQzYuNjcxNTcyODgsMjEgNiwyMS42NzE1NzI5IDYsMjIuNSBDNiwyMy4zMjg0MjcxIDYuNjcxNTcyODgsMjQgNy41LDI0IFoiLz4KICA8L2RlZnM+CiAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMyAtMykiPgogICAgPG1hc2sgaWQ9InJlY3RhbmdsZS1iIiBmaWxsPSIjZmZmIj4KICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVjdGFuZ2xlLWEiLz4KICAgIDwvbWFzaz4KICAgIDx1c2UgZmlsbD0iIzVCNUI1QiIgZmlsbC1ydWxlPSJub256ZXJvIiB4bGluazpocmVmPSIjcmVjdGFuZ2xlLWEiLz4KICAgIDxnIGZpbGw9IiM1QjVCNUIiIG1hc2s9InVybCgjcmVjdGFuZ2xlLWIpIj4KICAgICAgPHJlY3Qgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K); +} +.leaflet-pm-toolbar .leaflet-pm-icon-delete { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjUgKDY3NDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5BdG9tcy9JY29ucy9Ub29scy9FcmFzZXI8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMTcuNzg3NDIxOSwxOC40ODEyNTUyIEwxMS42NDgwMDc5LDEzLjM0OTgxODQgTDYuNDA0NjYwMDksMTkuMzgxNjAwMSBMMTAuNTUzOTE1NiwyMi45ODg0OTI5IEwxMy44NjkzNCwyMi45ODg0OTI5IEwxNy43ODc0MjE5LDE4LjQ4MTI1NTIgWiBNMTYuNTA3NDI1MiwyMi45ODg0OTI5IEwyNi4wMDAwMDAyLDIyLjk4ODQ5MjkgTDI2LjAwMDAwMDIsMjQuOTg4NDkyOSBMMTAuMDAwMDAwMiwyNC45ODg0OTI5IEw5LjgwNzA4MzEzLDI0Ljk4ODQ5MjkgTDUuMDkyNTQyMDQsMjAuODkxMDE5MiBDNC4yNTg5MTI4NSwyMC4xNjYzNTY0IDQuMTcwNTc4MTQsMTguOTAzMTExMiA0Ljg5NTI0MDkzLDE4LjA2OTQ4MiBMMTYuMDQ4MjQ0NCw1LjIzOTQxOTE2IEMxNi43NzI5MDcyLDQuNDA1Nzg5OTggMTguMDM2MTUyNSw0LjMxNzQ1NTI2IDE4Ljg2OTc4MTYsNS4wNDIxMTgwNiBMMjQuOTA3NDU4MywxMC4yOTA1OTAzIEMyNS43NDEwODc1LDExLjAxNTI1MzEgMjUuODI5NDIyMiwxMi4yNzg0OTgzIDI1LjEwNDc1OTQsMTMuMTEyMTI3NSBMMTYuNTA3NDI1MiwyMi45ODg0OTI5IFoiIGlkPSJwYXRoLTEiPjwvcGF0aD4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSJTeW1ib2xzIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iQXRvbXMvSWNvbnMvVG9vbHMvRXJhc2VyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy4wMDAwMDAsIC0zLjAwMDAwMCkiPgogICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDx1c2UgaWQ9IkNvbWJpbmVkLVNoYXBlIiBmaWxsPSIjNUI1QjVCIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+); +} +.leaflet-pm-toolbar .leaflet-pm-icon-edit { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0iZWRpdF9hbmNob3ItYSIgZD0iTTEzLjUsMTEgQzExLjU2NzAwMzQsMTEgMTAsOS40MzI5OTY2MiAxMCw3LjUgQzEwLDUuNTY3MDAzMzggMTEuNTY3MDAzNCw0IDEzLjUsNCBDMTUuNDMyOTk2Niw0IDE3LDUuNTY3MDAzMzggMTcsNy41IEMxNyw5LjQzMjk5NjYyIDE1LjQzMjk5NjYsMTEgMTMuNSwxMSBaIE0xMy41LDkgQzE0LjMyODQyNzEsOSAxNSw4LjMyODQyNzEyIDE1LDcuNSBDMTUsNi42NzE1NzI4OCAxNC4zMjg0MjcxLDYgMTMuNSw2IEMxMi42NzE1NzI5LDYgMTIsNi42NzE1NzI4OCAxMiw3LjUgQzEyLDguMzI4NDI3MTIgMTIuNjcxNTcyOSw5IDEzLjUsOSBaIE0xMi4wMDAyODg5LDcuNTI5NzM4OTMgQzEyLjAxMjU5ODMsOC4xNjI3MzY3MiAxMi40MTcwMTk3LDguNjk5NjY0MyAxMi45ODA3MTExLDguOTA3Njc5NjYgTDMsMTUgTDMsMTMgTDEyLjAwMDI4ODksNy41Mjk3Mzg5MyBaIE0xNC4yMTcyNzIyLDYuMTgyMjg0NzIgTDE5LjQ1MzEyNSwzIEwyMi42NTg5MzU1LDMgTDE0Ljk4OTEwMiw3LjY4MTczODg1IEMxNC45OTYyOTcxLDcuNjIyMTY0NTkgMTUsNy41NjE1MTQ3MiAxNSw3LjUgQzE1LDYuOTMxMzgzODEgMTQuNjgzNjA5OCw2LjQzNjY2NDUgMTQuMjE3MjcyMiw2LjE4MjI4NDcyIFogTTIzLjQ0MzQwNDIsMTkuMjg1MTczNiBMMjAuMTI4Mjc5OSwxOS4yODUxNzM2IEwyMS44NzI5OTgzLDIzLjUzNDk1MjUgQzIxLjk5NDUyOTYsMjMuODI5NTc3MyAyMS44NTU2NTQ2LDI0LjE1OTkyMDkgMjEuNTc3ODczNCwyNC4yODQ5MjA4IEwyMC4wNDE0Njc1LDI0Ljk1NDUxNDIgQzE5Ljc1NTA2MTMsMjUuMDc5NTE0MSAxOS40MzM4NzM4LDI0LjkzNjY3MDQgMTkuMzEyMzQyNiwyNC42NTA5NTE4IEwxNy42NTQ0MzY3LDIwLjYxNTQ1NDEgTDE0Ljk0NjE4NzMsMjMuNDAxMDE1MSBDMTQuNTg1MjgxMSwyMy43NzIxNzExIDE0LDIzLjQ4NjA0NjMgMTQsMjIuOTk5MjY1MyBMMTQsOS41NzE4MzUzMyBDMTQsOS4wNTkzMzU2MSAxNC42MjI1MzExLDguODA5NDkyIDE0Ljk0NjE1Niw5LjE3MDA4NTU1IEwyMy44MzQwMjkyLDE4LjMxMjAxNzkgQzI0LjE5MjUyOTEsMTguNjYxMzYxNSAyMy45Mjc5OTc5LDE5LjI4NTE3MzYgMjMuNDQzNDA0MiwxOS4yODUxNzM2IFoiLz4KICA8L2RlZnM+CiAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMyAtMykiPgogICAgPG1hc2sgaWQ9ImVkaXRfYW5jaG9yLWIiIGZpbGw9IiNmZmYiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNlZGl0X2FuY2hvci1hIi8+CiAgICA8L21hc2s+CiAgICA8dXNlIGZpbGw9IiM1QjVCNUIiIGZpbGwtcnVsZT0ibm9uemVybyIgeGxpbms6aHJlZj0iI2VkaXRfYW5jaG9yLWEiLz4KICAgIDxnIGZpbGw9IiM1QjVCNUIiIG1hc2s9InVybCgjZWRpdF9hbmNob3ItYikiPgogICAgICA8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=); +} +.leaflet-pm-toolbar .leaflet-pm-icon-drag { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0ibW92ZS1hIiBkPSJNMjEsMTQgTDIxLDEwIEwyNywxNSBMMjEsMjAgTDIxLDE2IEwxNiwxNiBMMTYsMjEgTDIwLDIxIEwxNSwyNyBMMTAsMjEgTDE0LDIxIEwxNCwxNiBMOSwxNiBMOSwyMCBMMywxNSBMOSwxMCBMOSwxNCBMMTQsMTQgTDE0LDkgTDEwLDkgTDE1LDMgTDIwLDkgTDE2LDkgTDE2LDE0IEwyMSwxNCBaIi8+CiAgPC9kZWZzPgogIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMgLTMpIj4KICAgIDxtYXNrIGlkPSJtb3ZlLWIiIGZpbGw9IiNmZmYiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNtb3ZlLWEiLz4KICAgIDwvbWFzaz4KICAgIDx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI21vdmUtYSIvPgogICAgPGcgZmlsbD0iIzVCNUI1QiIgbWFzaz0idXJsKCNtb3ZlLWIpIj4KICAgICAgPHJlY3Qgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K); +} +.leaflet-pm-toolbar .leaflet-pm-icon-cut { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjUgKDY3NDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5BdG9tcy9JY29ucy9Ub29scy9TY2lzc29yczwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xMi45NjkxNTc0LDEzLjQ5Mzk0MzUgTDIxLjAzMTcwMzIsNS41NDE2NzAxMyBMMjMuNDY0OTQ5OSw1LjY3NzIyOTU3IEwxNy4wNDcwNzEzLDE0LjUxMDY4MTYgTDI3LjU2NjAzMzYsMTcuMTMzMzUzNSBMMjUuNzg5MTk0NCwxOC44MDEyNTg4IEwxNC41ODU0OTUxLDE3Ljg5ODc1MDYgTDEzLjY0ODc5NTUsMTkuMTg4MDA3IEMxMy43OTQ2MzksMTkuMjY1MDk1OCAxMy45MzY3OTg1LDE5LjM1MzQ0MTcgMTQuMDc0MTM3NywxOS40NTMyMjQ1IEMxNS42Mzc5NjQ4LDIwLjU4OTQxMTQgMTUuOTg0NjM1NywyMi43NzgyMDUyIDE0Ljg0ODQ0ODgsMjQuMzQyMDMyNCBDMTMuNzEyMjYxOSwyNS45MDU4NTk1IDExLjUyMzQ2ODEsMjYuMjUyNTMwNCA5Ljk1OTY0MDk2LDI1LjExNjM0MzUgQzguMzk1ODEzODQsMjMuOTgwMTU2NSA4LjA0OTE0Mjk2LDIxLjc5MTM2MjcgOS4xODUzMjk4NiwyMC4yMjc1MzU2IEM5Ljc0NTg3Mjc2LDE5LjQ1NjAxNDUgMTAuNTYyNjE4OCwxOC45ODA3NDc1IDExLjQzNDEyMTgsMTguODMzNjQwNyBMMTIuNjgwNTY1NiwxNy4xMTgwNTc5IEwxMi41MjM5NzI0LDE2LjM3NDcyMTYgTDExLjk1MDY5MzIsMTUuMzAxMjM5MSBMOS44OTMxMDY0NiwxNC43ODgyMjUxIEM5LjEzMDkzNzk2LDE1LjIzNTcyNjEgOC4xOTk3Nzg1NCwxNS4zOTY2NDQ3IDcuMjc0NDUzNTUsMTUuMTY1OTM1MiBDNS4zOTg4NzUxOSwxNC42OTgzMDEgNC4yNTc1MTA5NCwxMi43OTg3NTE5IDQuNzI1MTQ1MTUsMTAuOTIzMTczNiBDNS4xOTI3NzkzNSw5LjA0NzU5NTE5IDcuMDkyMzI4NDYsNy45MDYyMzA5NCA4Ljk2NzkwNjgyLDguMzczODY1MTUgQzEwLjg0MzQ4NTIsOC44NDE0OTkzNSAxMS45ODQ4NDk0LDEwLjc0MTA0ODUgMTEuNTE3MjE1MiwxMi42MTY2MjY4IEMxMS40NzYxNDY0LDEyLjc4MTM0NDkgMTEuNDI0MDMzNSwxMi45NDA0MDAxIDExLjM2MTg2MjcsMTMuMDkzMTk5OSBMMTIuOTY5MTU3NCwxMy40OTM5NDM1IFogTTcuNzU4Mjk3MzUsMTMuMjI1MzQzOCBDOC41NjIxMTY2NCwxMy40MjU3NTg0IDkuMzc2MjA5MTIsMTIuOTM2NjAyMyA5LjU3NjYyMzc4LDEyLjEzMjc4MyBDOS43NzcwMzg0NCwxMS4zMjg5NjM3IDkuMjg3ODgyMzMsMTAuNTE0ODcxMyA4LjQ4NDA2MzAzLDEwLjMxNDQ1NjYgQzcuNjgwMjQzNzMsMTAuMTE0MDQxOSA2Ljg2NjE1MTI2LDEwLjYwMzE5OCA2LjY2NTczNjYsMTEuNDA3MDE3MyBDNi40NjUzMjE5NCwxMi4yMTA4MzY2IDYuOTU0NDc4MDUsMTMuMDI0OTI5MSA3Ljc1ODI5NzM1LDEzLjIyNTM0MzggWiBNMTAuODAzMzYzOSwyMS40MDMxMDYxIEMxMC4zMTY0MjY2LDIyLjA3MzMxNzcgMTAuNDY0OTk5OCwyMy4wMTEzNzIyIDExLjEzNTIxMTUsMjMuNDk4MzA5NSBDMTEuODA1NDIzMSwyMy45ODUyNDY3IDEyLjc0MzQ3NzYsMjMuODM2NjczNSAxMy4yMzA0MTQ4LDIzLjE2NjQ2MTkgQzEzLjcxNzM1MjEsMjIuNDk2MjUwMiAxMy41Njg3Nzg4LDIxLjU1ODE5NTcgMTIuODk4NTY3MiwyMS4wNzEyNTg1IEMxMi4yMjgzNTU2LDIwLjU4NDMyMTIgMTEuMjkwMzAxMSwyMC43MzI4OTQ1IDEwLjgwMzM2MzksMjEuNDAzMTA2MSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkF0b21zL0ljb25zL1Rvb2xzL1NjaXNzb3JzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy4wMDAwMDAsIC0zLjAwMDAwMCkiPgogICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDx1c2UgaWQ9Ik1hc2siIGZpbGw9IiM1QjVCNUIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTYuMDkzMTk0LCAxNS42NjMzNTEpIHJvdGF0ZSgtMzIuMDAwMDAwKSB0cmFuc2xhdGUoLTE2LjA5MzE5NCwgLTE1LjY2MzM1MSkgIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==); +} +.leaflet-pm-toolbar .leaflet-pm-icon-snapping { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU3LjEgKDgzMDg4KSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5BdG9tcy9JY29ucy9Ub29scy9NYWduZXQ8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNMjEuOTk5NDc1OSwxMC45NDI4MTgzIEwyMS45OTk5OTg1LDE2LjM3MTA0MTcgQzIyLDE2LjY4NzIwMDcgMjIsMTcuMDA1ODI3OCAyMiwxNy4zMjY5NDExIEMyMiwyMS41NjQ2NTQ1IDE4LjY0MjEzNTYsMjUgMTQuNSwyNSBDMTAuMzU3ODY0NCwyNSA3LDIxLjU2NDY1NDUgNywxNy4zMjY5NDExIEw3LjAwMDg3NTA4LDEwLjk5MDc1MDcgTDExLjAwMjI4MDgsMTAuOTk4NDEyNSBDMTEuMDAxNzAzMywxMS42OTgwMTE0IDExLjAwMTI0NywxMi40MTY4MjQ4IDExLjAwMDg5OTIsMTMuMTU1NDg4NyBMMTEsMTcuMzI2OTQxMSBDMTEsMTkuMzc1NjgwOSAxMi41ODc2ODQxLDIxIDE0LjUsMjEgQzE2LjQxMjMxNTksMjEgMTgsMTkuMzc1NjgwOSAxOCwxNy4zMjY5NDExIEMxOCwxNS4wNzAyMDMyIDE3Ljk5OTU2OTYsMTIuOTYxOTY2OCAxNy45OTg1MzksMTAuOTkxMDAzMiBMMjEuOTk5NDc1OSwxMC45NDI4MTgzIFogTTEwLDcgQzEwLjU1MjI4NDcsNyAxMSw3LjQ0NzcxNTI1IDExLDggTDExLDEwIEw3LDEwIEw3LDggQzcsNy40NDc3MTUyNSA3LjQ0NzcxNTI1LDcgOCw3IEwxMCw3IFogTTIxLDcgQzIxLjU1MjI4NDcsNyAyMiw3LjQ0NzcxNTI1IDIyLDggTDIyLDEwIEwxOCwxMCBMMTgsOCBDMTgsNy40NDc3MTUyNSAxOC40NDc3MTUzLDcgMTksNyBMMjEsNyBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkF0b21zL0ljb25zL1Rvb2xzL01hZ25ldCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMuMDAwMDAwLCAtMy4wMDAwMDApIj4KICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICA8dXNlIGlkPSJNYXNrIiBmaWxsPSIjNUI1QjVCIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0LjUwMDAwMCwgMTYuMDAwMDAwKSByb3RhdGUoNDUuMDAwMDAwKSB0cmFuc2xhdGUoLTE0LjUwMDAwMCwgLTE2LjAwMDAwMCkgIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==); +} +.leaflet-pm-toolbar .leaflet-pm-icon-rotate { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBpZD0icm90YXRlIiBkPSJNMjEuMiw1LjhjLTAuMS0wLjItMC4yLTAuMy0wLjMtMC41bC0wLjEtMC4yYy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNWwtMC4xLTAuMmMtMC4xLTAuMi0wLjItMC4zLTAuNC0wLjVsLTAuMi0wLjNsMi44LTMuMUwxOCwwLjZsLTQuNiwwLjFsMC41LDQuNWwwLjUsNC41bDMuMi0zLjZ2MC4xbDAuMSwwLjJjMC4xLDAuMSwwLjEsMC4yLDAuMiwwLjJsMC4xLDAuMkMxOCw3LDE4LDcuMSwxOC4xLDcuMmMwLjMsMC43LDAuNiwxLjQsMC43LDIuMWMwLjIsMS40LDAsMi45LTAuNiw0LjJMMTgsMTMuOUwxNy45LDE0bC0wLjMsMC41bC0wLjEsMC4yYy0wLjIsMC4yLTAuNCwwLjUtMC42LDAuN2MtMC41LDAuNS0xLjEsMS0xLjcsMS4zYy0wLjYsMC40LTEuMywwLjYtMi4xLDAuOGMtMC43LDAuMS0xLjUsMC4yLTIuMiwwLjFjLTAuOC0wLjEtMS41LTAuMy0yLjItMC41Yy0wLjctMC4zLTEuMy0wLjctMS45LTEuMmwtMC40LTAuNGwtMC4yLTAuM0w2LDE1Yy0wLjEtMC4xLTAuMi0wLjItMC4yLTAuM2wtMC4zLTAuNGwtMC4xLTAuMWwtMC4yLTAuNGMwLTAuMS0wLjEtMC4xLTAuMS0wLjJsLTAuMy0wLjVsLTAuMS0wLjJjLTAuMS0wLjMtMC4yLTAuNi0wLjMtMC45Yy0wLjItMC44LTAuMy0xLjYtMC4zLTIuNGMwLTAuMiwwLTAuMywwLTAuNVY4LjljMC0wLjIsMC0wLjMsMC4xLTAuNGwwLjEtMC42bDAuMi0wLjZjMC4zLTAuOCwwLjctMS41LDEuMi0yLjJjMC41LTAuNywxLjEtMS4zLDEuOC0xLjhjMC4yLTAuMSwwLjMtMC40LDAuMS0wLjZDNy41LDIuNiw3LjQsMi41LDcuMywyLjVINy4xTDcsMi42QzYuMSwzLDUuNCwzLjYsNC43LDQuMkM0LDQuOSwzLjUsNS43LDMsNi42Yy0wLjksMS44LTEuMiwzLjgtMC44LDUuOGMwLjEsMC41LDAuMiwwLjksMC4zLDEuNGwwLjMsMC44QzIuOSwxNC43LDMsMTQuOCwzLDE1bDAuMiwwLjRjMCwwLjEsMC4xLDAuMiwwLjEsMC4ybDAuMywwLjVjMC4xLDAuMiwwLjIsMC4zLDAuMywwLjVsMC4xLDAuMmMwLjEsMC4xLDAuMiwwLjMsMC4zLDAuNEw1LDE3LjhjMC43LDAuNywxLjYsMS4zLDIuNSwxLjhjMC45LDAuNSwxLjksMC44LDMsMC45YzAuNSwwLjEsMSwwLjEsMS41LDAuMWMwLjYsMCwxLjEsMCwxLjYtMC4xYzEtMC4yLDIuMS0wLjUsMy0xbDAuMi0wLjFjMC4yLTAuMSwwLjMtMC4yLDAuNS0wLjNsMC43LTAuNGMwLjItMC4xLDAuMy0wLjIsMC40LTAuM2wwLjItMC4yYzAuMi0wLjEsMC40LTAuMywwLjUtMC41bDAuMS0wLjFjMC4zLTAuMywwLjctMC43LDAuOS0xbDAuNi0wLjlsMC40LTAuNmMxLTEuOSwxLjQtNC4xLDEuMS02LjJDMjIsNy44LDIxLjcsNi43LDIxLjIsNS44eiIvPgogICAgPC9kZWZzPgogICAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDIpIj4KICAgICAgICA8bWFzayBpZD0icm90YXRlLWIiIGZpbGw9IiNmZmYiPgogICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNyb3RhdGUiLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHVzZSBmaWxsPSIjNUI1QjVCIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHhsaW5rOmhyZWY9IiNyb3RhdGUiLz4KICAgICAgICA8ZyBmaWxsPSIjNUI1QjVCIiBtYXNrPSJ1cmwoI3JvdGF0ZS1iKSI+CiAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==); +} +.leaflet-pm-toolbar .leaflet-pm-icon-text { + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7c3Ryb2tlOiM1YjViNWI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoyLjVweDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPlRleHQ8L3RpdGxlPjxnIGlkPSJFYmVuZV8yIiBkYXRhLW5hbWU9IkViZW5lIDIiPjxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMTkuNjQgNy4yNyAxOS42NCA0IDEyIDQgMTIgMjAgMTUuOTEgMjAgOC4wOSAyMCAxMiAyMCAxMiA0IDQuMzYgNCA0LjM2IDcuMjciLz48L2c+PC9zdmc+); +} + +.leaflet-buttons-control-button:hover, +.leaflet-buttons-control-button:focus { + cursor: pointer; + background-color: #f4f4f4; +} +.active > .leaflet-buttons-control-button { + box-shadow: inset 0 -1px 5px 2px rgba(81, 77, 77, 0.31); +} + +.leaflet-buttons-control-text-hide { + display: none; +} + +.button-container { + position: relative; +} + +.button-container .leaflet-pm-actions-container { + z-index: 2; + position: absolute; + top: 0; + left: 100%; + display: none; + white-space: nowrap; + direction: ltr; +} + +.leaflet-right + .leaflet-pm-toolbar + .button-container + .leaflet-pm-actions-container { + right: 100%; + left: auto; +} + +.button-container.active .leaflet-pm-actions-container { + display: block; +} + +.button-container + .leaflet-pm-actions-container:not(.pos-right) + a.leaflet-pm-action:last-child { + border-radius: 0 3px 3px 0; + border-right: 0; +} +.button-container + .leaflet-pm-actions-container.pos-right + a.leaflet-pm-action:first-child { + border-radius: 3px 0 0 3px; +} +.button-container + .leaflet-pm-actions-container.pos-right + a.leaflet-pm-action:last-child { + border-right: 0; +} +.button-container .leaflet-pm-actions-container .leaflet-pm-action { + padding: 0 10px; + background-color: #666; + color: #fff; + display: inline-block; + width: auto; + border-right: 1px solid #eee; + user-select: none; + border-bottom: none; + height: 29px; + line-height: 29px; +} +.leaflet-pm-toolbar + .button-container:first-child.pos-right.active + a.leaflet-buttons-control-button { + border-top-left-radius: 0; +} +.leaflet-pm-toolbar + .button-container:first-child.active:not(.pos-right) + a.leaflet-buttons-control-button { + border-top-right-radius: 0; +} + +.button-container .leaflet-pm-actions-container .leaflet-pm-action:hover, +.button-container .leaflet-pm-actions-container .leaflet-pm-action:focus { + cursor: pointer; + background-color: #777; +} + +/* That the active control is always over the other controls */ +.leaflet-pm-toolbar.activeChild { + z-index: 801; +} + +.leaflet-buttons-control-button.pm-disabled { + background-color: #f4f4f4; +} + +.leaflet-buttons-control-button.pm-disabled > .control-icon { + filter: opacity(0.6); +} \ No newline at end of file diff --git a/web/lib/components/geoman/leaflet-geoman.min.js b/web/lib/components/geoman/leaflet-geoman.min.js new file mode 100644 index 0000000..bc15cc7 --- /dev/null +++ b/web/lib/components/geoman/leaflet-geoman.min.js @@ -0,0 +1 @@ +(()=>{var t={9705:(t,e,i)=>{"use strict";var n=i(1540);function r(t){var e=[Infinity,Infinity,-Infinity,-Infinity];return n.coordEach(t,(function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]{"use strict";function i(t,e,i){void 0===i&&(i={});var n={type:"Feature"};return(0===i.id||i.id)&&(n.id=i.id),i.bbox&&(n.bbox=i.bbox),n.properties=e||{},n.geometry=t,n}function n(t,e,n){if(void 0===n&&(n={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!d(t[0])||!d(t[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:t},e,n)}function r(t,e,n){void 0===n&&(n={});for(var r=0,a=t;r=0))throw new Error("precision must be a positive number");var i=Math.pow(10,e||0);return Math.round(t*i)/i},e.radiansToLength=u,e.lengthToRadians=c,e.lengthToDegrees=function(t,e){return p(c(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=p,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,i){if(void 0===e&&(e="kilometers"),void 0===i&&(i="kilometers"),!(t>=0))throw new Error("length must be a positive number");return u(c(t,e),i)},e.convertArea=function(t,i,n){if(void 0===i&&(i="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var r=e.areaFactors[i];if(!r)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/r*a},e.isNumber=d,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!d(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},1540:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(4102);function r(t,e,i){if(null!==t)for(var n,a,o,s,l,h,u,c,p=0,d=0,f=t.type,g="FeatureCollection"===f,_="Feature"===f,m=g?t.features.length:1,y=0;yh||d>u||f>c)return l=r,h=i,u=d,c=f,void(o=0);var g=n.lineString([l,r],t.properties);if(!1===e(g,i,a,f,o))return!1;o++,l=r}))&&void 0}}}))}function u(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,i,r){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,i,r,0,0))return!1;break;case"Polygon":for(var s=0;s{"use strict";i(7107);var n=i(2492),r=i.n(n);const a=JSON.parse('{"tooltips":{"placeMarker":"Click to place marker","firstVertex":"Click to place first vertex","continueLine":"Click to continue drawing","finishLine":"Click any existing marker to finish","finishPoly":"Click first marker to finish","finishRect":"Click to finish","startCircle":"Click to place circle center","finishCircle":"Click to finish circle","placeCircleMarker":"Click to place circle marker","placeText":"Click to place text"},"actions":{"finish":"Finish","cancel":"Cancel","removeLastVertex":"Remove Last Vertex"},"buttonTitles":{"drawMarkerButton":"Draw Marker","drawPolyButton":"Draw Polygons","drawLineButton":"Draw Polyline","drawCircleButton":"Draw Circle","drawRectButton":"Draw Rectangle","editButton":"Edit Layers","dragButton":"Drag Layers","cutButton":"Cut Layers","deleteButton":"Remove Layers","drawCircleMarkerButton":"Draw Circle Marker","snappingButton":"Snap dragged marker to other layers and vertices","pinningButton":"Pin shared vertices together","rotateButton":"Rotate Layers","drawTextButton":"Draw Text","scaleButton":"Scale Layers","autoTracingButton":"Auto trace Line"},"measurements":{"totalLength":"Length","segmentLength":"Segment length","area":"Area","radius":"Radius","perimeter":"Perimeter","height":"Height","width":"Width","coordinates":"Position","coordinatesMarker":"Position Marker"}}'),o=JSON.parse('{"tooltips":{"placeMarker":"Platziere den Marker mit Klick","firstVertex":"Platziere den ersten Marker mit Klick","continueLine":"Klicke, um weiter zu zeichnen","finishLine":"Beende mit Klick auf existierenden Marker","finishPoly":"Beende mit Klick auf ersten Marker","finishRect":"Beende mit Klick","startCircle":"Platziere das Kreiszentrum mit Klick","finishCircle":"Beende den Kreis mit Klick","placeCircleMarker":"Platziere den Kreismarker mit Klick","placeText":"Platziere den Text mit Klick"},"actions":{"finish":"Beenden","cancel":"Abbrechen","removeLastVertex":"Letzten Vertex löschen"},"buttonTitles":{"drawMarkerButton":"Marker zeichnen","drawPolyButton":"Polygon zeichnen","drawLineButton":"Polyline zeichnen","drawCircleButton":"Kreis zeichnen","drawRectButton":"Rechteck zeichnen","editButton":"Layer editieren","dragButton":"Layer bewegen","cutButton":"Layer schneiden","deleteButton":"Layer löschen","drawCircleMarkerButton":"Kreismarker zeichnen","snappingButton":"Bewegter Layer an andere Layer oder Vertexe einhacken","pinningButton":"Vertexe an der gleichen Position verknüpfen","rotateButton":"Layer drehen","drawTextButton":"Text zeichnen","scaleButton":"Layer skalieren","autoTracingButton":"Linie automatisch nachzeichen"},"measurements":{"totalLength":"Länge","segmentLength":"Segment Länge","area":"Fläche","radius":"Radius","perimeter":"Umfang","height":"Höhe","width":"Breite","coordinates":"Position","coordinatesMarker":"Position Marker"}}'),s=JSON.parse('{"tooltips":{"placeMarker":"Clicca per posizionare un Marker","firstVertex":"Clicca per posizionare il primo vertice","continueLine":"Clicca per continuare a disegnare","finishLine":"Clicca qualsiasi marker esistente per terminare","finishPoly":"Clicca il primo marker per terminare","finishRect":"Clicca per terminare","startCircle":"Clicca per posizionare il punto centrale del cerchio","finishCircle":"Clicca per terminare il cerchio","placeCircleMarker":"Clicca per posizionare un Marker del cherchio"},"actions":{"finish":"Termina","cancel":"Annulla","removeLastVertex":"Rimuovi l\'ultimo vertice"},"buttonTitles":{"drawMarkerButton":"Disegna Marker","drawPolyButton":"Disegna Poligoni","drawLineButton":"Disegna Polilinea","drawCircleButton":"Disegna Cerchio","drawRectButton":"Disegna Rettangolo","editButton":"Modifica Livelli","dragButton":"Sposta Livelli","cutButton":"Ritaglia Livelli","deleteButton":"Elimina Livelli","drawCircleMarkerButton":"Disegna Marker del Cerchio","snappingButton":"Snap ha trascinato il pennarello su altri strati e vertici","pinningButton":"Pin condiviso vertici insieme"}}'),l=JSON.parse('{"tooltips":{"placeMarker":"Klik untuk menempatkan marker","firstVertex":"Klik untuk menempatkan vertex pertama","continueLine":"Klik untuk meneruskan digitasi","finishLine":"Klik pada sembarang marker yang ada untuk mengakhiri","finishPoly":"Klik marker pertama untuk mengakhiri","finishRect":"Klik untuk mengakhiri","startCircle":"Klik untuk menempatkan titik pusat lingkaran","finishCircle":"Klik untuk mengakhiri lingkaran","placeCircleMarker":"Klik untuk menempatkan penanda lingkarann"},"actions":{"finish":"Selesai","cancel":"Batal","removeLastVertex":"Hilangkan Vertex Terakhir"},"buttonTitles":{"drawMarkerButton":"Digitasi Marker","drawPolyButton":"Digitasi Polygon","drawLineButton":"Digitasi Polyline","drawCircleButton":"Digitasi Lingkaran","drawRectButton":"Digitasi Segi Empat","editButton":"Edit Layer","dragButton":"Geser Layer","cutButton":"Potong Layer","deleteButton":"Hilangkan Layer","drawCircleMarkerButton":"Digitasi Penanda Lingkaran","snappingButton":"Jepretkan penanda yang ditarik ke lapisan dan simpul lain","pinningButton":"Sematkan simpul bersama bersama"}}'),h=JSON.parse('{"tooltips":{"placeMarker":"Adaugă un punct","firstVertex":"Apasă aici pentru a adăuga primul Vertex","continueLine":"Apasă aici pentru a continua desenul","finishLine":"Apasă pe orice obiect pentru a finisa desenul","finishPoly":"Apasă pe primul obiect pentru a finisa","finishRect":"Apasă pentru a finisa","startCircle":"Apasă pentru a desena un cerc","finishCircle":"Apasă pentru a finisa un cerc","placeCircleMarker":"Adaugă un punct"},"actions":{"finish":"Termină","cancel":"Anulează","removeLastVertex":"Șterge ultimul Vertex"},"buttonTitles":{"drawMarkerButton":"Adaugă o bulină","drawPolyButton":"Desenează un poligon","drawLineButton":"Desenează o linie","drawCircleButton":"Desenează un cerc","drawRectButton":"Desenează un dreptunghi","editButton":"Editează straturile","dragButton":"Mută straturile","cutButton":"Taie straturile","deleteButton":"Șterge straturile","drawCircleMarkerButton":"Desenează marcatorul cercului","snappingButton":"Fixați marcatorul glisat pe alte straturi și vârfuri","pinningButton":"Fixați vârfurile partajate împreună"}}'),u=JSON.parse('{"tooltips":{"placeMarker":"Нажмите, чтобы нанести маркер","firstVertex":"Нажмите, чтобы нанести первый объект","continueLine":"Нажмите, чтобы продолжить рисование","finishLine":"Нажмите любой существующий маркер для завершения","finishPoly":"Выберите первую точку, чтобы закончить","finishRect":"Нажмите, чтобы закончить","startCircle":"Нажмите, чтобы добавить центр круга","finishCircle":"Нажмите, чтобы задать радиус","placeCircleMarker":"Нажмите, чтобы нанести круговой маркер"},"actions":{"finish":"Завершить","cancel":"Отменить","removeLastVertex":"Отменить последнее действие"},"buttonTitles":{"drawMarkerButton":"Добавить маркер","drawPolyButton":"Рисовать полигон","drawLineButton":"Рисовать кривую","drawCircleButton":"Рисовать круг","drawRectButton":"Рисовать прямоугольник","editButton":"Редактировать слой","dragButton":"Перенести слой","cutButton":"Вырезать слой","deleteButton":"Удалить слой","drawCircleMarkerButton":"Добавить круговой маркер","snappingButton":"Привязать перетаскиваемый маркер к другим слоям и вершинам","pinningButton":"Связать общие точки вместе"}}'),c=JSON.parse('{"tooltips":{"placeMarker":"Presiona para colocar un marcador","firstVertex":"Presiona para colocar el primer vértice","continueLine":"Presiona para continuar dibujando","finishLine":"Presiona cualquier marcador existente para finalizar","finishPoly":"Presiona el primer marcador para finalizar","finishRect":"Presiona para finalizar","startCircle":"Presiona para colocar el centro del círculo","finishCircle":"Presiona para finalizar el círculo","placeCircleMarker":"Presiona para colocar un marcador de círculo"},"actions":{"finish":"Finalizar","cancel":"Cancelar","removeLastVertex":"Eliminar último vértice"},"buttonTitles":{"drawMarkerButton":"Dibujar Marcador","drawPolyButton":"Dibujar Polígono","drawLineButton":"Dibujar Línea","drawCircleButton":"Dibujar Círculo","drawRectButton":"Dibujar Rectángulo","editButton":"Editar Capas","dragButton":"Arrastrar Capas","cutButton":"Cortar Capas","deleteButton":"Eliminar Capas","drawCircleMarkerButton":"Dibujar Marcador de Círculo","snappingButton":"El marcador de Snap arrastrado a otras capas y vértices","pinningButton":"Fijar juntos los vértices compartidos"}}'),p=JSON.parse('{"tooltips":{"placeMarker":"Klik om een marker te plaatsen","firstVertex":"Klik om het eerste punt te plaatsen","continueLine":"Klik om te blijven tekenen","finishLine":"Klik op een bestaand punt om te beëindigen","finishPoly":"Klik op het eerst punt om te beëindigen","finishRect":"Klik om te beëindigen","startCircle":"Klik om het middelpunt te plaatsen","finishCircle":"Klik om de cirkel te beëindigen","placeCircleMarker":"Klik om een marker te plaatsen"},"actions":{"finish":"Bewaar","cancel":"Annuleer","removeLastVertex":"Verwijder laatste punt"},"buttonTitles":{"drawMarkerButton":"Plaats Marker","drawPolyButton":"Teken een vlak","drawLineButton":"Teken een lijn","drawCircleButton":"Teken een cirkel","drawRectButton":"Teken een vierkant","editButton":"Bewerk","dragButton":"Verplaats","cutButton":"Knip","deleteButton":"Verwijder","drawCircleMarkerButton":"Plaats Marker","snappingButton":"Snap gesleepte marker naar andere lagen en hoekpunten","pinningButton":"Speld gedeelde hoekpunten samen"}}'),d=JSON.parse('{"tooltips":{"placeMarker":"Cliquez pour placer un marqueur","firstVertex":"Cliquez pour placer le premier sommet","continueLine":"Cliquez pour continuer à dessiner","finishLine":"Cliquez sur n\'importe quel marqueur pour terminer","finishPoly":"Cliquez sur le premier marqueur pour terminer","finishRect":"Cliquez pour terminer","startCircle":"Cliquez pour placer le centre du cercle","finishCircle":"Cliquez pour finir le cercle","placeCircleMarker":"Cliquez pour placer le marqueur circulaire"},"actions":{"finish":"Terminer","cancel":"Annuler","removeLastVertex":"Retirer le dernier sommet"},"buttonTitles":{"drawMarkerButton":"Placer des marqueurs","drawPolyButton":"Dessiner des polygones","drawLineButton":"Dessiner des polylignes","drawCircleButton":"Dessiner un cercle","drawRectButton":"Dessiner un rectangle","editButton":"Éditer des calques","dragButton":"Déplacer des calques","cutButton":"Couper des calques","deleteButton":"Supprimer des calques","drawCircleMarkerButton":"Dessiner un marqueur circulaire","snappingButton":"Glisser le marqueur vers d\'autres couches et sommets","pinningButton":"Épingler ensemble les sommets partagés","rotateButton":"Tourner des calques"}}'),f=JSON.parse('{"tooltips":{"placeMarker":"单击放置标记","firstVertex":"单击放置首个顶点","continueLine":"单击继续绘制","finishLine":"单击任何存在的标记以完成","finishPoly":"单击第一个标记以完成","finishRect":"单击完成","startCircle":"单击放置圆心","finishCircle":"单击完成圆形","placeCircleMarker":"点击放置圆形标记"},"actions":{"finish":"完成","cancel":"取消","removeLastVertex":"移除最后的顶点"},"buttonTitles":{"drawMarkerButton":"绘制标记","drawPolyButton":"绘制多边形","drawLineButton":"绘制线段","drawCircleButton":"绘制圆形","drawRectButton":"绘制长方形","editButton":"编辑图层","dragButton":"拖拽图层","cutButton":"剪切图层","deleteButton":"删除图层","drawCircleMarkerButton":"画圆圈标记","snappingButton":"将拖动的标记捕捉到其他图层和顶点","pinningButton":"将共享顶点固定在一起"}}'),g=JSON.parse('{"tooltips":{"placeMarker":"單擊放置標記","firstVertex":"單擊放置第一個頂點","continueLine":"單擊繼續繪製","finishLine":"單擊任何存在的標記以完成","finishPoly":"單擊第一個標記以完成","finishRect":"單擊完成","startCircle":"單擊放置圓心","finishCircle":"單擊完成圓形","placeCircleMarker":"點擊放置圓形標記"},"actions":{"finish":"完成","cancel":"取消","removeLastVertex":"移除最後一個頂點"},"buttonTitles":{"drawMarkerButton":"放置標記","drawPolyButton":"繪製多邊形","drawLineButton":"繪製線段","drawCircleButton":"繪製圓形","drawRectButton":"繪製方形","editButton":"編輯圖形","dragButton":"移動圖形","cutButton":"裁切圖形","deleteButton":"刪除圖形","drawCircleMarkerButton":"畫圓圈標記","snappingButton":"將拖動的標記對齊到其他圖層和頂點","pinningButton":"將共享頂點固定在一起"}}'),_={en:a,de:o,it:s,id:l,ro:h,ru:u,es:c,nl:p,fr:d,pt_br:JSON.parse('{"tooltips":{"placeMarker":"Clique para posicionar o marcador","firstVertex":"Clique para posicionar o primeiro vértice","continueLine":"Clique para continuar desenhando","finishLine":"Clique em qualquer marcador existente para finalizar","finishPoly":"Clique no primeiro ponto para fechar o polígono","finishRect":"Clique para finalizar","startCircle":"Clique para posicionar o centro do círculo","finishCircle":"Clique para fechar o círculo","placeCircleMarker":"Clique para posicionar o marcador circular"},"actions":{"finish":"Finalizar","cancel":"Cancelar","removeLastVertex":"Remover último vértice"},"buttonTitles":{"drawMarkerButton":"Desenhar um marcador","drawPolyButton":"Desenhar um polígono","drawLineButton":"Desenhar uma polilinha","drawCircleButton":"Desenhar um círculo","drawRectButton":"Desenhar um retângulo","editButton":"Editar camada(s)","dragButton":"Mover camada(s)","cutButton":"Recortar camada(s)","deleteButton":"Remover camada(s)","drawCircleMarkerButton":"Marcador de círculos de desenho","snappingButton":"Marcador arrastado para outras camadas e vértices","pinningButton":"Vértices compartilhados de pinos juntos"}}'),zh:f,zh_tw:g,pl:JSON.parse('{"tooltips":{"placeMarker":"Kliknij, aby ustawić znacznik","firstVertex":"Kliknij, aby ustawić pierwszy punkt","continueLine":"Kliknij, aby kontynuować rysowanie","finishLine":"Kliknij dowolny punkt, aby zakończyć","finishPoly":"Kliknij pierwszy punkt, aby zakończyć","finishRect":"Kliknij, aby zakończyć","startCircle":"Kliknij, aby ustawić środek koła","finishCircle":"Kliknij, aby zakończyć rysowanie koła","placeCircleMarker":"Kliknij, aby ustawić okrągły znacznik"},"actions":{"finish":"Zakończ","cancel":"Anuluj","removeLastVertex":"Usuń ostatni punkt"},"buttonTitles":{"drawMarkerButton":"Narysuj znacznik","drawPolyButton":"Narysuj wielokąt","drawLineButton":"Narysuj ścieżkę","drawCircleButton":"Narysuj koło","drawRectButton":"Narysuj prostokąt","editButton":"Edytuj","dragButton":"Przesuń","cutButton":"Wytnij","deleteButton":"Usuń","drawCircleMarkerButton":"Narysuj okrągły znacznik","snappingButton":"Snap przeciągnięty marker na inne warstwy i wierzchołki","pinningButton":"Sworzeń wspólne wierzchołki razem"}}'),sv:JSON.parse('{"tooltips":{"placeMarker":"Klicka för att placera markör","firstVertex":"Klicka för att placera första hörnet","continueLine":"Klicka för att fortsätta rita","finishLine":"Klicka på en existerande punkt för att slutföra","finishPoly":"Klicka på den första punkten för att slutföra","finishRect":"Klicka för att slutföra","startCircle":"Klicka för att placera cirkelns centrum","finishCircle":"Klicka för att slutföra cirkeln","placeCircleMarker":"Klicka för att placera cirkelmarkör"},"actions":{"finish":"Slutför","cancel":"Avbryt","removeLastVertex":"Ta bort sista hörnet"},"buttonTitles":{"drawMarkerButton":"Rita Markör","drawPolyButton":"Rita Polygoner","drawLineButton":"Rita Linje","drawCircleButton":"Rita Cirkel","drawRectButton":"Rita Rektangel","editButton":"Redigera Lager","dragButton":"Dra Lager","cutButton":"Klipp i Lager","deleteButton":"Ta bort Lager","drawCircleMarkerButton":"Rita Cirkelmarkör","snappingButton":"Snäpp dra markören till andra lager och hörn","pinningButton":"Fäst delade hörn tillsammans"}}'),el:JSON.parse('{"tooltips":{"placeMarker":"Κάντε κλικ για να τοποθετήσετε Δείκτη","firstVertex":"Κάντε κλικ για να τοποθετήσετε το πρώτο σημείο","continueLine":"Κάντε κλικ για να συνεχίσετε να σχεδιάζετε","finishLine":"Κάντε κλικ σε οποιονδήποτε υπάρχον σημείο για να ολοκληρωθεί","finishPoly":"Κάντε κλικ στο πρώτο σημείο για να τελειώσετε","finishRect":"Κάντε κλικ για να τελειώσετε","startCircle":"Κάντε κλικ για να τοποθετήσετε κέντρο Κύκλου","finishCircle":"Κάντε κλικ για να ολοκληρώσετε τον Κύκλο","placeCircleMarker":"Κάντε κλικ για να τοποθετήσετε Κυκλικό Δείκτη"},"actions":{"finish":"Τέλος","cancel":"Ακύρωση","removeLastVertex":"Κατάργηση τελευταίου σημείου"},"buttonTitles":{"drawMarkerButton":"Σχεδίαση Δείκτη","drawPolyButton":"Σχεδίαση Πολυγώνου","drawLineButton":"Σχεδίαση Γραμμής","drawCircleButton":"Σχεδίαση Κύκλου","drawRectButton":"Σχεδίαση Ορθογωνίου","editButton":"Επεξεργασία Επιπέδων","dragButton":"Μεταφορά Επιπέδων","cutButton":"Αποκοπή Επιπέδων","deleteButton":"Κατάργηση Επιπέδων","drawCircleMarkerButton":"Σχεδίαση Κυκλικού Δείκτη","snappingButton":"Προσκόλληση του Δείκτη μεταφοράς σε άλλα Επίπεδα και Κορυφές","pinningButton":"Περικοπή κοινών κορυφών μαζί"}}'),hu:JSON.parse('{"tooltips":{"placeMarker":"Kattintson a jelölő elhelyezéséhez","firstVertex":"Kattintson az első pont elhelyezéséhez","continueLine":"Kattintson a következő pont elhelyezéséhez","finishLine":"A befejezéshez kattintson egy meglévő pontra","finishPoly":"A befejezéshez kattintson az első pontra","finishRect":"Kattintson a befejezéshez","startCircle":"Kattintson a kör középpontjának elhelyezéséhez","finishCircle":"Kattintson a kör befejezéséhez","placeCircleMarker":"Kattintson a körjelölő elhelyezéséhez"},"actions":{"finish":"Befejezés","cancel":"Mégse","removeLastVertex":"Utolsó pont eltávolítása"},"buttonTitles":{"drawMarkerButton":"Jelölő rajzolása","drawPolyButton":"Poligon rajzolása","drawLineButton":"Vonal rajzolása","drawCircleButton":"Kör rajzolása","drawRectButton":"Négyzet rajzolása","editButton":"Elemek szerkesztése","dragButton":"Elemek mozgatása","cutButton":"Elemek vágása","deleteButton":"Elemek törlése","drawCircleMarkerButton":"Kör jelölő rajzolása","snappingButton":"Kapcsolja a jelöltőt másik elemhez vagy ponthoz","pinningButton":"Közös pontok összekötése"}}'),da:JSON.parse('{"tooltips":{"placeMarker":"Tryk for at placere en markør","firstVertex":"Tryk for at placere det første punkt","continueLine":"Tryk for at fortsætte linjen","finishLine":"Tryk på et eksisterende punkt for at afslutte","finishPoly":"Tryk på det første punkt for at afslutte","finishRect":"Tryk for at afslutte","startCircle":"Tryk for at placere cirklens center","finishCircle":"Tryk for at afslutte cirklen","placeCircleMarker":"Tryk for at placere en cirkelmarkør"},"actions":{"finish":"Afslut","cancel":"Afbryd","removeLastVertex":"Fjern sidste punkt"},"buttonTitles":{"drawMarkerButton":"Placer markør","drawPolyButton":"Tegn polygon","drawLineButton":"Tegn linje","drawCircleButton":"Tegn cirkel","drawRectButton":"Tegn firkant","editButton":"Rediger","dragButton":"Træk","cutButton":"Klip","deleteButton":"Fjern","drawCircleMarkerButton":"Tegn cirkelmarkør","snappingButton":"Fastgør trukket markør til andre elementer","pinningButton":"Sammenlæg delte elementer"}}'),no:JSON.parse('{"tooltips":{"placeMarker":"Klikk for å plassere punkt","firstVertex":"Klikk for å plassere første punkt","continueLine":"Klikk for å tegne videre","finishLine":"Klikk på et eksisterende punkt for å fullføre","finishPoly":"Klikk første punkt for å fullføre","finishRect":"Klikk for å fullføre","startCircle":"Klikk for å sette sirkel midtpunkt","finishCircle":"Klikk for å fullføre sirkel","placeCircleMarker":"Klikk for å plassere sirkel"},"actions":{"finish":"Fullfør","cancel":"Kanseller","removeLastVertex":"Fjern forrige punkt"},"buttonTitles":{"drawMarkerButton":"Tegn Punkt","drawPolyButton":"Tegn Flate","drawLineButton":"Tegn Linje","drawCircleButton":"Tegn Sirkel","drawRectButton":"Tegn rektangel","editButton":"Rediger Objekter","dragButton":"Dra Objekter","cutButton":"Kutt Objekter","deleteButton":"Fjern Objekter","drawCircleMarkerButton":"Tegn sirkel-punkt","snappingButton":"Fest dratt punkt til andre objekter og punkt","pinningButton":"Pin delte punkt sammen"}}'),fa:JSON.parse('{"tooltips":{"placeMarker":"کلیک برای جانمایی نشان","firstVertex":"کلیک برای رسم اولین رأس","continueLine":"کلیک برای ادامه رسم","finishLine":"کلیک روی هر نشان موجود برای پایان","finishPoly":"کلیک روی اولین نشان برای پایان","finishRect":"کلیک برای پایان","startCircle":"کلیک برای رسم مرکز دایره","finishCircle":"کلیک برای پایان رسم دایره","placeCircleMarker":"کلیک برای رسم نشان دایره","placeText":"کلیک برای نوشتن متن"},"actions":{"finish":"پایان","cancel":"لفو","removeLastVertex":"حذف آخرین رأس"},"buttonTitles":{"drawMarkerButton":"درج نشان","drawPolyButton":"رسم چندضلعی","drawLineButton":"رسم خط","drawCircleButton":"رسم دایره","drawRectButton":"رسم چهارضلعی","editButton":"ویرایش لایه‌ها","dragButton":"جابجایی لایه‌ها","cutButton":"برش لایه‌ها","deleteButton":"حذف لایه‌ها","drawCircleMarkerButton":"رسم نشان دایره","snappingButton":"نشانگر را به لایه‌ها و رئوس دیگر بکشید","pinningButton":"رئوس مشترک را با هم پین کنید","rotateButton":"چرخش لایه","drawTextButton":"رسم متن"}}'),ua:JSON.parse('{"tooltips":{"placeMarker":"Натисніть, щоб нанести маркер","firstVertex":"Натисніть, щоб нанести першу вершину","continueLine":"Натисніть, щоб продовжити малювати","finishLine":"Натисніть будь-який існуючий маркер для завершення","finishPoly":"Виберіть перший маркер, щоб завершити","finishRect":"Натисніть, щоб завершити","startCircle":"Натисніть, щоб додати центр кола","finishCircle":"Натисніть, щоб завершити коло","placeCircleMarker":"Натисніть, щоб нанести круговий маркер"},"actions":{"finish":"Завершити","cancel":"Відмінити","removeLastVertex":"Видалити попередню вершину"},"buttonTitles":{"drawMarkerButton":"Малювати маркер","drawPolyButton":"Малювати полігон","drawLineButton":"Малювати криву","drawCircleButton":"Малювати коло","drawRectButton":"Малювати прямокутник","editButton":"Редагувати шари","dragButton":"Перенести шари","cutButton":"Вирізати шари","deleteButton":"Видалити шари","drawCircleMarkerButton":"Малювати круговий маркер","snappingButton":"Прив’язати перетягнутий маркер до інших шарів та вершин","pinningButton":"Зв\'язати спільні вершини разом"}}'),tr:JSON.parse('{"tooltips":{"placeMarker":"İşaretçi yerleştirmek için tıklayın","firstVertex":"İlk tepe noktasını yerleştirmek için tıklayın","continueLine":"Çizime devam etmek için tıklayın","finishLine":"Bitirmek için mevcut herhangi bir işaretçiyi tıklayın","finishPoly":"Bitirmek için ilk işaretçiyi tıklayın","finishRect":"Bitirmek için tıklayın","startCircle":"Daire merkezine yerleştirmek için tıklayın","finishCircle":"Daireyi bitirmek için tıklayın","placeCircleMarker":"Daire işaretçisi yerleştirmek için tıklayın"},"actions":{"finish":"Bitir","cancel":"İptal","removeLastVertex":"Son köşeyi kaldır"},"buttonTitles":{"drawMarkerButton":"Çizim İşaretçisi","drawPolyButton":"Çokgenler çiz","drawLineButton":"Çoklu çizgi çiz","drawCircleButton":"Çember çiz","drawRectButton":"Dikdörtgen çiz","editButton":"Katmanları düzenle","dragButton":"Katmanları sürükle","cutButton":"Katmanları kes","deleteButton":"Katmanları kaldır","drawCircleMarkerButton":"Daire işaretçisi çiz","snappingButton":"Sürüklenen işaretçiyi diğer katmanlara ve köşelere yapıştır","pinningButton":"Paylaşılan köşeleri birbirine sabitle"}}'),cz:JSON.parse('{"tooltips":{"placeMarker":"Kliknutím vytvoříte značku","firstVertex":"Kliknutím vytvoříte první objekt","continueLine":"Kliknutím pokračujte v kreslení","finishLine":"Kliknutí na libovolnou existující značku pro dokončení","finishPoly":"Vyberte první bod pro dokončení","finishRect":"Klikněte pro dokončení","startCircle":"Kliknutím přidejte střed kruhu","finishCircle":"Нажмите, чтобы задать радиус","placeCircleMarker":"Kliknutím nastavte poloměr"},"actions":{"finish":"Dokončit","cancel":"Zrušit","removeLastVertex":"Zrušit poslední akci"},"buttonTitles":{"drawMarkerButton":"Přidat značku","drawPolyButton":"Nakreslit polygon","drawLineButton":"Nakreslit křivku","drawCircleButton":"Nakreslit kruh","drawRectButton":"Nakreslit obdélník","editButton":"Upravit vrstvu","dragButton":"Přeneste vrstvu","cutButton":"Vyjmout vrstvu","deleteButton":"Smazat vrstvu","drawCircleMarkerButton":"Přidat kruhovou značku","snappingButton":"Navázat tažnou značku k dalším vrstvám a vrcholům","pinningButton":"Spojit společné body dohromady"}}'),ja:JSON.parse('{"tooltips":{"placeMarker":"クリックしてマーカーを配置","firstVertex":"クリックして最初の頂点を配置","continueLine":"クリックして描画を続ける","finishLine":"任意のマーカーをクリックして終了","finishPoly":"最初のマーカーをクリックして終了","finishRect":"クリックして終了","startCircle":"クリックして円の中心を配置","finishCircle":"クリックして円の描画を終了","placeCircleMarker":"クリックして円マーカーを配置","placeText":"クリックしてテキストを配置"},"actions":{"finish":"終了","cancel":"キャンセル","removeLastVertex":"最後の頂点を削除"},"buttonTitles":{"drawMarkerButton":"マーカーを描画","drawPolyButton":"ポリゴンを描画","drawLineButton":"折れ線を描画","drawCircleButton":"円を描画","drawRectButton":"矩形を描画","editButton":"レイヤーを編集","dragButton":"レイヤーをドラッグ","cutButton":"レイヤーを切り取り","deleteButton":"レイヤーを削除","drawCircleMarkerButton":"円マーカーを描画","snappingButton":"ドラッグしたマーカーを他のレイヤーや頂点にスナップする","pinningButton":"共有する頂点を同時に動かす","rotateButton":"レイヤーを回転","drawTextButton":"テキストを描画"}}'),fi:JSON.parse('{"tooltips":{"placeMarker":"Klikkaa asettaaksesi merkin","firstVertex":"Klikkaa asettaakseni ensimmäisen osuuden","continueLine":"Klikkaa jatkaaksesi piirtämistä","finishLine":"Klikkaa olemassa olevaa merkkiä lopettaaksesi","finishPoly":"Klikkaa ensimmäistä merkkiä lopettaaksesi","finishRect":"Klikkaa lopettaaksesi","startCircle":"Klikkaa asettaaksesi ympyrän keskipisteen","finishCircle":"Klikkaa lopettaaksesi ympyrän","placeCircleMarker":"Klikkaa asettaaksesi ympyrämerkin","placeText":"Klikkaa asettaaksesi tekstin"},"actions":{"finish":"Valmis","cancel":"Peruuta","removeLastVertex":"Poista viimeinen osuus"},"buttonTitles":{"drawMarkerButton":"Piirrä merkkejä","drawPolyButton":"Piirrä monikulmioita","drawLineButton":"Piirrä viivoja","drawCircleButton":"Piirrä ympyrä","drawRectButton":"Piirrä neliskulmioita","editButton":"Muokkaa","dragButton":"Siirrä","cutButton":"Leikkaa","deleteButton":"Poista","drawCircleMarkerButton":"Piirrä ympyrämerkki","snappingButton":"Kiinnitä siirrettävä merkki toisiin muotoihin","pinningButton":"Kiinnitä jaetut muodot yhteen","rotateButton":"Käännä","drawTextButton":"Piirrä tekstiä"}}'),ko:JSON.parse('{"tooltips":{"placeMarker":"마커 위치를 클릭하세요","firstVertex":"첫번째 꼭지점 위치을 클릭하세요","continueLine":"계속 그리려면 클릭하세요","finishLine":"끝내려면 기존 마커를 클릭하세요","finishPoly":"끝내려면 처음 마커를 클릭하세요","finishRect":"끝내려면 클릭하세요","startCircle":"원의 중심이 될 위치를 클릭하세요","finishCircle":"원을 끝내려면 클릭하세요","placeCircleMarker":"원 마커 위치를 클릭하세요","placeText":"텍스트 위치를 클릭하세요"},"actions":{"finish":"끝내기","cancel":"취소","removeLastVertex":"마지막 꼭지점 제거"},"buttonTitles":{"drawMarkerButton":"마커 그리기","drawPolyButton":"다각형 그리기","drawLineButton":"다각선 그리기","drawCircleButton":"원 그리기","drawRectButton":"직사각형 그리기","editButton":"레이어 편집하기","dragButton":"레이어 끌기","cutButton":"레이어 자르기","deleteButton":"레이어 제거하기","drawCircleMarkerButton":"원 마커 그리기","snappingButton":"잡아끈 마커를 다른 레이어 및 꼭지점에 들러붙게 하기","pinningButton":"공유 꼭지점을 함께 찍기","rotateButton":"레이어 회전하기","drawTextButton":"텍스트 그리기"}}')};function m(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function y(t){for(var e=1;e0&&arguments[0]!==undefined?arguments[0]:this.globalOptions;this.globalEditModeEnabled()?this.disableGlobalEditMode():this.enableGlobalEditMode(t)},handleLayerAdditionInGlobalEditMode:function(){var t=this._addedLayers;for(var e in this._addedLayers={},t){var i=t[e];this._isRelevantForEdit(i)&&this.globalEditModeEnabled()&&i.pm.enable(y({},this.globalOptions))}},_layerAdded:function(t){var e=t.layer;this._addedLayers[L.stamp(e)]=e},_isRelevantForEdit:function(t){return t.pm&&!(t instanceof L.LayerGroup)&&(!L.PM.optIn&&!t.options.pmIgnore||L.PM.optIn&&!1===t.options.pmIgnore)&&!t._pmTempLayer&&t.pm.options.allowEditing}};const k={_globalDragModeEnabled:!1,enableGlobalDragMode:function(){var t=L.PM.Utils.findLayers(this.map);this._globalDragModeEnabled=!0,this._addedLayersDrag={},t.forEach((function(t){t.pm.enableLayerDrag()})),this.throttledReInitDrag||(this.throttledReInitDrag=L.Util.throttle(this.reinitGlobalDragMode,100,this)),this.map.on("layeradd",this._layerAddedDrag,this),this.map.on("layeradd",this.throttledReInitDrag,this),this.Toolbar.toggleButton("dragMode",this.globalDragModeEnabled()),this._fireGlobalDragModeToggled(!0)},disableGlobalDragMode:function(){var t=L.PM.Utils.findLayers(this.map);this._globalDragModeEnabled=!1,t.forEach((function(t){t.pm.disableLayerDrag()})),this.map.off("layeradd",this._layerAddedDrag,this),this.map.off("layeradd",this.throttledReInitDrag,this),this.Toolbar.toggleButton("dragMode",this.globalDragModeEnabled()),this._fireGlobalDragModeToggled(!1)},globalDragModeEnabled:function(){return!!this._globalDragModeEnabled},toggleGlobalDragMode:function(){this.globalDragModeEnabled()?this.disableGlobalDragMode():this.enableGlobalDragMode()},reinitGlobalDragMode:function(){var t=this._addedLayersDrag;for(var e in this._addedLayersDrag={},t){var i=t[e];this._isRelevantForDrag(i)&&this.globalDragModeEnabled()&&i.pm.enableLayerDrag()}},_layerAddedDrag:function(t){var e=t.layer;this._addedLayersDrag[L.stamp(e)]=e},_isRelevantForDrag:function(t){return t.pm&&!(t instanceof L.LayerGroup)&&(!L.PM.optIn&&!t.options.pmIgnore||L.PM.optIn&&!1===t.options.pmIgnore)&&!t._pmTempLayer&&t.pm.options.draggable}};const M={_globalRemovalModeEnabled:!1,enableGlobalRemovalMode:function(){var t=this;this._globalRemovalModeEnabled=!0,this.map.eachLayer((function(e){t._isRelevantForRemoval(e)&&(e.pm.disable(),e.on("click",t.removeLayer,t))})),this.throttledReInitRemoval||(this.throttledReInitRemoval=L.Util.throttle(this.reinitGlobalRemovalMode,100,this)),this.map.on("layeradd",this.throttledReInitRemoval,this),this.Toolbar.toggleButton("removalMode",this.globalRemovalModeEnabled()),this._fireGlobalRemovalModeToggled(!0)},disableGlobalRemovalMode:function(){var t=this;this._globalRemovalModeEnabled=!1,this.map.eachLayer((function(e){e.off("click",t.removeLayer,t)})),this.map.off("layeradd",this.throttledReInitRemoval,this),this.Toolbar.toggleButton("removalMode",this.globalRemovalModeEnabled()),this._fireGlobalRemovalModeToggled(!1)},globalRemovalEnabled:function(){return this.globalRemovalModeEnabled()},globalRemovalModeEnabled:function(){return!!this._globalRemovalModeEnabled},toggleGlobalRemovalMode:function(){this.globalRemovalModeEnabled()?this.disableGlobalRemovalMode():this.enableGlobalRemovalMode()},reinitGlobalRemovalMode:function(t){var e=t.layer;this._isRelevantForRemoval(e)&&this.globalRemovalModeEnabled()&&(this.disableGlobalRemovalMode(),this.enableGlobalRemovalMode())},removeLayer:function(t){var e=t.target;this._isRelevantForRemoval(e)&&!e.pm.dragging()&&(e.removeFrom(this.map.pm._getContainingLayer()),e.remove(),e instanceof L.LayerGroup?(this._fireRemoveLayerGroup(e),this._fireRemoveLayerGroup(this.map,e)):(e.pm._fireRemove(e),e.pm._fireRemove(this.map,e)))},_isRelevantForRemoval:function(t){return t.pm&&!(t instanceof L.LayerGroup)&&(!L.PM.optIn&&!t.options.pmIgnore||L.PM.optIn&&!1===t.options.pmIgnore)&&!t._pmTempLayer&&t.pm.options.allowRemoval}};const x={_globalRotateModeEnabled:!1,enableGlobalRotateMode:function(){var t=this;this._globalRotateModeEnabled=!0,L.PM.Utils.findLayers(this.map).filter((function(t){return t instanceof L.Polyline})).forEach((function(e){t._isRelevantForRotate(e)&&e.pm.enableRotate()})),this.throttledReInitRotate||(this.throttledReInitRotate=L.Util.throttle(this._reinitGlobalRotateMode,100,this)),this.map.on("layeradd",this.throttledReInitRotate,this),this.Toolbar.toggleButton("rotateMode",this.globalRotateModeEnabled()),this._fireGlobalRotateModeToggled()},disableGlobalRotateMode:function(){this._globalRotateModeEnabled=!1,L.PM.Utils.findLayers(this.map).filter((function(t){return t instanceof L.Polyline})).forEach((function(t){t.pm.disableRotate()})),this.map.off("layeradd",this.throttledReInitRotate,this),this.Toolbar.toggleButton("rotateMode",this.globalRotateModeEnabled()),this._fireGlobalRotateModeToggled()},globalRotateModeEnabled:function(){return!!this._globalRotateModeEnabled},toggleGlobalRotateMode:function(){this.globalRotateModeEnabled()?this.disableGlobalRotateMode():this.enableGlobalRotateMode()},_reinitGlobalRotateMode:function(t){var e=t.layer;this._isRelevantForRotate(e)&&this.globalRotateModeEnabled()&&(this.disableGlobalRotateMode(),this.enableGlobalRotateMode())},_isRelevantForRotate:function(t){return t.pm&&!(t instanceof L.LayerGroup)&&(!L.PM.optIn&&!t.options.pmIgnore||L.PM.optIn&&!1===t.options.pmIgnore)&&!t._pmTempLayer&&t.pm.options.allowRotation}};function w(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function C(t){for(var e=1;e0&&arguments[0]!==undefined?arguments[0]:"Draw",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._map,"pm:drawstart",{shape:this._shape,workingLayer:this._layer},t,e)},_fireDrawEnd:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Draw",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._map,"pm:drawend",{shape:this._shape},t,e)},_fireCreate:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Draw",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this._map,"pm:create",{shape:this._shape,marker:t,layer:t},e,i)},_fireCenterPlaced:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Draw",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i="Draw"===t?this._layer:undefined,n="Draw"!==t?this._layer:undefined;this.__fire(this._layer,"pm:centerplaced",{shape:this._shape,workingLayer:i,layer:n,latlng:this._layer.getLatLng()},t,e)},_fireCut:function(t,e,i){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"Draw",r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};this.__fire(t,"pm:cut",{shape:this._shape,layer:e,originalLayer:i},n,r)},_fireEdit:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this._layer,e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Edit",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(t,"pm:edit",{layer:this._layer,shape:this.getShape()},e,i)},_fireEnable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:enable",{layer:this._layer,shape:this.getShape()},t,e)},_fireDisable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:disable",{layer:this._layer,shape:this.getShape()},t,e)},_fireUpdate:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:update",{layer:this._layer,shape:this.getShape()},t,e)},_fireMarkerDragStart:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined,i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(this._layer,"pm:markerdragstart",{layer:this._layer,markerEvent:t,shape:this.getShape(),indexPath:e},i,n)},_fireMarkerDrag:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined,i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(this._layer,"pm:markerdrag",{layer:this._layer,markerEvent:t,shape:this.getShape(),indexPath:e},i,n)},_fireMarkerDragEnd:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined,i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined,n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"Edit",r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};this.__fire(this._layer,"pm:markerdragend",{layer:this._layer,markerEvent:t,shape:this.getShape(),indexPath:e,intersectionReset:i},n,r)},_fireDragStart:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:dragstart",{layer:this._layer,shape:this.getShape()},t,e)},_fireDrag:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Edit",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this._layer,"pm:drag",C(C({},t),{},{shape:this.getShape()}),e,i)},_fireDragEnd:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:dragend",{layer:this._layer,shape:this.getShape()},t,e)},_fireDragEnable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:dragenable",{layer:this._layer,shape:this.getShape()},t,e)},_fireDragDisable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:dragdisable",{layer:this._layer,shape:this.getShape()},t,e)},_fireRemove:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:t,i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:remove",{layer:e,shape:this.getShape()},i,n)},_fireVertexAdded:function(t,e,i){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"Edit",r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};this.__fire(this._layer,"pm:vertexadded",{layer:this._layer,workingLayer:this._layer,marker:t,indexPath:e,latlng:i,shape:this.getShape()},n,r)},_fireVertexRemoved:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(this._layer,"pm:vertexremoved",{layer:this._layer,marker:t,indexPath:e,shape:this.getShape()},i,n)},_fireVertexClick:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(this._layer,"pm:vertexclick",{layer:this._layer,markerEvent:t,indexPath:e,shape:this.getShape()},i,n)},_fireIntersect:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Edit",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this._layer,"pm:intersect",{layer:this._layer,intersection:t,shape:this.getShape()},e,i)},_fireLayerReset:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(this._layer,"pm:layerreset",{layer:this._layer,markerEvent:t,indexPath:e,shape:this.getShape()},i,n)},_fireChange:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Edit",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this._layer,"pm:change",{layer:this._layer,latlngs:t,shape:this.getShape()},e,i)},_fireTextChange:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Edit",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this._layer,"pm:textchange",{layer:this._layer,text:t,shape:this.getShape()},e,i)},_fireTextFocus:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:textfocus",{layer:this._layer,shape:this.getShape()},t,e)},_fireTextBlur:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Edit",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._layer,"pm:textblur",{layer:this._layer,shape:this.getShape()},t,e)},_fireSnapDrag:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Snapping",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:snapdrag",e,i,n)},_fireSnap:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Snapping",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:snap",e,i,n)},_fireUnsnap:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Snapping",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:unsnap",e,i,n)},_fireRotationEnable:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Rotation",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:rotateenable",{layer:this._layer,helpLayer:this._rotatePoly,shape:this.getShape()},i,n)},_fireRotationDisable:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Rotation",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(t,"pm:rotatedisable",{layer:this._layer,shape:this.getShape()},e,i)},_fireRotationStart:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Rotation",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:rotatestart",{layer:this._rotationLayer,helpLayer:this._layer,startAngle:this._startAngle,originLatLngs:e},i,n)},_fireRotation:function(t,e,i){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:this._rotationLayer,r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:"Rotation",a=arguments.length>5&&arguments[5]!==undefined?arguments[5]:{};this.__fire(t,"pm:rotate",{layer:n,helpLayer:this._layer,startAngle:this._startAngle,angle:n.pm.getAngle(),angleDiff:e,oldLatLngs:i,newLatLngs:n.getLatLngs()},r,a)},_fireRotationEnd:function(t,e,i){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"Rotation",r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};this.__fire(t,"pm:rotateend",{layer:this._rotationLayer,helpLayer:this._layer,startAngle:e,angle:this._rotationLayer.pm.getAngle(),originLatLngs:i,newLatLngs:this._rotationLayer.getLatLngs()},n,r)},_fireActionClick:function(t,e,i){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"Toolbar",r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};this.__fire(this._map,"pm:actionclick",{text:t.text,action:t,btnName:e,button:i},n,r)},_fireButtonClick:function(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Toolbar",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(this._map,"pm:buttonclick",{btnName:t,button:e},i,n)},_fireLangChange:function(t,e,i,n){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:"Global",a=arguments.length>5&&arguments[5]!==undefined?arguments[5]:{};this.__fire(this.map,"pm:langchange",{oldLang:t,activeLang:e,fallback:i,translations:n},r,a)},_fireGlobalDragModeToggled:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Global",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this.map,"pm:globaldragmodetoggled",{enabled:t,map:this.map},e,i)},_fireGlobalEditModeToggled:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Global",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this.map,"pm:globaleditmodetoggled",{enabled:t,map:this.map},e,i)},_fireGlobalRemovalModeToggled:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Global",i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};this.__fire(this.map,"pm:globalremovalmodetoggled",{enabled:t,map:this.map},e,i)},_fireGlobalCutModeToggled:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Global",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._map,"pm:globalcutmodetoggled",{enabled:!!this._enabled,map:this._map},t,e)},_fireGlobalDrawModeToggled:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Global",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this._map,"pm:globaldrawmodetoggled",{enabled:this._enabled,shape:this._shape,map:this._map},t,e)},_fireGlobalRotateModeToggled:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Global",e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.__fire(this.map,"pm:globalrotatemodetoggled",{enabled:this.globalRotateModeEnabled(),map:this.map},t,e)},_fireRemoveLayerGroup:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:t,i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Edit",n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};this.__fire(t,"pm:remove",{layer:e,shape:undefined},i,n)},_fireKeyeventEvent:function(t,e,i){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"Global",r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};this.__fire(this.map,"pm:keyevent",{event:t,eventType:e,focusOn:i},n,r)},__fire:function(t,e,i,n){var a=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};i=r()(i,a,{source:n}),L.PM.Utils._fireEvent(t,e,i)}};const S=E;const O={_lastEvents:{keydown:undefined,keyup:undefined,current:undefined},_initKeyListener:function(t){this.map=t,L.DomEvent.on(document,"keydown keyup",this._onKeyListener,this),L.DomEvent.on(window,"blur",this._onBlur,this)},_onKeyListener:function(t){var e="document";this.map.getContainer().contains(t.target)&&(e="map");var i={event:t,eventType:t.type,focusOn:e};this._lastEvents[t.type]=i,this._lastEvents.current=i,this.map.pm._fireKeyeventEvent(t,t.type,e)},_onBlur:function(t){t.altKey=!1;var e={event:t,eventType:t.type,focusOn:"document"};this._lastEvents[t.type]=e,this._lastEvents.current=e},getLastKeyEvent:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"current";return this._lastEvents[t]},isShiftKeyPressed:function(){var t;return null===(t=this._lastEvents.current)||void 0===t?void 0:t.event.shiftKey},isAltKeyPressed:function(){var t;return null===(t=this._lastEvents.current)||void 0===t?void 0:t.event.altKey},isCtrlKeyPressed:function(){var t;return null===(t=this._lastEvents.current)||void 0===t?void 0:t.event.ctrlKey},isMetaKeyPressed:function(){var t;return null===(t=this._lastEvents.current)||void 0===t?void 0:t.event.metaKey},getPressedKey:function(){var t;return null===(t=this._lastEvents.current)||void 0===t?void 0:t.event.key}};var D=i(7361),B=i.n(D),R=i(8721),T=i.n(R);function I(t){var e=L.PM.activeLang;return T()(_,e)||(e="en"),B()(_[e],t)}function j(t){for(var e=0;e1e-12;){n=Math.cos(2*v+C),P=C,C=c/(s*x)+w*(r=Math.sin(C))*(n+w/4*((a=Math.cos(C))*(2*n*n-1)-w/6*n*(4*r*r-3)*(4*n*n-3)))}var E=y*r-m*a*g,S=Math.atan2(y*a+m*r*g,(1-l)*Math.sqrt(b*b+E*E)),O=l/16*k*(4+l*(4-3*k)),D=h+180*(Math.atan2(r*f,m*a-y*r*g)-(1-O)*l*b*(C+O*r*(n+O*a*(2*n*n-1))))/p,B=180*S/p;return L.latLng(D,B)}function N(t,e,i,n){for(var r,a,o=!(arguments.length>4&&arguments[4]!==undefined)||arguments[4],s=[],l=0;l180?f-360:f<-180?f+360:f,L.latLng([d*r,f])}(e,r,n)}function F(t,e){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"asc";if(!e||0===Object.keys(e).length)return function(t,e){return t-e};for(var n,r=Object.keys(e),a=r.length-1,o={};a>=0;)n=r[a],o[n.toLowerCase()]=e[n],a-=1;function s(t){return t instanceof L.Marker?"Marker":t instanceof L.Circle?"Circle":t instanceof L.CircleMarker?"CircleMarker":t instanceof L.Rectangle?"Rectangle":t instanceof L.Polygon?"Polygon":t instanceof L.Polyline?"Line":undefined}return function(e,n){var r,a;if("instanceofShape"===t){if(r=s(e.layer).toLowerCase(),a=s(n.layer).toLowerCase(),!r||!a)return 0}else{if(!e.hasOwnProperty(t)||!n.hasOwnProperty(t))return 0;r=e[t].toLowerCase(),a=n[t].toLowerCase()}var l=r in o?o[r]:Number.MAX_SAFE_INTEGER,h=a in o?o[a]:Number.MAX_SAFE_INTEGER,u=0;return lh&&(u=1),"desc"===i?-1*u:u}}function U(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:t.getLatLngs();return t instanceof L.Polygon?L.polygon(e).getLatLngs():L.polyline(e).getLatLngs()}function V(t,e){var i,n;if(null!==(i=e.options.crs)&&void 0!==i&&null!==(n=i.projection)&&void 0!==n&&n.MAX_LATITUDE){var r,a,o=null===(r=e.options.crs)||void 0===r||null===(a=r.projection)||void 0===a?void 0:a.MAX_LATITUDE;t.lat=Math.max(Math.min(o,t.lat),-o)}return t}function K(t){return t.options.renderer||t._map&&(t._map._getPaneRenderer(t.options.pane)||t._map.options.renderer||t._map._renderer)||t._renderer}const H=L.Class.extend({includes:[b,k,M,x,S],initialize:function(t){this.map=t,this.Draw=new L.PM.Draw(t),this.Toolbar=new L.PM.Toolbar(t),this.Keyboard=O,this.globalOptions={snappable:!0,layerGroup:undefined,snappingOrder:["Marker","CircleMarker","Circle","Line","Polygon","Rectangle"],panes:{vertexPane:"markerPane",layerPane:"overlayPane",markerPane:"markerPane"},draggable:!0},this.Keyboard._initKeyListener(t)},setLang:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"en",e=arguments.length>1?arguments[1]:undefined,i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"en",n=L.PM.activeLang;e&&(_[t]=r()(_[i],e)),L.PM.activeLang=t,this.map.pm.Toolbar.reinit(),this._fireLangChange(n,t,i,_[t])},addControls:function(t){this.Toolbar.addControls(t)},removeControls:function(){this.Toolbar.removeControls()},toggleControls:function(){this.Toolbar.toggleControls()},controlsVisible:function(){return this.Toolbar.isVisible},enableDraw:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Polygon",e=arguments.length>1?arguments[1]:undefined;"Poly"===t&&(t="Polygon"),this.Draw.enable(t,e)},disableDraw:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"Polygon";"Poly"===t&&(t="Polygon"),this.Draw.disable(t)},setPathOptions:function(t){var e=this,i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=i.ignoreShapes||[],r=i.merge||!1;this.map.pm.Draw.shapes.forEach((function(i){-1===n.indexOf(i)&&e.map.pm.Draw[i].setPathOptions(t,r)}))},getGlobalOptions:function(){return this.globalOptions},setGlobalOptions:function(t){var e=this,i=r()(this.globalOptions,t),n=!1;this.map.pm.Draw.CircleMarker.enabled()&&!!this.map.pm.Draw.CircleMarker.options.editable!=!!i.editable&&(this.map.pm.Draw.CircleMarker.disable(),n=!0),this.map.pm.Draw.shapes.forEach((function(t){e.map.pm.Draw[t].setOptions(i)})),n&&this.map.pm.Draw.CircleMarker.enable(),L.PM.Utils.findLayers(this.map).forEach((function(t){t.pm.setOptions(i)})),this.map.fire("pm:globaloptionschanged"),this.globalOptions=i,this.applyGlobalOptions()},applyGlobalOptions:function(){L.PM.Utils.findLayers(this.map).forEach((function(t){t.pm.enabled()&&t.pm.applyOptions()}))},globalDrawModeEnabled:function(){return!!this.Draw.getActiveShape()},globalCutModeEnabled:function(){return!!this.Draw.Cut.enabled()},enableGlobalCutMode:function(t){return this.Draw.Cut.enable(t)},toggleGlobalCutMode:function(t){return this.Draw.Cut.toggle(t)},disableGlobalCutMode:function(){return this.Draw.Cut.disable()},getGeomanLayers:function(){var t=arguments.length>0&&arguments[0]!==undefined&&arguments[0],e=L.PM.Utils.findLayers(this.map);if(!t)return e;var i=L.featureGroup();return i._pmTempLayer=!0,e.forEach((function(t){i.addLayer(t)})),i},getGeomanDrawLayers:function(){var t=arguments.length>0&&arguments[0]!==undefined&&arguments[0],e=L.PM.Utils.findLayers(this.map).filter((function(t){return!0===t._drawnByGeoman}));if(!t)return e;var i=L.featureGroup();return i._pmTempLayer=!0,e.forEach((function(t){i.addLayer(t)})),i},_getContainingLayer:function(){return this.globalOptions.layerGroup&&this.globalOptions.layerGroup instanceof L.LayerGroup?this.globalOptions.layerGroup:this.map},_isCRSSimple:function(){return this.map.options.crs===L.CRS.Simple},_touchEventCounter:0,_addTouchEvents:function(t){0===this._touchEventCounter&&(L.DomEvent.on(t,"touchmove",this._canvasTouchMove,this),L.DomEvent.on(t,"touchstart touchend touchcancel",this._canvasTouchClick,this)),this._touchEventCounter+=1},_removeTouchEvents:function(t){1===this._touchEventCounter&&(L.DomEvent.off(t,"touchmove",this._canvasTouchMove,this),L.DomEvent.off(t,"touchstart touchend touchcancel",this._canvasTouchClick,this)),this._touchEventCounter=this._touchEventCounter<=1?0:this._touchEventCounter-1},_canvasTouchMove:function(t){K(this.map)._onMouseMove(this._createMouseEvent("mousemove",t))},_canvasTouchClick:function(t){var e="";"touchstart"===t.type||"pointerdown"===t.type?e="mousedown":"touchend"===t.type||"pointerup"===t.type?e="mouseup":"touchcancel"!==t.type&&"pointercancel"!==t.type||(e="mouseup"),e&&K(this.map)._onClick(this._createMouseEvent(e,t))},_createMouseEvent:function(t,e){var i,n=e.touches[0]||e.changedTouches[0];try{i=new MouseEvent(t,{bubbles:e.bubbles,cancelable:e.cancelable,view:e.view,detail:n.detail,screenX:n.screenX,screenY:n.screenY,clientX:n.clientX,clientY:n.clientY,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey,button:e.button,relatedTarget:e.relatedTarget})}catch(r){(i=document.createEvent("MouseEvents")).initMouseEvent(t,e.bubbles,e.cancelable,e.view,n.detail,n.screenX,n.screenY,n.clientX,n.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}return i}});const q=L.Control.extend({includes:[S],options:{position:"topleft",disableByOtherButtons:!0},initialize:function(t){this._button=L.Util.extend({},this.options,t)},onAdd:function(t){return this._map=t,this._map.pm.Toolbar.options.oneBlock?this._container=this._map.pm.Toolbar._createContainer(this.options.position):"edit"===this._button.tool?this._container=this._map.pm.Toolbar.editContainer:"options"===this._button.tool?this._container=this._map.pm.Toolbar.optionsContainer:"custom"===this._button.tool?this._container=this._map.pm.Toolbar.customContainer:this._container=this._map.pm.Toolbar.drawContainer,this.buttonsDomNode=this._makeButton(this._button),this._container.appendChild(this.buttonsDomNode),this._container},onRemove:function(){return this.buttonsDomNode.remove(),this._container},getText:function(){return this._button.text},getIconUrl:function(){return this._button.iconUrl},destroy:function(){this._button={},this._update()},toggle:function(t){return this._button.toggleStatus="boolean"==typeof t?t:!this._button.toggleStatus,this._applyStyleClasses(),this._button.toggleStatus},toggled:function(){return this._button.toggleStatus},onCreate:function(){this.toggle(!1)},disable:function(){this.toggle(!1),this._button.disabled=!0,this._updateDisabled()},enable:function(){this._button.disabled=!1,this._updateDisabled()},_triggerClick:function(t){t&&t.preventDefault(),this._button.disabled||(this._button.onClick(t,{button:this,event:t}),this._clicked(t),this._button.afterClick(t,{button:this,event:t}))},_makeButton:function(t){var e=this,i=this.options.position.indexOf("right")>-1?"pos-right":"",n=L.DomUtil.create("div","button-container ".concat(i),this._container);t.title&&n.setAttribute("title",t.title);var r=L.DomUtil.create("a","leaflet-buttons-control-button",n);r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.href="#";var a=L.DomUtil.create("div","leaflet-pm-actions-container ".concat(i),n),o=t.actions,s={cancel:{text:I("actions.cancel"),onClick:function(){this._triggerClick()}},finishMode:{text:I("actions.finish"),onClick:function(){this._triggerClick()}},removeLastVertex:{text:I("actions.removeLastVertex"),onClick:function(){this._map.pm.Draw[t.jsClass]._removeLastVertex()}},finish:{text:I("actions.finish"),onClick:function(e){this._map.pm.Draw[t.jsClass]._finishShape(e)}}};o.forEach((function(n){var r,o="string"==typeof n?n:n.name;if(s[o])r=s[o];else{if(!n.text)return;r=n}var l=L.DomUtil.create("a","leaflet-pm-action ".concat(i," action-").concat(o),a);if(l.setAttribute("role","button"),l.setAttribute("tabindex","0"),l.href="#",l.innerHTML=r.text,L.DomEvent.disableClickPropagation(l),L.DomEvent.on(l,"click",L.DomEvent.stop),!t.disabled&&r.onClick){L.DomEvent.addListener(l,"click",(function(i){i.preventDefault();var n="",a=e._map.pm.Toolbar.buttons;for(var o in a)if(a[o]._button===t){n=o;break}e._fireActionClick(r,n,t)}),e),L.DomEvent.addListener(l,"click",r.onClick,e)}})),t.toggleStatus&&L.DomUtil.addClass(n,"active");var l=L.DomUtil.create("div","control-icon",r);return t.iconUrl&&l.setAttribute("src",t.iconUrl),t.className&&L.DomUtil.addClass(l,t.className),L.DomEvent.disableClickPropagation(r),L.DomEvent.on(r,"click",L.DomEvent.stop),t.disabled||(L.DomEvent.addListener(r,"click",this._onBtnClick,this),L.DomEvent.addListener(r,"click",this._triggerClick,this)),t.disabled&&(L.DomUtil.addClass(r,"pm-disabled"),r.setAttribute("aria-disabled","true")),n},_applyStyleClasses:function(){this._container&&(this._button.toggleStatus&&!1!==this._button.cssToggle?(L.DomUtil.addClass(this.buttonsDomNode,"active"),L.DomUtil.addClass(this._container,"activeChild")):(L.DomUtil.removeClass(this.buttonsDomNode,"active"),L.DomUtil.removeClass(this._container,"activeChild")))},_onBtnClick:function(){this._button.disableOtherButtons&&this._map.pm.Toolbar.triggerClickOnToggledButtons(this);var t="",e=this._map.pm.Toolbar.buttons;for(var i in e)if(e[i]._button===this._button){t=i;break}this._fireButtonClick(t,this._button)},_clicked:function(){this._button.doToggle&&this.toggle()},_updateDisabled:function(){if(this._container){var t="pm-disabled",e=this.buttonsDomNode.children[0];this._button.disabled?(L.DomUtil.addClass(e,t),e.setAttribute("aria-disabled","true"),L.DomEvent.off(e,"click",this._triggerClick,this),L.DomEvent.off(e,"click",this._onBtnClick,this)):(L.DomUtil.removeClass(e,t),e.setAttribute("aria-disabled","false"),L.DomEvent.on(e,"click",this._triggerClick,this),L.DomEvent.on(e,"click",this._onBtnClick,this))}}});function J(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function Y(t){for(var e=1;e0&&arguments[0]!==undefined?arguments[0]:this.options;"undefined"!=typeof t.editPolygon&&(t.editMode=t.editPolygon),"undefined"!=typeof t.deleteLayer&&(t.removalMode=t.deleteLayer),L.Util.setOptions(this,t),this.applyIconStyle(),this.isVisible=!0,this._showHideButtons()},applyIconStyle:function(){var t=this.getButtons(),e={geomanIcons:{drawMarker:"control-icon leaflet-pm-icon-marker",drawPolyline:"control-icon leaflet-pm-icon-polyline",drawRectangle:"control-icon leaflet-pm-icon-rectangle",drawPolygon:"control-icon leaflet-pm-icon-polygon",drawCircle:"control-icon leaflet-pm-icon-circle",drawCircleMarker:"control-icon leaflet-pm-icon-circle-marker",editMode:"control-icon leaflet-pm-icon-edit",dragMode:"control-icon leaflet-pm-icon-drag",cutPolygon:"control-icon leaflet-pm-icon-cut",removalMode:"control-icon leaflet-pm-icon-delete",drawText:"control-icon leaflet-pm-icon-text"}};for(var i in t){var n=t[i];L.Util.setOptions(n,{className:e.geomanIcons[i]})}},removeControls:function(){var t=this.getButtons();for(var e in t)t[e].remove();this.isVisible=!1},toggleControls:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options;this.isVisible?this.removeControls():this.addControls(t)},_addButton:function(t,e){return this.buttons[t]=e,this.options[t]=this.options[t]||!1,this.buttons[t]},triggerClickOnToggledButtons:function(t){for(var e in this.buttons){var i=this.buttons[e];i._button.disableByOtherButtons&&i!==t&&i.toggled()&&i._triggerClick()}},toggleButton:function(t,e){var i=!(arguments.length>2&&arguments[2]!==undefined)||arguments[2];return"editPolygon"===t&&(t="editMode"),"deleteLayer"===t&&(t="removalMode"),i&&this.triggerClickOnToggledButtons(this.buttons[t]),!!this.buttons[t]&&this.buttons[t].toggle(e)},_defineButtons:function(){var t=this,e={className:"control-icon leaflet-pm-icon-marker",title:I("buttonTitles.drawMarkerButton"),jsClass:"Marker",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["cancel"]},i={title:I("buttonTitles.drawPolyButton"),className:"control-icon leaflet-pm-icon-polygon",jsClass:"Polygon",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["finish","removeLastVertex","cancel"]},n={className:"control-icon leaflet-pm-icon-polyline",title:I("buttonTitles.drawLineButton"),jsClass:"Line",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["finish","removeLastVertex","cancel"]},r={title:I("buttonTitles.drawCircleButton"),className:"control-icon leaflet-pm-icon-circle",jsClass:"Circle",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["cancel"]},a={title:I("buttonTitles.drawCircleMarkerButton"),className:"control-icon leaflet-pm-icon-circle-marker",jsClass:"CircleMarker",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["cancel"]},o={title:I("buttonTitles.drawRectButton"),className:"control-icon leaflet-pm-icon-rectangle",jsClass:"Rectangle",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["cancel"]},s={title:I("buttonTitles.editButton"),className:"control-icon leaflet-pm-icon-edit",onClick:function(){},afterClick:function(){t.map.pm.toggleGlobalEditMode()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,tool:"edit",actions:["finishMode"]},l={title:I("buttonTitles.dragButton"),className:"control-icon leaflet-pm-icon-drag",onClick:function(){},afterClick:function(){t.map.pm.toggleGlobalDragMode()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,tool:"edit",actions:["finishMode"]},h={title:I("buttonTitles.cutButton"),className:"control-icon leaflet-pm-icon-cut",jsClass:"Cut",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle({snappable:!0,cursorMarker:!0,allowSelfIntersection:!1})},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,tool:"edit",actions:["finish","removeLastVertex","cancel"]},u={title:I("buttonTitles.deleteButton"),className:"control-icon leaflet-pm-icon-delete",onClick:function(){},afterClick:function(){t.map.pm.toggleGlobalRemovalMode()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,tool:"edit",actions:["finishMode"]},c={title:I("buttonTitles.rotateButton"),className:"control-icon leaflet-pm-icon-rotate",onClick:function(){},afterClick:function(){t.map.pm.toggleGlobalRotateMode()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,tool:"edit",actions:["finishMode"]},p={className:"control-icon leaflet-pm-icon-text",title:I("buttonTitles.drawTextButton"),jsClass:"Text",onClick:function(){},afterClick:function(e,i){t.map.pm.Draw[i.button._button.jsClass].toggle()},doToggle:!0,toggleStatus:!1,disableOtherButtons:!0,position:this.options.position,actions:["cancel"]};this._addButton("drawMarker",new L.Control.PMButton(e)),this._addButton("drawPolyline",new L.Control.PMButton(n)),this._addButton("drawRectangle",new L.Control.PMButton(o)),this._addButton("drawPolygon",new L.Control.PMButton(i)),this._addButton("drawCircle",new L.Control.PMButton(r)),this._addButton("drawCircleMarker",new L.Control.PMButton(a)),this._addButton("drawText",new L.Control.PMButton(p)),this._addButton("editMode",new L.Control.PMButton(s)),this._addButton("dragMode",new L.Control.PMButton(l)),this._addButton("cutPolygon",new L.Control.PMButton(h)),this._addButton("removalMode",new L.Control.PMButton(u)),this._addButton("rotateMode",new L.Control.PMButton(c))},_showHideButtons:function(){if(this.isVisible){this.removeControls(),this.isVisible=!0;var t=this.getButtons(),e=[];for(var i in!1===this.options.drawControls&&(e=e.concat(Object.keys(t).filter((function(e){return!t[e]._button.tool})))),!1===this.options.editControls&&(e=e.concat(Object.keys(t).filter((function(e){return"edit"===t[e]._button.tool})))),!1===this.options.optionsControls&&(e=e.concat(Object.keys(t).filter((function(e){return"options"===t[e]._button.tool})))),!1===this.options.customControls&&(e=e.concat(Object.keys(t).filter((function(e){return"custom"===t[e]._button.tool})))),t)if(this.options[i]&&-1===e.indexOf(i)){var n=t[i]._button.tool;n||(n="draw"),t[i].setPosition(this._getBtnPosition(n)),t[i].addTo(this.map)}}},_getBtnPosition:function(t){return this.options.positions&&this.options.positions[t]?this.options.positions[t]:this.options.position},setBlockPosition:function(t,e){this.options.positions[t]=e,this._showHideButtons(),this.changeControlOrder()},getBlockPositions:function(){return this.options.positions},copyDrawControl:function(t,e){if(!e)throw new TypeError("Button has no name");"object"!==Z(e)&&(e={name:e});var i=this._btnNameMapping(t);if(!e.name)throw new TypeError("Button has no name");if(this.buttons[e.name])throw new TypeError("Button with this name already exists");var n=this.map.pm.Draw.createNewDrawInstance(e.name,i);return e=Y(Y({},this.buttons[i]._button),e),{drawInstance:n,control:this.createCustomControl(e)}},createCustomControl:function(t){var e,i;if(!t.name)throw new TypeError("Button has no name");if(this.buttons[t.name])throw new TypeError("Button with this name already exists");t.onClick||(t.onClick=function(){}),t.afterClick||(t.afterClick=function(){}),!1!==t.toggle&&(t.toggle=!0),t.block&&(t.block=t.block.toLowerCase()),t.block&&"draw"!==t.block||(t.block=""),t.className?-1===t.className.indexOf("control-icon")&&(t.className="control-icon ".concat(t.className)):t.className="control-icon";var n={tool:t.block,className:t.className,title:t.title||"",jsClass:t.name,onClick:t.onClick,afterClick:t.afterClick,doToggle:t.toggle,toggleStatus:!1,disableOtherButtons:null===(e=t.disableOtherButtons)||void 0===e||e,disableByOtherButtons:null===(i=t.disableByOtherButtons)||void 0===i||i,cssToggle:t.toggle,position:this.options.position,actions:t.actions||[],disabled:!!t.disabled};!1!==this.options[t.name]&&(this.options[t.name]=!0);var r=this._addButton(t.name,new L.Control.PMButton(n));return this.changeControlOrder(),r},changeControlOrder:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[],e=this._shapeMapping(),i=[];t.forEach((function(t){e[t]?i.push(e[t]):i.push(t)}));var n=this.getButtons(),r={};i.forEach((function(t){n[t]&&(r[t]=n[t])}));var a=Object.keys(n).filter((function(t){return!n[t]._button.tool}));a.forEach((function(t){-1===i.indexOf(t)&&(r[t]=n[t])}));var o=Object.keys(n).filter((function(t){return"edit"===n[t]._button.tool}));o.forEach((function(t){-1===i.indexOf(t)&&(r[t]=n[t])}));var s=Object.keys(n).filter((function(t){return"options"===n[t]._button.tool}));s.forEach((function(t){-1===i.indexOf(t)&&(r[t]=n[t])}));var l=Object.keys(n).filter((function(t){return"custom"===n[t]._button.tool}));l.forEach((function(t){-1===i.indexOf(t)&&(r[t]=n[t])})),Object.keys(n).forEach((function(t){-1===i.indexOf(t)&&(r[t]=n[t])})),this.map.pm.Toolbar.buttons=r,this._showHideButtons()},getControlOrder:function(){var t=this.getButtons(),e=[];for(var i in t)e.push(i);return e},changeActionsOfControl:function(t,e){var i=this._btnNameMapping(t);if(!i)throw new TypeError("No name passed");if(!e)throw new TypeError("No actions passed");if(!this.buttons[i])throw new TypeError("Button with this name not exists");this.buttons[i]._button.actions=e,this.changeControlOrder()},setButtonDisabled:function(t,e){var i=this._btnNameMapping(t);e?this.buttons[i].disable():this.buttons[i].enable()},_shapeMapping:function(){return{Marker:"drawMarker",Circle:"drawCircle",Polygon:"drawPolygon",Rectangle:"drawRectangle",Polyline:"drawPolyline",Line:"drawPolyline",CircleMarker:"drawCircleMarker",Edit:"editMode",Drag:"dragMode",Cut:"cutPolygon",Removal:"removalMode",Rotate:"rotateMode",Text:"drawText"}},_btnNameMapping:function(t){var e=this._shapeMapping();return e[t]?e[t]:t}});function W(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function Q(t){for(var e=1;e2&&arguments[2]!==undefined?arguments[2]:1,r=[],a={};e.forEach((function(e,o){if(!e._parentCopy||e._parentCopy!==i._layer){var s=i._calcLayerDistances(t,e);if(s.distance=Math.floor(s.distance),i.debugIndicatorLines){if(!i.debugIndicatorLines[o]){var l=L.polyline([],{color:"red",pmIgnore:!0});l._pmTempLayer=!0,i.debugIndicatorLines[o]=l}i.debugIndicatorLines[o].setLatLngs([t,s.latlng])}1===n&&(a.distance===undefined||s.distance<=a.distance)?(s.distance3&&arguments[3]!==undefined&&arguments[3],l=function u(e){e.forEach((function(l,h){if(Array.isArray(l))u(l);else if(o.options.snapSegment){var c,p=l;c=s?h+1===e.length?0:h+1:h+1===e.length?undefined:h+1;var d=e[c];if(d){var f=o._getDistanceToSegment(i,t,p,d);(r===undefined||f1&&arguments[1]!==undefined?arguments[1]:1;t=t.sort((function(t,e){return t._leaflet_id-e._leaflet_id}));var i=["Marker","CircleMarker","Circle","Line","Polygon","Rectangle"],n=this._map.pm.globalOptions.snappingOrder||[],r=0,a={};return n.concat(i).forEach((function(t){a[t]||(r+=1,a[t]=r)})),t.sort(F("instanceofShape",a)),1===e?t[0]||{}:t.slice(0,e)},_checkPrioritiySnapping:function(t){var e=this._map,i=t.segment[0],n=t.segment[1],r=t.latlng,a=this._getDistance(e,i,r),o=this._getDistance(e,n,r),s=a1&&arguments[1]!==undefined&&arguments[1];this.options.pathOptions=e?r()(this.options.pathOptions,t):t},getShapes:function(){return this.shapes},getShape:function(){return this._shape},enable:function(t,e){if(!t)throw new Error("Error: Please pass a shape as a parameter. Possible shapes are: ".concat(this.getShapes().join(",")));this.disable(),this[t].enable(e)},disable:function(){var t=this;this.shapes.forEach((function(e){t[e].disable()}))},addControls:function(){var t=this;this.shapes.forEach((function(e){t[e].addButton()}))},getActiveShape:function(){var t,e=this;return this.shapes.forEach((function(i){e[i]._enabled&&(t=i)})),t},_setGlobalDrawMode:function(){"Cut"===this._shape?this._fireGlobalCutModeToggled():this._fireGlobalDrawModeToggled();var t=L.PM.Utils.findLayers(this._map);this._enabled?t.forEach((function(t){L.PM.Utils.disablePopup(t)})):t.forEach((function(t){L.PM.Utils.enablePopup(t)}))},createNewDrawInstance:function(t,e){var i=this._getShapeFromBtnName(e);if(this[t])throw new TypeError("Draw Type already exists");if(!L.PM.Draw[i])throw new TypeError("There is no class L.PM.Draw.".concat(i));return this[t]=new L.PM.Draw[i](this._map),this[t].toolbarButtonName=t,this[t]._shape=t,this.shapes.push(t),this[e]&&this[t].setOptions(this[e].options),this[t].setOptions(this[t].options),this[t]},_getShapeFromBtnName:function(t){var e={drawMarker:"Marker",drawCircle:"Circle",drawPolygon:"Polygon",drawPolyline:"Line",drawRectangle:"Rectangle",drawCircleMarker:"CircleMarker",editMode:"Edit",dragMode:"Drag",cutPolygon:"Cut",removalMode:"Removal",rotateMode:"Rotate",drawText:"Text"};return e[t]?e[t]:this[t]?this[t]._shape:t},_finishLayer:function(t){t.pm&&(t.pm.setOptions(this.options),t.pm._shape=this._shape,t.pm._map=this._map),this._addDrawnLayerProp(t)},_addDrawnLayerProp:function(t){t._drawnByGeoman=!0},_setPane:function(t,e){"layerPane"===e?t.options.pane=this._map.pm.globalOptions.panes&&this._map.pm.globalOptions.panes.layerPane||"overlayPane":"vertexPane"===e?t.options.pane=this._map.pm.globalOptions.panes&&this._map.pm.globalOptions.panes.vertexPane||"markerPane":"markerPane"===e&&(t.options.pane=this._map.pm.globalOptions.panes&&this._map.pm.globalOptions.panes.markerPane||"markerPane")},_isFirstLayer:function(){return 0===(this._map||this._layer._map).pm.getGeomanLayers().length}});nt.Marker=nt.extend({initialize:function(t){this._map=t,this._shape="Marker",this.toolbarButtonName="drawMarker"},enable:function(t){var e=this;L.Util.setOptions(this,t),this._enabled=!0,this._map.on("click",this._createMarker,this),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!0),this._hintMarker=L.marker(this._map.getCenter(),this.options.markerStyle),this._setPane(this._hintMarker,"markerPane"),this._hintMarker._pmTempLayer=!0,this._hintMarker.addTo(this._map),this.options.tooltips&&this._hintMarker.bindTooltip(I("tooltips.placeMarker"),{permanent:!0,offset:L.point(0,10),direction:"bottom",opacity:.8}).openTooltip(),this._layer=this._hintMarker,this._map.on("mousemove",this._syncHintMarker,this),this.options.markerEditable&&this._map.eachLayer((function(t){e.isRelevantMarker(t)&&t.pm.enable()})),this._fireDrawStart(),this._setGlobalDrawMode()},disable:function(){var t=this;this._enabled&&(this._enabled=!1,this._map.off("click",this._createMarker,this),this._hintMarker.remove(),this._map.off("mousemove",this._syncHintMarker,this),this._map.eachLayer((function(e){t.isRelevantMarker(e)&&e.pm.disable()})),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!1),this.options.snappable&&this._cleanupSnapping(),this._fireDrawEnd(),this._setGlobalDrawMode())},enabled:function(){return this._enabled},toggle:function(t){this.enabled()?this.disable():this.enable(t)},isRelevantMarker:function(t){return t instanceof L.Marker&&t.pm&&!t._pmTempLayer&&!t.pm._initTextMarker},_syncHintMarker:function(t){if(this._hintMarker.setLatLng(t.latlng),this.options.snappable){var e=t;e.target=this._hintMarker,this._handleSnapping(e)}this._fireChange(this._hintMarker.getLatLng(),"Draw")},_createMarker:function(t){if(t.latlng&&(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer())){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng(),i=new L.Marker(e,this.options.markerStyle);this._setPane(i,"markerPane"),this._finishLayer(i),i.pm||(i.options.draggable=!1),i.addTo(this._map.pm._getContainingLayer()),i.pm&&this.options.markerEditable?i.pm.enable():i.dragging&&i.dragging.disable(),this._fireCreate(i),this._cleanupSnapping(),this.options.continueDrawing||this.disable()}},setStyle:function(){var t,e;null!==(t=this.options.markerStyle)&&void 0!==t&&t.icon&&(null===(e=this._hintMarker)||void 0===e||e.setIcon(this.options.markerStyle.icon))}});var rt=6371008.8,at={centimeters:637100880,centimetres:637100880,degrees:57.22891354143274,feet:20902260.511392,inches:39.37*rt,kilometers:6371.0088,kilometres:6371.0088,meters:rt,metres:rt,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:rt/1852,radians:1,yards:6967335.223679999};function ot(t,e,i){void 0===i&&(i={});var n={type:"Feature"};return(0===i.id||i.id)&&(n.id=i.id),i.bbox&&(n.bbox=i.bbox),n.properties=e||{},n.geometry=t,n}function st(t,e,i){if(void 0===i&&(i={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!ft(t[0])||!ft(t[1]))throw new Error("coordinates must contain numbers");return ot({type:"Point",coordinates:t},e,i)}function lt(t,e,i){if(void 0===i&&(i={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");return ot({type:"LineString",coordinates:t},e,i)}function ht(t,e){void 0===e&&(e={});var i={type:"FeatureCollection"};return e.id&&(i.id=e.id),e.bbox&&(i.bbox=e.bbox),i.features=t,i}function ut(t,e){void 0===e&&(e="kilometers");var i=at[e];if(!i)throw new Error(e+" units is invalid");return t*i}function ct(t,e){void 0===e&&(e="kilometers");var i=at[e];if(!i)throw new Error(e+" units is invalid");return t/i}function pt(t){return 180*(t%(2*Math.PI))/Math.PI}function dt(t){return t%360*Math.PI/180}function ft(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}function gt(t){var e,i,n={type:"FeatureCollection",features:[]};if("LineString"===(i="Feature"===t.type?t.geometry:t).type)e=[i.coordinates];else if("MultiLineString"===i.type)e=i.coordinates;else if("MultiPolygon"===i.type)e=[].concat.apply([],i.coordinates);else{if("Polygon"!==i.type)throw new Error("Input must be a LineString, MultiLineString, Polygon, or MultiPolygon Feature or Geometry");e=i.coordinates}return e.forEach((function(t){e.forEach((function(e){for(var i=0;i=0&&h<=1&&(p.onLine1=!0),u>=0&&u<=1&&(p.onLine2=!0),!(!p.onLine1||!p.onLine2)&&[p.x,p.y])}function mt(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function yt(t){for(var e=1;e=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Pt(t){if(Array.isArray(t))return t;if("Feature"===t.type){if(null!==t.geometry)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function Et(t){return"Feature"===t.type?t.geometry:t}function St(t,e){return"FeatureCollection"===t.type?"FeatureCollection":"GeometryCollection"===t.type?"GeometryCollection":"Feature"===t.type&&null!==t.geometry?t.geometry.type:t.type}function Ot(t,e,i){if(null!==t)for(var n,r,a,o,s,l,h,u,c=0,p=0,d=t.type,f="FeatureCollection"===d,g="Feature"===d,_=f?t.features.length:1,m=0;m<_;m++){s=(u=!!(h=f?t.features[m].geometry:g?t.geometry:t)&&"GeometryCollection"===h.type)?h.geometries.length:1;for(var y=0;y0){var e=t[t.length-1];this._hintline.setLatLngs([e,this._hintMarker.getLatLng()])}},_syncHintMarker:function(t){if(this._hintMarker.setLatLng(t.latlng),this.options.snappable){var e=t;e.target=this._hintMarker,this._handleSnapping(e)}this.options.allowSelfIntersection||this._handleSelfIntersection(!0,this._hintMarker.getLatLng());var i=this._layer._defaultShape().slice();i.push(this._hintMarker.getLatLng()),this._change(i)},hasSelfIntersection:function(){return gt(this._layer.toGeoJSON(15)).features.length>0},_handleSelfIntersection:function(t,e){var i=L.polyline(this._layer.getLatLngs());t&&(e||(e=this._hintMarker.getLatLng()),i.addLatLng(e));var n=gt(i.toGeoJSON(15));this._doesSelfIntersect=n.features.length>0,this._doesSelfIntersect?this._hintline.setStyle({color:"#f00000ff"}):this._hintline.isEmpty()||this._hintline.setStyle(this.options.hintlineStyle)},_createVertex:function(t){if(this.options.allowSelfIntersection||(this._handleSelfIntersection(!0,t.latlng),!this._doesSelfIntersect)){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng(),i=this._layer.getLatLngs(),n=i[i.length-1];if(e.equals(i[0])||i.length>0&&e.equals(n))this._finishShape();else{this._layer._latlngInfo=this._layer._latlngInfo||[],this._layer._latlngInfo.push({latlng:e,snapInfo:this._hintMarker._snapInfo}),this._layer.addLatLng(e);var r=this._createMarker(e);this._setTooltipText(),this._setHintLineAfterNewVertex(e),this._fireVertexAdded(r,undefined,e,"Draw"),this._change(this._layer.getLatLngs()),"snap"===this.options.finishOn&&this._hintMarker._snapped&&this._finishShape(t)}}},_setHintLineAfterNewVertex:function(t){this._hintline.setLatLngs([t,t])},_removeLastVertex:function(){var t=this._markers;if(t.length<=1)this.disable();else{var e=this._layer.getLatLngs(),i=t[t.length-1],n=L.PM.Utils.findDeepMarkerIndex(t,i).indexPath;t.pop(),this._layerGroup.removeLayer(i);var r=t[t.length-1],a=e.indexOf(r.getLatLng());e=e.slice(0,a+1),this._layer.setLatLngs(e),this._layer._latlngInfo.pop(),this._syncHintLine(),this._setTooltipText(),this._fireVertexRemoved(i,n,"Draw"),this._change(this._layer.getLatLngs())}},_finishShape:function(){if((this.options.allowSelfIntersection||(this._handleSelfIntersection(!1),!this._doesSelfIntersect))&&(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer())){var t=this._layer.getLatLngs();if(!(t.length<=1)){var e=L.polyline(t,this.options.pathOptions);this._setPane(e,"layerPane"),this._finishLayer(e),e.addTo(this._map.pm._getContainingLayer()),this._fireCreate(e),this.options.snappable&&this._cleanupSnapping(),this.disable(),this.options.continueDrawing&&this.enable()}}},_createMarker:function(t){var e=new L.Marker(t,{draggable:!1,icon:L.divIcon({className:"marker-icon"})});return this._setPane(e,"vertexPane"),e._pmTempLayer=!0,this._layerGroup.addLayer(e),this._markers.push(e),e.on("click",this._finishShape,this),e},_setTooltipText:function(){var t="";t=I(this._layer.getLatLngs().flat().length<=1?"tooltips.continueLine":"tooltips.finishLine"),this._hintMarker.setTooltipContent(t)},_change:function(t){this._fireChange(t,"Draw")},setStyle:function(){var t,e;null===(t=this._layer)||void 0===t||t.setStyle(this.options.templineStyle),null===(e=this._hintline)||void 0===e||e.setStyle(this.options.hintlineStyle)}}),nt.Polygon=nt.Line.extend({initialize:function(t){this._map=t,this._shape="Polygon",this.toolbarButtonName="drawPolygon"},enable:function(t){L.PM.Draw.Line.prototype.enable.call(this,t),this._layer.pm._shape="Polygon"},_createMarker:function(t){var e=new L.Marker(t,{draggable:!1,icon:L.divIcon({className:"marker-icon"})});return this._setPane(e,"vertexPane"),e._pmTempLayer=!0,this._layerGroup.addLayer(e),this._markers.push(e),1===this._layer.getLatLngs().flat().length?(e.on("click",this._finishShape,this),this._tempSnapLayerIndex=this._otherSnapLayers.push(e)-1,this.options.snappable&&this._cleanupSnapping()):e.on("click",(function(){return 1})),e},_setTooltipText:function(){var t="";t=I(this._layer.getLatLngs().flat().length<=2?"tooltips.continueLine":"tooltips.finishPoly"),this._hintMarker.setTooltipContent(t)},_finishShape:function(){if((this.options.allowSelfIntersection||(this._handleSelfIntersection(!0,this._layer.getLatLngs()[0]),!this._doesSelfIntersect))&&(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer())){var t=this._layer.getLatLngs();if(!(t.length<=2)){var e=L.polygon(t,this.options.pathOptions);this._setPane(e,"layerPane"),this._finishLayer(e),e.addTo(this._map.pm._getContainingLayer()),this._fireCreate(e),this._cleanupSnapping(),this._otherSnapLayers.splice(this._tempSnapLayerIndex,1),delete this._tempSnapLayerIndex,this.disable(),this.options.continueDrawing&&this.enable()}}}}),nt.Rectangle=nt.extend({initialize:function(t){this._map=t,this._shape="Rectangle",this.toolbarButtonName="drawRectangle"},enable:function(t){if(L.Util.setOptions(this,t),this._enabled=!0,this._layerGroup=new L.FeatureGroup,this._layerGroup._pmTempLayer=!0,this._layerGroup.addTo(this._map),this._layer=L.rectangle([[0,0],[0,0]],this.options.pathOptions),this._setPane(this._layer,"layerPane"),this._layer._pmTempLayer=!0,this._startMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"marker-icon rect-start-marker"}),draggable:!1,zIndexOffset:-100,opacity:this.options.cursorMarker?1:0}),this._setPane(this._startMarker,"vertexPane"),this._startMarker._pmTempLayer=!0,this._layerGroup.addLayer(this._startMarker),this._hintMarker=L.marker(this._map.getCenter(),{zIndexOffset:150,icon:L.divIcon({className:"marker-icon cursor-marker"})}),this._setPane(this._hintMarker,"vertexPane"),this._hintMarker._pmTempLayer=!0,this._layerGroup.addLayer(this._hintMarker),this.options.cursorMarker&&L.DomUtil.addClass(this._hintMarker._icon,"visible"),this.options.tooltips&&this._hintMarker.bindTooltip(I("tooltips.firstVertex"),{permanent:!0,offset:L.point(0,10),direction:"bottom",opacity:.8}).openTooltip(),this.options.cursorMarker){this._styleMarkers=[];for(var e=0;e<2;e+=1){var i=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"marker-icon rect-style-marker"}),draggable:!1,zIndexOffset:100});this._setPane(i,"vertexPane"),i._pmTempLayer=!0,this._layerGroup.addLayer(i),this._styleMarkers.push(i)}}this._map._container.style.cursor="crosshair",this._map.on("click",this._placeStartingMarkers,this),this._map.on("mousemove",this._syncHintMarker,this),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!0),this._otherSnapLayers=[],this._fireDrawStart(),this._setGlobalDrawMode()},disable:function(){this._enabled&&(this._enabled=!1,this._map._container.style.cursor="",this._map.off("click",this._finishShape,this),this._map.off("click",this._placeStartingMarkers,this),this._map.off("mousemove",this._syncHintMarker,this),this._map.removeLayer(this._layerGroup),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!1),this.options.snappable&&this._cleanupSnapping(),this._fireDrawEnd(),this._setGlobalDrawMode())},enabled:function(){return this._enabled},toggle:function(t){this.enabled()?this.disable():this.enable(t)},_placeStartingMarkers:function(t){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng();L.DomUtil.addClass(this._startMarker._icon,"visible"),this._startMarker.setLatLng(e),this.options.cursorMarker&&this._styleMarkers&&this._styleMarkers.forEach((function(t){L.DomUtil.addClass(t._icon,"visible"),t.setLatLng(e)})),this._map.off("click",this._placeStartingMarkers,this),this._map.on("click",this._finishShape,this),this._hintMarker.setTooltipContent(I("tooltips.finishRect")),this._setRectangleOrigin()},_setRectangleOrigin:function(){var t=this._startMarker.getLatLng();t&&(this._layerGroup.addLayer(this._layer),this._layer.setLatLngs([t,t]),this._hintMarker.on("move",this._syncRectangleSize,this))},_syncHintMarker:function(t){if(this._hintMarker.setLatLng(t.latlng),this.options.snappable){var e=t;e.target=this._hintMarker,this._handleSnapping(e)}var i=this._layerGroup&&this._layerGroup.hasLayer(this._layer)?this._layer.getLatLngs():[this._hintMarker.getLatLng()];this._fireChange(i,"Draw")},_syncRectangleSize:function(){var t=this,e=V(this._startMarker.getLatLng(),this._map),i=V(this._hintMarker.getLatLng(),this._map),n=L.PM.Utils._getRotatedRectangle(e,i,this.options.rectangleAngle||0,this._map);if(this._layer.setLatLngs(n),this.options.cursorMarker&&this._styleMarkers){var r=[];n.forEach((function(t){t.equals(e,1e-8)||t.equals(i,1e-8)||r.push(t)})),r.forEach((function(e,i){try{t._styleMarkers[i].setLatLng(e)}catch(n){}}))}},_findCorners:function(){var t=this._layer.getBounds();return[t.getNorthWest(),t.getNorthEast(),t.getSouthEast(),t.getSouthWest()]},_finishShape:function(t){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng(),i=this._startMarker.getLatLng();if(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer()){var n=L.rectangle([i,e],this.options.pathOptions);if(this.options.rectangleAngle){var r=L.PM.Utils._getRotatedRectangle(i,e,this.options.rectangleAngle||0,this._map);n.setLatLngs(r),n.pm&&n.pm._setAngle(this.options.rectangleAngle||0)}this._setPane(n,"layerPane"),this._finishLayer(n),n.addTo(this._map.pm._getContainingLayer()),this._fireCreate(n),this.disable(),this.options.continueDrawing&&this.enable()}},setStyle:function(){var t;null===(t=this._layer)||void 0===t||t.setStyle(this.options.pathOptions)}}),nt.Circle=nt.extend({initialize:function(t){this._map=t,this._shape="Circle",this.toolbarButtonName="drawCircle"},enable:function(t){L.Util.setOptions(this,t),this.options.radius=0,this._enabled=!0,this._layerGroup=new L.FeatureGroup,this._layerGroup._pmTempLayer=!0,this._layerGroup.addTo(this._map),this._layer=L.circle(this._map.getCenter(),bt(bt({},this.options.templineStyle),{},{radius:0})),this._setPane(this._layer,"layerPane"),this._layer._pmTempLayer=!0,this._centerMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"marker-icon"}),draggable:!1,zIndexOffset:100}),this._setPane(this._centerMarker,"vertexPane"),this._centerMarker._pmTempLayer=!0,this._hintMarker=L.marker(this._map.getCenter(),{zIndexOffset:110,icon:L.divIcon({className:"marker-icon cursor-marker"})}),this._setPane(this._hintMarker,"vertexPane"),this._hintMarker._pmTempLayer=!0,this._layerGroup.addLayer(this._hintMarker),this.options.cursorMarker&&L.DomUtil.addClass(this._hintMarker._icon,"visible"),this.options.tooltips&&this._hintMarker.bindTooltip(I("tooltips.startCircle"),{permanent:!0,offset:L.point(0,10),direction:"bottom",opacity:.8}).openTooltip(),this._hintline=L.polyline([],this.options.hintlineStyle),this._setPane(this._hintline,"layerPane"),this._hintline._pmTempLayer=!0,this._layerGroup.addLayer(this._hintline),this._map._container.style.cursor="crosshair",this._map.on("click",this._placeCenterMarker,this),this._map.on("mousemove",this._syncHintMarker,this),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!0),this._otherSnapLayers=[],this._fireDrawStart(),this._setGlobalDrawMode()},disable:function(){this._enabled&&(this._enabled=!1,this._map._container.style.cursor="",this._map.off("click",this._finishShape,this),this._map.off("click",this._placeCenterMarker,this),this._map.off("mousemove",this._syncHintMarker,this),this._map.removeLayer(this._layerGroup),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!1),this.options.snappable&&this._cleanupSnapping(),this._fireDrawEnd(),this._setGlobalDrawMode())},enabled:function(){return this._enabled},toggle:function(t){this.enabled()?this.disable():this.enable(t)},_syncHintLine:function(){var t=this._centerMarker.getLatLng(),e=this._getNewDestinationOfHintMarker();this._hintline.setLatLngs([t,e])},_syncCircleRadius:function(){var t,e=this._centerMarker.getLatLng(),i=this._hintMarker.getLatLng();t=this._map.options.crs===L.CRS.Simple?this._map.distance(e,i):e.distanceTo(i),this.options.minRadiusCircle&&tthis.options.maxRadiusCircle?this._layer.setRadius(this.options.maxRadiusCircle):this._layer.setRadius(t)},_syncHintMarker:function(t){if(this._hintMarker.setLatLng(t.latlng),this._hintMarker.setLatLng(this._getNewDestinationOfHintMarker()),this.options.snappable){var e=t;e.target=this._hintMarker,this._handleSnapping(e)}this._handleHintMarkerSnapping();var i=this._layerGroup&&this._layerGroup.hasLayer(this._centerMarker)?this._centerMarker.getLatLng():this._hintMarker.getLatLng();this._fireChange(i,"Draw")},_placeCenterMarker:function(t){this._layerGroup.addLayer(this._layer),this._layerGroup.addLayer(this._centerMarker),this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng();this._layerGroup.addLayer(this._layer),this._centerMarker.setLatLng(e),this._map.off("click",this._placeCenterMarker,this),this._map.on("click",this._finishShape,this),this._placeCircleCenter()},_placeCircleCenter:function(){var t=this._centerMarker.getLatLng();t&&(this._layer.setLatLng(t),this._hintMarker.on("move",this._syncHintLine,this),this._hintMarker.on("move",this._syncCircleRadius,this),this._hintMarker.setTooltipContent(I("tooltips.finishCircle")),this._fireCenterPlaced(),this._fireChange(this._layer.getLatLng(),"Draw"))},_finishShape:function(t){if(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer()){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e,i=this._centerMarker.getLatLng(),n=this._hintMarker.getLatLng();e=this._map.options.crs===L.CRS.Simple?this._map.distance(i,n):i.distanceTo(n),this.options.minRadiusCircle&&ethis.options.maxRadiusCircle&&(e=this.options.maxRadiusCircle);var r=bt(bt({},this.options.pathOptions),{},{radius:e}),a=L.circle(i,r);this._setPane(a,"layerPane"),this._finishLayer(a),a.addTo(this._map.pm._getContainingLayer()),a.pm&&a.pm._updateHiddenPolyCircle(),this._fireCreate(a),this.disable(),this.options.continueDrawing&&this.enable()}},_getNewDestinationOfHintMarker:function(){var t=this._hintMarker.getLatLng();if(!this._layerGroup.hasLayer(this._centerMarker))return t;var e=this._centerMarker.getLatLng(),i=e.distanceTo(t);return this.options.minRadiusCircle&&ithis.options.maxRadiusCircle&&(t=z(this._map,e,t,this.options.maxRadiusCircle)),t},_handleHintMarkerSnapping:function(){if(this._hintMarker._snapped){var t=this._centerMarker.getLatLng(),e=this._hintMarker.getLatLng(),i=t.distanceTo(e);this._layerGroup.hasLayer(this._centerMarker)&&(this.options.minRadiusCircle&&ithis.options.maxRadiusCircle)&&this._hintMarker.setLatLng(this._hintMarker._orgLatLng)}this._hintMarker.setLatLng(this._getNewDestinationOfHintMarker())},setStyle:function(){var t,e;null===(t=this._layer)||void 0===t||t.setStyle(this.options.templineStyle),null===(e=this._hintline)||void 0===e||e.setStyle(this.options.hintlineStyle)}}),nt.CircleMarker=nt.Marker.extend({initialize:function(t){this._map=t,this._shape="CircleMarker",this.toolbarButtonName="drawCircleMarker",this._layerIsDragging=!1},enable:function(t){var e=this;if(L.Util.setOptions(this,t),this._enabled=!0,this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!0),this.options.editable){var i={};L.extend(i,this.options.templineStyle),i.radius=0,this._layerGroup=new L.FeatureGroup,this._layerGroup._pmTempLayer=!0,this._layerGroup.addTo(this._map),this._layer=L.circleMarker(this._map.getCenter(),i),this._setPane(this._layer,"layerPane"),this._layer._pmTempLayer=!0,this._centerMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"marker-icon"}),draggable:!1,zIndexOffset:100}),this._setPane(this._centerMarker,"vertexPane"),this._centerMarker._pmTempLayer=!0,this._hintMarker=L.marker(this._map.getCenter(),{zIndexOffset:110,icon:L.divIcon({className:"marker-icon cursor-marker"})}),this._setPane(this._hintMarker,"vertexPane"),this._hintMarker._pmTempLayer=!0,this._layerGroup.addLayer(this._hintMarker),this.options.cursorMarker&&L.DomUtil.addClass(this._hintMarker._icon,"visible"),this.options.tooltips&&this._hintMarker.bindTooltip(I("tooltips.startCircle"),{permanent:!0,offset:L.point(0,10),direction:"bottom",opacity:.8}).openTooltip(),this._hintline=L.polyline([],this.options.hintlineStyle),this._setPane(this._hintline,"layerPane"),this._hintline._pmTempLayer=!0,this._layerGroup.addLayer(this._hintline),this._map.on("click",this._placeCenterMarker,this),this._map._container.style.cursor="crosshair"}else this._map.on("click",this._createMarker,this),this._hintMarker=L.circleMarker(this._map.getCenter(),this.options.templineStyle),this._setPane(this._hintMarker,"layerPane"),this._hintMarker._pmTempLayer=!0,this._hintMarker.addTo(this._map),this._layer=this._hintMarker,this.options.tooltips&&this._hintMarker.bindTooltip(I("tooltips.placeCircleMarker"),{permanent:!0,offset:L.point(0,10),direction:"bottom",opacity:.8}).openTooltip();this._map.on("mousemove",this._syncHintMarker,this),!this.options.editable&&this.options.markerEditable&&this._map.eachLayer((function(t){e.isRelevantMarker(t)&&t.pm.enable()})),this._layer.bringToBack(),this._fireDrawStart(),this._setGlobalDrawMode()},disable:function(){var t=this;this._enabled&&(this._enabled=!1,this.options.editable?(this._map._container.style.cursor="",this._map.off("click",this._finishShape,this),this._map.off("click",this._placeCenterMarker,this),this._map.removeLayer(this._layerGroup)):(this._map.off("click",this._createMarker,this),this._map.eachLayer((function(e){t.isRelevantMarker(e)&&e.pm.disable()})),this._hintMarker.remove()),this._map.off("mousemove",this._syncHintMarker,this),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!1),this.options.snappable&&this._cleanupSnapping(),this._fireDrawEnd(),this._setGlobalDrawMode())},_placeCenterMarker:function(t){this._layerGroup.addLayer(this._layer),this._layerGroup.addLayer(this._centerMarker),this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng();this._layerGroup.addLayer(this._layer),this._centerMarker.setLatLng(e),this._map.off("click",this._placeCenterMarker,this),this._map.on("click",this._finishShape,this),this._placeCircleCenter()},_placeCircleCenter:function(){var t=this._centerMarker.getLatLng();t&&(this._layer.setLatLng(t),this._hintMarker.on("move",this._syncHintLine,this),this._hintMarker.on("move",this._syncCircleRadius,this),this._hintMarker.setTooltipContent(I("tooltips.finishCircle")),this._fireCenterPlaced(),this._fireChange(this._layer.getLatLng(),"Draw"))},_syncHintLine:function(){var t=this._centerMarker.getLatLng(),e=this._getNewDestinationOfHintMarker();this._hintline.setLatLngs([t,e])},_syncCircleRadius:function(){var t=this._centerMarker.getLatLng(),e=this._hintMarker.getLatLng(),i=this._map.project(t).distanceTo(this._map.project(e));this.options.minRadiusCircleMarker&&ithis.options.maxRadiusCircleMarker?this._layer.setRadius(this.options.maxRadiusCircleMarker):this._layer.setRadius(i)},_syncHintMarker:function(t){if(this._hintMarker.setLatLng(t.latlng),this._hintMarker.setLatLng(this._getNewDestinationOfHintMarker()),this.options.snappable){var e=t;e.target=this._hintMarker,this._handleSnapping(e)}this._handleHintMarkerSnapping();var i=this._layerGroup&&this._layerGroup.hasLayer(this._centerMarker)?this._centerMarker.getLatLng():this._hintMarker.getLatLng();this._fireChange(i,"Draw")},isRelevantMarker:function(t){return t instanceof L.CircleMarker&&!(t instanceof L.Circle)&&t.pm&&!t._pmTempLayer},_createMarker:function(t){if((!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer())&&t.latlng&&!this._layerIsDragging){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._hintMarker.getLatLng(),i=L.circleMarker(e,this.options.pathOptions);this._setPane(i,"layerPane"),this._finishLayer(i),i.addTo(this._map.pm._getContainingLayer()),i.pm&&this.options.markerEditable&&i.pm.enable(),this._fireCreate(i),this._cleanupSnapping(),this.options.continueDrawing||this.disable()}},_finishShape:function(t){if(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer()){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var e=this._centerMarker.getLatLng(),i=this._hintMarker.getLatLng(),n=this._map.project(e).distanceTo(this._map.project(i));this.options.editable&&(this.options.minRadiusCircleMarker&&nthis.options.maxRadiusCircleMarker&&(n=this.options.maxRadiusCircleMarker));var r=xt(xt({},this.options.pathOptions),{},{radius:n}),a=L.circleMarker(e,r);this._setPane(a,"layerPane"),this._finishLayer(a),a.addTo(this._map.pm._getContainingLayer()),a.pm&&a.pm._updateHiddenPolyCircle(),this._fireCreate(a),this.disable(),this.options.continueDrawing&&this.enable()}},_getNewDestinationOfHintMarker:function(){var t=this._hintMarker.getLatLng();if(this.options.editable){if(!this._layerGroup.hasLayer(this._centerMarker))return t;var e=this._centerMarker.getLatLng(),i=this._map.project(e).distanceTo(this._map.project(t));this.options.minRadiusCircleMarker&&ithis.options.maxRadiusCircleMarker&&(t=z(this._map,e,t,this._pxRadiusToMeter(this.options.maxRadiusCircleMarker)))}return t},_handleHintMarkerSnapping:function(){if(this.options.editable){if(this._hintMarker._snapped){var t=this._centerMarker.getLatLng(),e=this._hintMarker.getLatLng(),i=this._map.project(t).distanceTo(this._map.project(e));this._layerGroup.hasLayer(this._centerMarker)&&(this.options.minRadiusCircleMarker&&ithis.options.maxRadiusCircleMarker)&&this._hintMarker.setLatLng(this._hintMarker._orgLatLng)}this._hintMarker.setLatLng(this._getNewDestinationOfHintMarker())}},_pxRadiusToMeter:function(t){var e=this._centerMarker.getLatLng(),i=this._map.project(e),n=L.point(i.x+t,i.y);return this._map.unproject(n).distanceTo(e)},setStyle:function(){var t,e,i={};L.extend(i,this.options.templineStyle),this.options.editable&&(i.radius=0),null===(t=this._layer)||void 0===t||t.setStyle(i),null===(e=this._hintline)||void 0===e||e.setStyle(this.options.hintlineStyle)}});const Tt=function(t){if(!t)throw new Error("geojson is required");var e=[];return Rt(t,(function(t){!function(t,e){var i=[],n=t.geometry;if(null!==n){switch(n.type){case"Polygon":i=Pt(n);break;case"LineString":i=[Pt(n)]}i.forEach((function(i){var n=function(t,e){var i=[];return t.reduce((function(t,n){var r,a,o,s,l,h,u=lt([t,n],e);return u.bbox=(a=n,o=(r=t)[0],s=r[1],l=a[0],h=a[1],[ol?o:l,s>h?s:h]),i.push(u),n})),i}(i,t.properties);n.forEach((function(t){t.id=e.length,e.push(t)}))}))}}(t,e)})),ht(e)};var It=i(1787);function jt(t,e){var i=Pt(t),n=Pt(e);if(2!==i.length)throw new Error(" line1 must only contain 2 coordinates");if(2!==n.length)throw new Error(" line2 must only contain 2 coordinates");var r=i[0][0],a=i[0][1],o=i[1][0],s=i[1][1],l=n[0][0],h=n[0][1],u=n[1][0],c=n[1][1],p=(c-h)*(o-r)-(u-l)*(s-a),d=(u-l)*(a-h)-(c-h)*(r-l),f=(o-r)*(a-h)-(s-a)*(r-l);if(0===p)return null;var g=d/p,_=f/p;return g>=0&&g<=1&&_>=0&&_<=1?st([r+g*(o-r),a+g*(s-a)]):null}const At=function(t,e){var i={},n=[];if("LineString"===t.type&&(t=ot(t)),"LineString"===e.type&&(e=ot(e)),"Feature"===t.type&&"Feature"===e.type&&null!==t.geometry&&null!==e.geometry&&"LineString"===t.geometry.type&&"LineString"===e.geometry.type&&2===t.geometry.coordinates.length&&2===e.geometry.coordinates.length){var r=jt(t,e);return r&&n.push(r),ht(n)}var a=It();return a.load(Tt(e)),Dt(Tt(t),(function(t){Dt(a.search(t),(function(e){var r=jt(t,e);if(r){var a=Pt(r).join(",");i[a]||(i[a]=!0,n.push(r))}}))})),ht(n)};const Gt=function(t,e,i){void 0===i&&(i={});var n=Ct(t),r=Ct(e),a=dt(r[1]-n[1]),o=dt(r[0]-n[0]),s=dt(n[1]),l=dt(r[1]),h=Math.pow(Math.sin(a/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(s)*Math.cos(l);return ut(2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h)),i.units)};const Nt=function(t){var e=t[0],i=t[1],n=t[2],r=t[3];if(Gt(t.slice(0,2),[n,i])>=Gt(t.slice(0,2),[e,r])){var a=(i+r)/2;return[e,a-(n-e)/2,n,a+(n-e)/2]}var o=(e+n)/2;return[o-(r-i)/2,i,o+(r-i)/2,r]};function zt(t){var e=[Infinity,Infinity,-Infinity,-Infinity];return Ot(t,(function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2] is required");if("number"!=typeof i)throw new Error(" must be a number");if("number"!=typeof n)throw new Error(" must be a number");!1!==r&&r!==undefined||(t=JSON.parse(JSON.stringify(t)));var a=Math.pow(10,i);return Ot(t,(function(t){!function(t,e,i){t.length>i&&t.splice(i,t.length);for(var n=0;n0&&((g=f.features[0]).properties.dist=Gt(e,g,i),g.properties.location=r+Gt(s,g,i)),s.properties.dist1&&i.push(lt(h)),ht(i)}function Yt(t,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var i,n=Infinity;return Dt(e,(function(e){var r=Ht(e,t).properties.dist;r=t[0]&&e[3]>=t[1]}(n,o))return!1;"Polygon"===a&&(s=[s]);for(var l=!1,h=0;ht[1]!=h>t[1]&&t[0]<(l-o)*(t[1]-s)/(h-s)+o&&(n=!n)}return n}function Qt(t,e,i,n,r){var a=i[0],o=i[1],s=t[0],l=t[1],h=e[0],u=e[1],c=h-s,p=u-l,d=(i[0]-s)*p-(i[1]-l)*c;if(null!==r){if(Math.abs(d)>r)return!1}else if(0!==d)return!1;return n?"start"===n?Math.abs(c)>=Math.abs(p)?c>0?s0?l=Math.abs(p)?c>0?s<=a&&a0?l<=o&&o=Math.abs(p)?c>0?s0?l=Math.abs(p)?c>0?s<=a&&a<=h:h<=a&&a<=s:p>0?l<=o&&o<=u:u<=o&&o<=l}const te=function(t,e,i){void 0===i&&(i={});for(var n=Ct(t),r=Pt(e),a=0;ae[0])&&(!(t[2]e[1])&&!(t[3]1?e.forEach((function(t){n.push(function(t){return se({type:"LineString",coordinates:t})}(t))})):n.push(t),n}function fe(t){var e=[];return t.eachLayer((function(t){e.push(he(t.toGeoJSON(15)))})),function(t){return se({type:"MultiLineString",coordinates:t})}(e)}function ge(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==i)return;var n,r,a=[],o=!0,s=!1;try{for(i=i.call(t);!(o=(n=i.next()).done)&&(a.push(n.value),!e||a.length!==e);o=!0);}catch(l){s=!0,r=l}finally{try{o||null==i["return"]||i["return"]()}finally{if(s)throw r}}return a}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return _e(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return _e(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _e(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);it.length)&&(e=t.length);for(var i=0,n=new Array(e);i0)||e.options.layersToCut.indexOf(t)>-1})).filter((function(t){return!e._layerGroup.hasLayer(t)})).filter((function(e){try{var i=!!At(t.toGeoJSON(15),e.toGeoJSON(15)).features.length>0;return i||e instanceof L.Polyline&&!(e instanceof L.Polygon)?i:(n=t.toGeoJSON(15),r=e.toGeoJSON(15),a=le(n),o=le(r),!(0===(s=oe().intersection(a.coordinates,o.coordinates)).length||!(1===s.length?ue(s[0]):ce(s))))}catch(l){return e instanceof L.Polygon&&console.error("You can't cut polygons with self-intersections"),!1}var n,r,a,o,s})).forEach((function(i){var r;if(i instanceof L.Polygon){var a=(r=L.polygon(i.getLatLngs())).getLatLngs();n.forEach((function(t){if(t&&t.snapInfo){var i=t.latlng,n=e._calcClosestLayer(i,[r]);if(n&&n.segment&&n.distance1?B()(a,h):a).splice(u,0,i)}}}}))}else r=i;var o=e._cutLayer(t,r),s=L.geoJSON(o,i.options);if(1===s.getLayers().length){var l=s.getLayers();s=ge(l,1)[0]}e._setPane(s,"layerPane");var h=s.addTo(e._map.pm._getContainingLayer());if(h.pm.enable(i.pm.options),h.pm.disable(),i._pmTempLayer=!0,t._pmTempLayer=!0,i.remove(),i.removeFrom(e._map.pm._getContainingLayer()),t.remove(),t.removeFrom(e._map.pm._getContainingLayer()),h.getLayers&&0===h.getLayers().length&&e._map.pm.removeLayer({target:h}),h instanceof L.LayerGroup?(h.eachLayer((function(t){e._addDrawnLayerProp(t)})),e._addDrawnLayerProp(h)):e._addDrawnLayerProp(h),e.options.layersToCut&&L.Util.isArray(e.options.layersToCut)&&e.options.layersToCut.length>0){var u=e.options.layersToCut.indexOf(i);u>-1&&e.options.layersToCut.splice(u,1)}e._editedLayers.push({layer:h,originalLayer:i})}))},_cutLayer:function(t,e){var i,n,r,a,o,s,l=L.geoJSON();if(e instanceof L.Polygon)n=e.toGeoJSON(15),r=t.toGeoJSON(15),a=le(n),o=le(r),i=0===(s=oe().difference(a.coordinates,o.coordinates)).length?null:1===s.length?ue(s[0]):ce(s);else{var h=de(e);h.forEach((function(e){var i=Zt(e,t.toGeoJSON(15));(i&&i.features.length>0?L.geoJSON(i):L.geoJSON(e)).getLayers().forEach((function(e){ee(t.toGeoJSON(15),e.toGeoJSON(15))||e.addTo(l)}))})),i=h.length>1?fe(l):l.toGeoJSON(15)}return i},_change:L.Util.falseFn}),nt.Text=nt.extend({initialize:function(t){this._map=t,this._shape="Text",this.toolbarButtonName="drawText"},enable:function(t){L.Util.setOptions(this,t),this._enabled=!0,this._map.on("click",this._createMarker,this),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!0),this._hintMarker=L.marker(this._map.getCenter(),{interactive:!1,zIndexOffset:100,icon:L.divIcon({className:"marker-icon cursor-marker"})}),this._setPane(this._hintMarker,"vertexPane"),this._hintMarker._pmTempLayer=!0,this._hintMarker.addTo(this._map),this.options.cursorMarker&&L.DomUtil.addClass(this._hintMarker._icon,"visible"),this.options.tooltips&&this._hintMarker.bindTooltip(I("tooltips.placeText"),{permanent:!0,offset:L.point(0,10),direction:"bottom",opacity:.8}).openTooltip(),this._layer=this._hintMarker,this._map.on("mousemove",this._syncHintMarker,this),this._fireDrawStart(),this._setGlobalDrawMode()},disable:function(){this._enabled&&(this._enabled=!1,this._map.off("click",this._createMarker,this),this._hintMarker.remove(),this._map.off("mousemove",this._syncHintMarker,this),this._map.pm.Toolbar.toggleButton(this.toolbarButtonName,!1),this.options.snappable&&this._cleanupSnapping(),this._fireDrawEnd(),this._setGlobalDrawMode())},enabled:function(){return this._enabled},toggle:function(t){this.enabled()?this.disable():this.enable(t)},_syncHintMarker:function(t){if(this._hintMarker.setLatLng(t.latlng),this.options.snappable){var e=t;e.target=this._hintMarker,this._handleSnapping(e)}},_createMarker:function(t){var e;if(t.latlng&&(!this.options.requireSnapToFinish||this._hintMarker._snapped||this._isFirstLayer())){this._hintMarker._snapped||this._hintMarker.setLatLng(t.latlng);var i=this._hintMarker.getLatLng();if(this.textArea=this._createTextArea(),null!==(e=this.options.textOptions)&&void 0!==e&&e.className){var n,r=this.options.textOptions.className.split(" ");(n=this.textArea.classList).add.apply(n,me(r))}var a=this._createTextIcon(this.textArea),o=new L.Marker(i,{textMarker:!0,_textMarkerOverPM:!0,icon:a});if(this._setPane(o,"markerPane"),this._finishLayer(o),o.pm||(o.options.draggable=!1),o.addTo(this._map.pm._getContainingLayer()),o.pm){var s,l,h,u,c;o.pm.textArea=this.textArea,L.setOptions(o.pm,{removeIfEmpty:null===(s=null===(l=this.options.textOptions)||void 0===l?void 0:l.removeIfEmpty)||void 0===s||s});var p=null===(h=null===(u=this.options.textOptions)||void 0===u?void 0:u.focusAfterDraw)||void 0===h||h;o.pm._createTextMarker(p),null!==(c=this.options.textOptions)&&void 0!==c&&c.text&&o.pm.setText(this.options.textOptions.text)}this._fireCreate(o),this._cleanupSnapping(),this.disable(),this.options.continueDrawing&&this.enable()}},_createTextArea:function(){var t=document.createElement("textarea");return t.autofocus=!0,t.readOnly=!0,t.classList.add("pm-textarea","pm-disabled"),t},_createTextIcon:function(t){return L.divIcon({className:"pm-text-marker",html:t})}});const ve={enableLayerDrag:function(){if(this.options.draggable&&this._layer._map){this.disable(),this._layerDragEnabled=!0,this._map||(this._map=this._layer._map),(this._layer instanceof L.Marker||this._layer instanceof L.ImageOverlay)&&L.DomEvent.on(this._getDOMElem(),"dragstart",this._stopDOMImageDrag),this._layer.dragging&&this._layer.dragging.disable(),this._tempDragCoord=null,K(this._layer)instanceof L.Canvas?(this._layer.on("mouseout",this.removeDraggingClass,this),this._layer.on("mouseover",this.addDraggingClass,this)):this.addDraggingClass(),this._originalMapDragState=this._layer._map.dragging._enabled,this._safeToCacheDragState=!0;var t=this._getDOMElem();t&&(K(this._layer)instanceof L.Canvas?(this._layer.on("touchstart mousedown",this._dragMixinOnMouseDown,this),this._map.pm._addTouchEvents(t)):L.DomEvent.on(t,"touchstart mousedown",this._simulateMouseDownEvent,this)),this._fireDragEnable()}},disableLayerDrag:function(){this._layerDragEnabled=!1,K(this._layer)instanceof L.Canvas?(this._layer.off("mouseout",this.removeDraggingClass,this),this._layer.off("mouseover",this.addDraggingClass,this)):this.removeDraggingClass(),this._originalMapDragState&&this._dragging&&this._map.dragging.enable(),this._safeToCacheDragState=!1,this._layer.dragging&&this._layer.dragging.disable();var t=this._getDOMElem();t&&(K(this._layer)instanceof L.Canvas?(this._layer.off("touchstart mousedown",this._dragMixinOnMouseDown,this),this._map.pm._removeTouchEvents(t)):L.DomEvent.off(t,"touchstart mousedown",this._simulateMouseDownEvent,this)),this._layerDragged&&this._fireUpdate(),this._layerDragged=!1,this._fireDragDisable()},dragging:function(){return this._dragging},layerDragEnabled:function(){return!!this._layerDragEnabled},_simulateMouseDownEvent:function(t){var e=t.touches?t.touches[0]:t,i={originalEvent:e,target:this._layer};return i.containerPoint=this._map.mouseEventToContainerPoint(e),i.latlng=this._map.containerPointToLatLng(i.containerPoint),this._dragMixinOnMouseDown(i),!1},_simulateMouseMoveEvent:function(t){var e=t.touches?t.touches[0]:t,i={originalEvent:e,target:this._layer};return i.containerPoint=this._map.mouseEventToContainerPoint(e),i.latlng=this._map.containerPointToLatLng(i.containerPoint),this._dragMixinOnMouseMove(i),!1},_simulateMouseUpEvent:function(t){var e={originalEvent:t.touches?t.touches[0]:t,target:this._layer};return-1===t.type.indexOf("touch")&&(e.containerPoint=this._map.mouseEventToContainerPoint(t),e.latlng=this._map.containerPointToLatLng(e.containerPoint)),this._dragMixinOnMouseUp(e),!1},_dragMixinOnMouseDown:function(t){if(!(t.originalEvent.button>0)){this._overwriteEventIfItComesFromMarker(t);var e=t._fromLayerSync,i=this._syncLayers("_dragMixinOnMouseDown",t);this._layer instanceof L.Marker&&(!this.options.snappable||e||i?this._disableSnapping():this._initSnappableMarkers()),this._layer instanceof L.CircleMarker&&!(this._layer instanceof L.Circle)&&(!this.options.snappable||e||i?this._layer.pm.options.editable?this._layer.pm._disableSnapping():this._layer.pm._disableSnappingDrag():this._layer.pm.options.editable||this._initSnappableMarkersDrag()),this._safeToCacheDragState&&(this._originalMapDragState=this._layer._map.dragging._enabled,this._safeToCacheDragState=!1),this._tempDragCoord=t.latlng,L.DomEvent.on(this._map.getContainer(),"touchend mouseup",this._simulateMouseUpEvent,this),L.DomEvent.on(this._map.getContainer(),"touchmove mousemove",this._simulateMouseMoveEvent,this)}},_dragMixinOnMouseMove:function(t){this._overwriteEventIfItComesFromMarker(t);var e=this._getDOMElem();this._syncLayers("_dragMixinOnMouseMove",t),this._dragging||(this._dragging=!0,L.DomUtil.addClass(e,"leaflet-pm-dragging"),this._layer instanceof L.Marker||this._layer.bringToFront(),this._originalMapDragState&&this._map.dragging.disable(),this._fireDragStart()),this._tempDragCoord||(this._tempDragCoord=t.latlng),this._onLayerDrag(t),this._layer instanceof L.CircleMarker&&this._layer.pm._updateHiddenPolyCircle()},_dragMixinOnMouseUp:function(t){var e=this,i=this._getDOMElem();return this._syncLayers("_dragMixinOnMouseUp",t),this._originalMapDragState&&this._map.dragging.enable(),this._safeToCacheDragState=!0,L.DomEvent.off(this._map.getContainer(),"touchmove mousemove",this._simulateMouseMoveEvent,this),L.DomEvent.off(this._map.getContainer(),"touchend mouseup",this._simulateMouseUpEvent,this),!!this._dragging&&(this._layer instanceof L.CircleMarker&&this._layer.pm._updateHiddenPolyCircle(),this._layerDragged=!0,window.setTimeout((function(){e._dragging=!1,i&&L.DomUtil.removeClass(i,"leaflet-pm-dragging"),e._fireDragEnd(),e._fireEdit(),e._layerEdited=!0}),10),!0)},_onLayerDrag:function(t){var e=t.latlng,i=e.lat-this._tempDragCoord.lat,n=e.lng-this._tempDragCoord.lng,r=function u(t){return t.map((function(t){if(Array.isArray(t))return u(t);var e={lat:t.lat+i,lng:t.lng+n};return(t.alt||0===t.alt)&&(e.alt=t.alt),e}))};if(this._layer instanceof L.Circle||this._layer instanceof L.CircleMarker&&this._layer.options.editable){var a=r([this._layer.getLatLng()]);this._layer.setLatLng(a[0]),this._fireChange(this._layer.getLatLng(),"Edit")}else if(this._layer instanceof L.CircleMarker||this._layer instanceof L.Marker){var o=this._layer.getLatLng();this._layer._snapped&&(o=this._layer._orgLatLng);var s=r([o]);this._layer.setLatLng(s[0]),this._fireChange(this._layer.getLatLng(),"Edit")}else if(this._layer instanceof L.ImageOverlay){var l=r([this._layer.getBounds().getNorthWest(),this._layer.getBounds().getSouthEast()]);this._layer.setBounds(l),this._fireChange(this._layer.getBounds(),"Edit")}else{var h=r(this._layer.getLatLngs());this._layer.setLatLngs(h),this._fireChange(this._layer.getLatLngs(),"Edit")}this._tempDragCoord=e,t.layer=this._layer,this._fireDrag(t)},addDraggingClass:function(){var t=this._getDOMElem();t&&L.DomUtil.addClass(t,"leaflet-pm-draggable")},removeDraggingClass:function(){var t=this._getDOMElem();t&&L.DomUtil.removeClass(t,"leaflet-pm-draggable")},_getDOMElem:function(){var t=null;return this._layer._path?t=this._layer._path:this._layer._renderer&&this._layer._renderer._container?t=this._layer._renderer._container:this._layer._image?t=this._layer._image:this._layer._icon&&(t=this._layer._icon),t},_overwriteEventIfItComesFromMarker:function(t){t.target.getLatLng&&(!t.target._radius||t.target._radius<=10)&&(t.containerPoint=this._map.mouseEventToContainerPoint(t.originalEvent),t.latlng=this._map.containerPointToLatLng(t.containerPoint))},_syncLayers:function(t,e){var i=this;if(this.enabled())return!1;if(!e._fromLayerSync&&this._layer===e.target&&this.options.syncLayersOnDrag){e._fromLayerSync=!0;var n=[];if(L.Util.isArray(this.options.syncLayersOnDrag))n=this.options.syncLayersOnDrag,this.options.syncLayersOnDrag.forEach((function(t){t instanceof L.LayerGroup&&(n=n.concat(t.pm.getLayers(!0)))}));else if(!0===this.options.syncLayersOnDrag&&this._parentLayerGroup)for(var r in this._parentLayerGroup){var a=this._parentLayerGroup[r];a.pm&&(n=a.pm.getLayers(!0))}return L.Util.isArray(n)&&n.length>0&&(n=n.filter((function(t){return!!t.pm})).filter((function(t){return!!t.pm.options.draggable}))).forEach((function(n){n!==i._layer&&n.pm[t]&&(n._snapped=!1,n.pm[t](e))})),n.length>0}return!1},_stopDOMImageDrag:function(t){return t.preventDefault(),!1}};function Le(t,e,i){var n=i.getMaxZoom();if(n===Infinity&&(n=i.getZoom()),L.Util.isArray(t)){var r=[];return t.forEach((function(t){r.push(Le(t,e,i))})),r}return t instanceof L.LatLng?function(t,e,i,n){return i.unproject(e.transform(i.project(t,n)),n)}(t,e,i,n):null}function be(t,e){e instanceof L.Layer&&(e=e.getLatLng());var i=t.getMaxZoom();return i===Infinity&&(i=t.getZoom()),t.project(e,i)}function ke(t,e){var i=t.getMaxZoom();return i===Infinity&&(i=t.getZoom()),t.unproject(e,i)}var Me={_onRotateStart:function(t){this._preventRenderingMarkers(!0),this._rotationOriginLatLng=this._getRotationCenter().clone(),this._rotationOriginPoint=be(this._map,this._rotationOriginLatLng),this._rotationStartPoint=be(this._map,t.target.getLatLng()),this._initialRotateLatLng=U(this._layer),this._startAngle=this.getAngle();var e=U(this._rotationLayer,this._rotationLayer.pm._rotateOrgLatLng);this._fireRotationStart(this._rotationLayer,e),this._fireRotationStart(this._map,e)},_onRotate:function(t){var e=be(this._map,t.target.getLatLng()),i=this._rotationStartPoint,n=this._rotationOriginPoint,r=Math.atan2(e.y-n.y,e.x-n.x)-Math.atan2(i.y-n.y,i.x-n.x);this._layer.setLatLngs(this._rotateLayer(r,this._initialRotateLatLng,this._rotationOriginLatLng,L.PM.Matrix.init(),this._map));var a=this;!function h(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[],i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:-1;if(i>-1&&e.push(i),L.Util.isArray(t[0]))t.forEach((function(t,i){return h(t,e.slice(),i)}));else{var n=B()(a._markers,e);t.forEach((function(t,e){n[e].setLatLng(t)}))}}(this._layer.getLatLngs());var o=U(this._rotationLayer);this._rotationLayer.setLatLngs(this._rotateLayer(r,this._rotationLayer.pm._rotateOrgLatLng,this._rotationOriginLatLng,L.PM.Matrix.init(),this._map));var s=180*r/Math.PI,l=(s=s<0?s+360:s)+this._startAngle;this._setAngle(l),this._rotationLayer.pm._setAngle(l),this._fireRotation(this._rotationLayer,s,o),this._fireRotation(this._map,s,o),this._rotationLayer.pm._fireChange(this._rotationLayer.getLatLngs(),"Rotation")},_onRotateEnd:function(){var t=this._startAngle;delete this._rotationOriginLatLng,delete this._rotationOriginPoint,delete this._rotationStartPoint,delete this._initialRotateLatLng,delete this._startAngle;var e=U(this._rotationLayer,this._rotationLayer.pm._rotateOrgLatLng);this._rotationLayer.pm._rotateOrgLatLng=U(this._rotationLayer),this._fireRotationEnd(this._rotationLayer,t,e),this._fireRotationEnd(this._map,t,e),this._rotationLayer.pm._fireEdit(this._rotationLayer,"Rotation"),this._preventRenderingMarkers(!1),this._layerRotated=!0},_rotateLayer:function(t,e,i,n,r){var a=be(r,i);return this._matrix=n.clone().rotate(t,a).flip(),Le(e,this._matrix,r)},_setAngle:function(t){t=t<0?t+360:t,this._angle=t%360},_getRotationCenter:function(){var t=L.polygon(this._layer.getLatLngs(),{stroke:!1,fill:!1,pmIgnore:!0}).addTo(this._layer._map),e=t.getCenter();return t.removeFrom(this._layer._map),e},enableRotate:function(){if(this.options.allowRotation){this.rotateEnabled()&&this.disableRotate();this._rotatePoly=L.polygon(this._layer.getLatLngs(),{fill:!1,stroke:!1,pmIgnore:!1,snapIgnore:!0}),this._rotatePoly._pmTempLayer=!0,this._rotatePoly.addTo(this._layer._map),this._rotatePoly.pm._setAngle(this.getAngle()),this._rotatePoly.pm.setOptions(this._layer._map.pm.getGlobalOptions()),this._rotatePoly.pm.setOptions({rotate:!0,snappable:!1,hideMiddleMarkers:!0}),this._rotatePoly.pm._rotationLayer=this._layer,this._rotatePoly.pm.enable(),this._rotateOrgLatLng=U(this._layer),this._rotateEnabled=!0,this._layer.on("remove",this.disableRotate,this),this._fireRotationEnable(this._layer),this._fireRotationEnable(this._layer._map)}else this.disableRotate()},disableRotate:function(){this.rotateEnabled()&&(this._rotatePoly.pm._layerRotated&&this._fireUpdate(),this._rotatePoly.pm._layerRotated=!1,this._rotatePoly.pm.disable(),this._rotatePoly.remove(),this._rotatePoly.pm.setOptions({rotate:!1}),this._rotatePoly=undefined,this._rotateOrgLatLng=undefined,this._layer.off("remove",this.disableRotate,this),this._rotateEnabled=!1,this._fireRotationDisable(this._layer),this._fireRotationDisable(this._layer._map))},rotateEnabled:function(){return this._rotateEnabled},rotateLayer:function(t){var e=this.getAngle(),i=this._layer.getLatLngs(),n=t*(Math.PI/180);this._layer.setLatLngs(this._rotateLayer(n,this._layer.getLatLngs(),this._getRotationCenter(),L.PM.Matrix.init(),this._layer._map)),this._rotateOrgLatLng=L.polygon(this._layer.getLatLngs()).getLatLngs(),this._setAngle(this.getAngle()+t),this.rotateEnabled()&&this._rotatePoly&&this._rotatePoly.pm.enabled()&&(this._rotatePoly.setLatLngs(this._rotateLayer(n,this._rotatePoly.getLatLngs(),this._getRotationCenter(),L.PM.Matrix.init(),this._rotatePoly._map)),this._rotatePoly.pm._initMarkers());var r=this.getAngle()-e;r=r<0?r+360:r,this._startAngle=e,this._fireRotation(this._layer,r,i,this._layer),this._fireRotation(this._map||this._layer._map,r,i,this._layer),delete this._startAngle,this._fireChange(this._layer.getLatLngs(),"Rotation")},rotateLayerToAngle:function(t){var e=t-this.getAngle();this.rotateLayer(e)},getAngle:function(){return this._angle||0},setInitAngle:function(t){this._setAngle(t)}};const xe=Me;const we=L.Class.extend({includes:[ve,it,xe,S],options:{snappable:!0,snapDistance:20,allowSelfIntersection:!0,allowSelfIntersectionEdit:!1,preventMarkerRemoval:!1,removeLayerBelowMinVertexCount:!0,limitMarkersToCount:-1,hideMiddleMarkers:!1,snapSegment:!0,syncLayersOnDrag:!1,draggable:!0,allowEditing:!0,allowRemoval:!0,allowCutting:!0,allowRotation:!0,addVertexOn:"click",removeVertexOn:"contextmenu",removeVertexValidation:undefined,addVertexValidation:undefined,moveVertexValidation:undefined},setOptions:function(t){L.Util.setOptions(this,t)},getOptions:function(){return this.options},applyOptions:function(){},isPolygon:function(){return this._layer instanceof L.Polygon},getShape:function(){return this._shape},_setPane:function(t,e){"layerPane"===e?t.options.pane=this._map.pm.globalOptions.panes&&this._map.pm.globalOptions.panes.layerPane||"overlayPane":"vertexPane"===e?t.options.pane=this._map.pm.globalOptions.panes&&this._map.pm.globalOptions.panes.vertexPane||"markerPane":"markerPane"===e&&(t.options.pane=this._map.pm.globalOptions.panes&&this._map.pm.globalOptions.panes.markerPane||"markerPane")},remove:function(){(this._map||this._layer._map).pm.removeLayer({target:this._layer})},_vertexValidation:function(t,e){var i=e.target,n={layer:this._layer,marker:i,event:e},r="";return"move"===t?r="moveVertexValidation":"add"===t?r="addVertexValidation":"remove"===t&&(r="removeVertexValidation"),this.options[r]&&"function"==typeof this.options[r]&&!this.options[r](n)?("move"===t&&(i._cancelDragEventChain=i.getLatLng()),!1):(i._cancelDragEventChain=null,!0)},_vertexValidationDrag:function(t){return!t._cancelDragEventChain||(t._latlng=t._cancelDragEventChain,t.update(),!1)},_vertexValidationDragEnd:function(t){return!t._cancelDragEventChain||(t._cancelDragEventChain=null,!1)}});function Ce(t){return function(t){if(Array.isArray(t))return Pe(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return Pe(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return Pe(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pe(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0&&e._getMap()&&e._getMap().pm.globalEditModeEnabled()&&e.enabled()&&e.enable(e.getOptions())}}),100,this),this),this._layerGroup.on("layerremove",(function(t){e._removeLayerFromGroup(t.target)}),this);this._layerGroup.on("layerremove",L.Util.throttle((function(t){t.target._pmTempLayer||(e._layers=e.getLayers())}),100,this),this)},enable:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];0===e.length&&(this._layers=this.getLayers()),this._options=t,this._layers.forEach((function(i){i instanceof L.LayerGroup?-1===e.indexOf(i._leaflet_id)&&(e.push(i._leaflet_id),i.pm.enable(t,e)):i.pm.enable(t)}))},disable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];0===t.length&&(this._layers=this.getLayers()),this._layers.forEach((function(e){e instanceof L.LayerGroup?-1===t.indexOf(e._leaflet_id)&&(t.push(e._leaflet_id),e.pm.disable(t)):e.pm.disable()}))},enabled:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];0===t.length&&(this._layers=this.getLayers());var e=this._layers.find((function(e){return e instanceof L.LayerGroup?-1===t.indexOf(e._leaflet_id)&&(t.push(e._leaflet_id),e.pm.enabled(t)):e.pm.enabled()}));return!!e},toggleEdit:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];0===e.length&&(this._layers=this.getLayers()),this._options=t,this._layers.forEach((function(i){i instanceof L.LayerGroup?-1===e.indexOf(i._leaflet_id)&&(e.push(i._leaflet_id),i.pm.toggleEdit(t,e)):i.pm.toggleEdit(t)}))},_initLayer:function(t){var e=L.Util.stamp(this._layerGroup);t.pm._parentLayerGroup||(t.pm._parentLayerGroup={}),t.pm._parentLayerGroup[e]=this._layerGroup},_removeLayerFromGroup:function(t){if(t.pm&&t.pm._layerGroup){var e=L.Util.stamp(this._layerGroup);delete t.pm._layerGroup[e]}},dragging:function(){if(this._layers=this.getLayers(),this._layers){var t=this._layers.find((function(t){return t.pm.dragging()}));return!!t}return!1},getOptions:function(){return this.options},_getMap:function(){var t;return this._map||(null===(t=this._layers.find((function(t){return!!t._map})))||void 0===t?void 0:t._map)||null},getLayers:function(){var t=arguments.length>0&&arguments[0]!==undefined&&arguments[0],e=!(arguments.length>1&&arguments[1]!==undefined)||arguments[1],i=!(arguments.length>2&&arguments[2]!==undefined)||arguments[2],n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:[],r=[];return t?this._layerGroup.getLayers().forEach((function(t){r.push(t),t instanceof L.LayerGroup&&-1===n.indexOf(t._leaflet_id)&&(n.push(t._leaflet_id),r=r.concat(t.pm.getLayers(!0,!0,!0,n)))})):r=this._layerGroup.getLayers(),i&&(r=r.filter((function(t){return!(t instanceof L.LayerGroup)}))),e&&(r=(r=(r=r.filter((function(t){return!!t.pm}))).filter((function(t){return!t._pmTempLayer}))).filter((function(t){return!L.PM.optIn&&!t.options.pmIgnore||L.PM.optIn&&!1===t.options.pmIgnore}))),r},setOptions:function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];0===e.length&&(this._layers=this.getLayers()),this.options=t,this._layers.forEach((function(i){i.pm&&(i instanceof L.LayerGroup?-1===e.indexOf(i._leaflet_id)&&(e.push(i._leaflet_id),i.pm.setOptions(t,e)):i.pm.setOptions(t))}))}}),we.Marker=we.extend({_shape:"Marker",initialize:function(t){this._layer=t,this._enabled=!1,this._layer.on("dragend",this._onDragEnd,this)},enable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{draggable:!0};L.Util.setOptions(this,t),this.options.allowEditing&&this._layer._map?(this._map=this._layer._map,this.enabled()&&this.disable(),this.applyOptions(),this._layer.on("remove",this.disable,this),this._enabled=!0,this._fireEnable()):this.disable()},disable:function(){this.enabled()&&(this.disableLayerDrag(),this._layer.off("remove",this.disable,this),this._layer.off("contextmenu",this._removeMarker,this),this._layerEdited&&this._fireUpdate(),this._layerEdited=!1,this._fireDisable(),this._enabled=!1)},enabled:function(){return this._enabled},toggleEdit:function(t){this.enabled()?this.disable():this.enable(t)},applyOptions:function(){this.options.snappable?this._initSnappableMarkers():this._disableSnapping(),this.options.draggable?this.enableLayerDrag():this.disableLayerDrag(),this.options.preventMarkerRemoval||this._layer.on("contextmenu",this._removeMarker,this)},_removeMarker:function(t){var e=t.target;e.remove(),this._fireRemove(e),this._fireRemove(this._map,e)},_onDragEnd:function(){this._fireEdit(),this._layerEdited=!0},_initSnappableMarkers:function(){var t=this._layer;this.options.snapDistance=this.options.snapDistance||30,this.options.snapSegment=this.options.snapSegment===undefined||this.options.snapSegment,t.off("pm:drag",this._handleSnapping,this),t.on("pm:drag",this._handleSnapping,this),t.off("pm:dragend",this._cleanupSnapping,this),t.on("pm:dragend",this._cleanupSnapping,this),t.off("pm:dragstart",this._unsnap,this),t.on("pm:dragstart",this._unsnap,this)},_disableSnapping:function(){var t=this._layer;t.off("pm:drag",this._handleSnapping,this),t.off("pm:dragend",this._cleanupSnapping,this),t.off("pm:dragstart",this._unsnap,this)}});const Ee={filterMarkerGroup:function(){this.markerCache=[],this.createCache(),this._layer.on("pm:edit",this.createCache,this),this.applyLimitFilters({}),this.throttledApplyLimitFilters||(this.throttledApplyLimitFilters=L.Util.throttle(this.applyLimitFilters,100,this)),this._layer.on("pm:disable",this._removeMarkerLimitEvents,this),this.options.limitMarkersToCount>-1&&(this._layer.on("pm:vertexremoved",this._initMarkers,this),this._map.on("mousemove",this.throttledApplyLimitFilters,this))},_removeMarkerLimitEvents:function(){this._map.off("mousemove",this.throttledApplyLimitFilters,this),this._layer.off("pm:edit",this.createCache,this),this._layer.off("pm:disable",this._removeMarkerLimitEvents,this),this._layer.off("pm:vertexremoved",this._initMarkers,this)},createCache:function(){var t=[].concat(Ce(this._markerGroup.getLayers()),Ce(this.markerCache));this.markerCache=t.filter((function(t,e,i){return i.indexOf(t)===e}))},renderLimits:function(t){var e=this;this.markerCache.forEach((function(i){t.includes(i)?e._markerGroup.addLayer(i):e._markerGroup.removeLayer(i)}))},applyLimitFilters:function(t){var e=t.latlng,i=void 0===e?{lat:0,lng:0}:e;if(!this._preventRenderMarkers){var n=Ce(this._filterClosestMarkers(i));this.renderLimits(n)}},_filterClosestMarkers:function(t){var e=Ce(this.markerCache),i=this.options.limitMarkersToCount;return-1===i?e:(e.sort((function(e,i){return e._latlng.distanceTo(t)-i._latlng.distanceTo(t)})),e.filter((function(t,e){return!(i>-1)||et.length)&&(e=t.length);for(var i=0,n=new Array(e);it.length)&&(e=t.length);for(var i=0,n=new Array(e);i1?B()(r,l):r,u=o.length>1?B()(this._markers,l):this._markers;h.splice(s+1,0,n),u.splice(s+1,0,t),this._layer.setLatLngs(r),!0!==this.options.hideMiddleMarkers&&(this._createMiddleMarker(e,t),this._createMiddleMarker(t,i)),this._fireEdit(),this._layerEdited=!0,this._fireChange(this._layer.getLatLngs(),"Edit"),this._fireVertexAdded(t,L.PM.Utils.findDeepMarkerIndex(this._markers,t).indexPath,n),this.options.snappable&&this._initSnappableMarkers()},hasSelfIntersection:function(){return gt(this._layer.toGeoJSON(15)).features.length>0},_handleSelfIntersectionOnVertexRemoval:function(){this._handleLayerStyle(!0),this.hasSelfIntersection()&&(this._layer.setLatLngs(this._coordsBeforeEdit),this._coordsBeforeEdit=null,this._initMarkers())},_handleLayerStyle:function(t){var e=this._layer;if(this.hasSelfIntersection()){if(!this.options.allowSelfIntersection&&this.options.allowSelfIntersectionEdit&&this._updateDisabledMarkerStyle(this._markers,!0),this.isRed)return;t?this._flashLayer():(e.setStyle({color:"#f00000ff"}),this.isRed=!0),this._fireIntersect(gt(this._layer.toGeoJSON(15)))}else e.setStyle({color:this.cachedColor}),this.isRed=!1,!this.options.allowSelfIntersection&&this.options.allowSelfIntersectionEdit&&this._updateDisabledMarkerStyle(this._markers,!1)},_flashLayer:function(){var t=this;this.cachedColor||(this.cachedColor=this._layer.options.color),this._layer.setStyle({color:"#f00000ff"}),this.isRed=!0,window.setTimeout((function(){t._layer.setStyle({color:t.cachedColor}),t.isRed=!1}),200)},_updateDisabledMarkerStyle:function(t,e){var i=this;t.forEach((function(t){Array.isArray(t)?i._updateDisabledMarkerStyle(t,e):t._icon&&(e&&!i._checkMarkerAllowedToDrag(t)?L.DomUtil.addClass(t._icon,"vertexmarker-disabled"):L.DomUtil.removeClass(t._icon,"vertexmarker-disabled"))}))},_removeMarker:function(t){var e=t.target;if(this._vertexValidation("remove",t)){this.options.allowSelfIntersection||(this._coordsBeforeEdit=U(this._layer,this._layer.getLatLngs()));var i=this._layer.getLatLngs(),n=L.PM.Utils.findDeepMarkerIndex(this._markers,e),r=n.indexPath,a=n.index,o=n.parentPath;if(r){var s=r.length>1?B()(i,o):i,l=r.length>1?B()(this._markers,o):this._markers;if(this.options.removeLayerBelowMinVertexCount||!(s.length<=2||this.isPolygon()&&s.length<=3)){s.splice(a,1),this._layer.setLatLngs(i),this.isPolygon()&&s.length<=2&&s.splice(0,s.length);var h=!1;if(s.length<=1&&(s.splice(0,s.length),o.length>1&&r.length>1&&(i=A(i)),this._layer.setLatLngs(i),this._initMarkers(),h=!0),j(i)||this._layer.remove(),i=A(i),this._layer.setLatLngs(i),this._markers=A(this._markers),!h&&(l=r.length>1?B()(this._markers,o):this._markers,e._middleMarkerPrev&&this._markerGroup.removeLayer(e._middleMarkerPrev),e._middleMarkerNext&&this._markerGroup.removeLayer(e._middleMarkerNext),this._markerGroup.removeLayer(e),l)){var u,c;if(this.isPolygon()?(u=(a+1)%l.length,c=(a+(l.length-1))%l.length):(c=a-1<0?undefined:a-1,u=a+1>=l.length?undefined:a+1),u!==c){var p=l[c],d=l[u];!0!==this.options.hideMiddleMarkers&&this._createMiddleMarker(p,d)}l.splice(a,1)}this._fireEdit(),this._layerEdited=!0,this._fireVertexRemoved(e,r),this._fireChange(this._layer.getLatLngs(),"Edit")}else this._flashLayer()}}},updatePolygonCoordsFromMarkerDrag:function(t){var e=this._layer.getLatLngs(),i=t.getLatLng(),n=L.PM.Utils.findDeepMarkerIndex(this._markers,t),r=n.indexPath,a=n.index,o=n.parentPath;(r.length>1?B()(e,o):e).splice(a,1,i),this._layer.setLatLngs(e)},_getNeighborMarkers:function(t){var e=L.PM.Utils.findDeepMarkerIndex(this._markers,t),i=e.indexPath,n=e.index,r=e.parentPath,a=i.length>1?B()(this._markers,r):this._markers,o=(n+1)%a.length;return{prevMarker:a[(n+(a.length-1))%a.length],nextMarker:a[o]}},_checkMarkerAllowedToDrag:function(t){var e=this._getNeighborMarkers(t),i=e.prevMarker,n=e.nextMarker,r=L.polyline([i.getLatLng(),t.getLatLng()]),a=L.polyline([t.getLatLng(),n.getLatLng()]),o=At(this._layer.toGeoJSON(15),r.toGeoJSON(15)).features.length,s=At(this._layer.toGeoJSON(15),a.toGeoJSON(15)).features.length;return t.getLatLng()===this._markers[0][0].getLatLng()?s+=1:t.getLatLng()===this._markers[0][this._markers[0].length-1].getLatLng()&&(o+=1),!(o<=2&&s<=2)},_onMarkerDragStart:function(t){var e=t.target;if(this.cachedColor||(this.cachedColor=this._layer.options.color),this._vertexValidation("move",t)){var i=L.PM.Utils.findDeepMarkerIndex(this._markers,e).indexPath;this._fireMarkerDragStart(t,i),this.options.allowSelfIntersection||(this._coordsBeforeEdit=U(this._layer,this._layer.getLatLngs())),!this.options.allowSelfIntersection&&this.options.allowSelfIntersectionEdit&&this.hasSelfIntersection()?this._markerAllowedToDrag=this._checkMarkerAllowedToDrag(e):this._markerAllowedToDrag=null}},_onMarkerDrag:function(t){var e=t.target;if(this._vertexValidationDrag(e)){var i=L.PM.Utils.findDeepMarkerIndex(this._markers,e),n=i.indexPath,r=i.index,a=i.parentPath;if(n){if(!this.options.allowSelfIntersection&&this.options.allowSelfIntersectionEdit&&this.hasSelfIntersection()&&!1===this._markerAllowedToDrag)return this._layer.setLatLngs(this._coordsBeforeEdit),this._initMarkers(),void this._handleLayerStyle();this.updatePolygonCoordsFromMarkerDrag(e);var o=n.length>1?B()(this._markers,a):this._markers,s=(r+1)%o.length,l=(r+(o.length-1))%o.length,h=e.getLatLng(),u=o[l].getLatLng(),c=o[s].getLatLng();if(e._middleMarkerNext){var p=L.PM.Utils.calcMiddleLatLng(this._map,h,c);e._middleMarkerNext.setLatLng(p)}if(e._middleMarkerPrev){var d=L.PM.Utils.calcMiddleLatLng(this._map,h,u);e._middleMarkerPrev.setLatLng(d)}this.options.allowSelfIntersection||this._handleLayerStyle(),this._fireMarkerDrag(t,n),this._fireChange(this._layer.getLatLngs(),"Edit")}}},_onMarkerDragEnd:function(t){var e=t.target;if(this._vertexValidationDragEnd(e)){var i=L.PM.Utils.findDeepMarkerIndex(this._markers,e).indexPath,n=this.hasSelfIntersection();n&&this.options.allowSelfIntersectionEdit&&this._markerAllowedToDrag&&(n=!1);var r=!this.options.allowSelfIntersection&&n;if(this._fireMarkerDragEnd(t,i,r),r)return this._layer.setLatLngs(this._coordsBeforeEdit),this._coordsBeforeEdit=null,this._initMarkers(),this.options.snappable&&this._initSnappableMarkers(),this._handleLayerStyle(),void this._fireLayerReset(t,i);!this.options.allowSelfIntersection&&this.options.allowSelfIntersectionEdit&&this._handleLayerStyle(),this._fireEdit(),this._layerEdited=!0,this._fireChange(this._layer.getLatLngs(),"Edit")}},_onVertexClick:function(t){var e=t.target;if(!e._dragging){var i=L.PM.Utils.findDeepMarkerIndex(this._markers,e).indexPath;this._fireVertexClick(t,i)}}}),we.Polygon=we.Line.extend({_shape:"Polygon",_checkMarkerAllowedToDrag:function(t){var e=this._getNeighborMarkers(t),i=e.prevMarker,n=e.nextMarker,r=L.polyline([i.getLatLng(),t.getLatLng()]),a=L.polyline([t.getLatLng(),n.getLatLng()]),o=At(this._layer.toGeoJSON(15),r.toGeoJSON(15)).features.length,s=At(this._layer.toGeoJSON(15),a.toGeoJSON(15)).features.length;return!(o<=2&&s<=2)}}),we.Rectangle=we.Polygon.extend({_shape:"Rectangle",_initMarkers:function(){var t=this,e=this._map,i=this._findCorners();this._markerGroup&&this._markerGroup.clearLayers(),this._markerGroup=new L.FeatureGroup,this._markerGroup._pmTempLayer=!0,e.addLayer(this._markerGroup),this._markers=[],this._markers[0]=i.map(this._createMarker,this);var n=Se(this._markers,1);this._cornerMarkers=n[0],this._layer.getLatLngs()[0].forEach((function(e,i){var n=t._cornerMarkers.find((function(t){return t._index===i}));n&&n.setLatLng(e)}))},applyOptions:function(){this.options.snappable?this._initSnappableMarkers():this._disableSnapping(),this._addMarkerEvents()},_createMarker:function(t,e){var i=new L.Marker(t,{draggable:!0,icon:L.divIcon({className:"marker-icon"})});return this._setPane(i,"vertexPane"),i._origLatLng=t,i._index=e,i._pmTempLayer=!0,this._markerGroup.addLayer(i),i},_addMarkerEvents:function(){var t=this;this._markers[0].forEach((function(e){e.on("dragstart",t._onMarkerDragStart,t),e.on("drag",t._onMarkerDrag,t),e.on("dragend",t._onMarkerDragEnd,t),t.options.preventMarkerRemoval||e.on("contextmenu",t._removeMarker,t)}))},_removeMarker:function(){return null},_onMarkerDragStart:function(t){if(this._vertexValidation("move",t)){var e=t.target,i=this._cornerMarkers;e._oppositeCornerLatLng=i.find((function(t){return t._index===(e._index+2)%4})).getLatLng(),e._snapped=!1,this._fireMarkerDragStart(t)}},_onMarkerDrag:function(t){var e=t.target;this._vertexValidationDrag(e)&&e._index!==undefined&&(this._adjustRectangleForMarkerMove(e),this._fireMarkerDrag(t),this._fireChange(this._layer.getLatLngs(),"Edit"))},_onMarkerDragEnd:function(t){var e=t.target;this._vertexValidationDragEnd(e)&&(this._cornerMarkers.forEach((function(t){delete t._oppositeCornerLatLng})),this._fireMarkerDragEnd(t),this._fireEdit(),this._layerEdited=!0,this._fireChange(this._layer.getLatLngs(),"Edit"))},_adjustRectangleForMarkerMove:function(t){L.extend(t._origLatLng,t._latlng);var e=L.PM.Utils._getRotatedRectangle(t.getLatLng(),t._oppositeCornerLatLng,this._angle||0,this._map);this._layer.setLatLngs(e),this._adjustAllMarkers(),this._layer.redraw()},_adjustAllMarkers:function(){var t=this,e=this._layer.getLatLngs()[0];e&&4!==e.length&&e.length>0?(e.forEach((function(e,i){t._cornerMarkers[i].setLatLng(e)})),this._cornerMarkers.slice(e.length).forEach((function(t){t.setLatLng(e[0])}))):e&&e.length?this._cornerMarkers.forEach((function(t){t.setLatLng(e[t._index])})):console.error("The layer has no LatLngs")},_findCorners:function(){var t=this._layer.getLatLngs()[0];return L.PM.Utils._getRotatedRectangle(t[0],t[2],this._angle||0,this._map)}}),we.Circle=we.extend({_shape:"Circle",initialize:function(t){this._layer=t,this._enabled=!1,this._updateHiddenPolyCircle()},enable:function(t){L.Util.setOptions(this,t),this._map=this._layer._map,this.options.allowEditing?(this.enabled()||this.disable(),this._enabled=!0,this._initMarkers(),this.applyOptions(),this._layer.on("remove",this.disable,this),this._updateHiddenPolyCircle(),this._fireEnable()):this.disable()},disable:function(){if(this.enabled()&&!this._dragging){this._centerMarker.off("dragstart",this._onCircleDragStart,this),this._centerMarker.off("drag",this._onCircleDrag,this),this._centerMarker.off("dragend",this._onCircleDragEnd,this),this._outerMarker.off("drag",this._handleOuterMarkerSnapping,this),this._layer.off("remove",this.disable,this),this._enabled=!1,this._helperLayers.clearLayers();var t=this._layer._path?this._layer._path:this._layer._renderer._container;L.DomUtil.removeClass(t,"leaflet-pm-draggable"),this._layerEdited&&this._fireUpdate(),this._layerEdited=!1,this._fireDisable()}},enabled:function(){return this._enabled},toggleEdit:function(t){this.enabled()?this.disable():this.enable(t)},_initMarkers:function(){var t=this._map;this._helperLayers&&this._helperLayers.clearLayers(),this._helperLayers=new L.FeatureGroup,this._helperLayers._pmTempLayer=!0,this._helperLayers.addTo(t);var e=this._layer.getLatLng(),i=this._layer._radius,n=this._getLatLngOnCircle(e,i);this._centerMarker=this._createCenterMarker(e),this._outerMarker=this._createOuterMarker(n),this._markers=[this._centerMarker,this._outerMarker],this._createHintLine(this._centerMarker,this._outerMarker)},applyOptions:function(){this.options.snappable?(this._initSnappableMarkers(),this._outerMarker.on("drag",this._handleOuterMarkerSnapping,this),this._outerMarker.on("move",this._syncHintLine,this),this._outerMarker.on("move",this._syncCircleRadius,this),this._centerMarker.on("move",this._moveCircle,this)):this._disableSnapping()},_createHintLine:function(t,e){var i=t.getLatLng(),n=e.getLatLng();this._hintline=L.polyline([i,n],this.options.hintlineStyle),this._setPane(this._hintline,"layerPane"),this._hintline._pmTempLayer=!0,this._helperLayers.addLayer(this._hintline)},_createCenterMarker:function(t){var e=this._createMarker(t);return L.DomUtil.addClass(e._icon,"leaflet-pm-draggable"),e.on("drag",this._moveCircle,this),e.on("dragstart",this._onCircleDragStart,this),e.on("drag",this._onCircleDrag,this),e.on("dragend",this._onCircleDragEnd,this),e},_createOuterMarker:function(t){var e=this._createMarker(t);return e.on("drag",this._resizeCircle,this),e},_createMarker:function(t){var e=new L.Marker(t,{draggable:!0,icon:L.divIcon({className:"marker-icon"})});return this._setPane(e,"vertexPane"),e._origLatLng=t,e._pmTempLayer=!0,e.on("dragstart",this._onMarkerDragStart,this),e.on("drag",this._onMarkerDrag,this),e.on("dragend",this._onMarkerDragEnd,this),this._helperLayers.addLayer(e),e},_resizeCircle:function(){this._outerMarker.setLatLng(this._getNewDestinationOfOuterMarker()),this._syncHintLine(),this._syncCircleRadius()},_moveCircle:function(t){if(!t.target._cancelDragEventChain){var e=t.latlng;this._layer.setLatLng(e);var i=this._layer._radius,n=this._getLatLngOnCircle(e,i);this._outerMarker._latlng=n,this._outerMarker.update(),this._syncHintLine(),this._updateHiddenPolyCircle(),this._fireCenterPlaced("Edit"),this._fireChange(this._layer.getLatLng(),"Edit")}},_syncCircleRadius:function(){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng(),i=this._map.distance(t,e);this.options.minRadiusCircle&&ithis.options.maxRadiusCircle?this._layer.setRadius(this.options.maxRadiusCircle):this._layer.setRadius(i),this._updateHiddenPolyCircle(),this._fireChange(this._layer.getLatLng(),"Edit")},_syncHintLine:function(){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng();this._hintline.setLatLngs([t,e])},_disableSnapping:function(){var t=this;this._markers.forEach((function(e){e.off("move",t._syncHintLine,t),e.off("move",t._syncCircleRadius,t),e.off("drag",t._handleSnapping,t),e.off("dragend",t._cleanupSnapping,t)})),this._layer.off("pm:dragstart",this._unsnap,this)},_onMarkerDragStart:function(t){this._vertexValidation("move",t)&&this._fireMarkerDragStart(t)},_onMarkerDrag:function(t){var e=t.target;this._vertexValidationDrag(e)&&this._fireMarkerDrag(t)},_onMarkerDragEnd:function(t){var e=t.target;this._vertexValidationDragEnd(e)&&(this._fireEdit(),this._layerEdited=!0,this._fireMarkerDragEnd(t))},_onCircleDragStart:function(t){this._vertexValidationDrag(t.target)?(delete this._vertexValidationReset,this._fireDragStart()):this._vertexValidationReset=!0},_onCircleDrag:function(t){this._vertexValidationReset||this._fireDrag(t)},_onCircleDragEnd:function(){this._vertexValidationReset?delete this._vertexValidationReset:this._fireDragEnd()},_updateHiddenPolyCircle:function(){var t=this._map&&this._map.pm._isCRSSimple();this._hiddenPolyCircle?this._hiddenPolyCircle.setLatLngs(L.PM.Utils.circleToPolygon(this._layer,200,!t).getLatLngs()):this._hiddenPolyCircle=L.PM.Utils.circleToPolygon(this._layer,200,!t),this._hiddenPolyCircle._parentCopy||(this._hiddenPolyCircle._parentCopy=this._layer)},_getLatLngOnCircle:function(t,e){var i=this._map.project(t),n=L.point(i.x+e,i.y);return this._map.unproject(n)},_getNewDestinationOfOuterMarker:function(){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng(),i=this._map.distance(t,e);return this.options.minRadiusCircle&&ithis.options.maxRadiusCircle&&(e=z(this._map,t,e,this.options.maxRadiusCircle)),e},_handleOuterMarkerSnapping:function(){if(this._outerMarker._snapped){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng(),i=this._map.distance(t,e);(this.options.minRadiusCircle&&ithis.options.maxRadiusCircle)&&this._outerMarker.setLatLng(this._outerMarker._orgLatLng)}this._outerMarker.setLatLng(this._getNewDestinationOfOuterMarker())}}),we.CircleMarker=we.extend({_shape:"CircleMarker",initialize:function(t){this._layer=t,this._enabled=!1,this._updateHiddenPolyCircle()},enable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{draggable:!0,snappable:!0};L.Util.setOptions(this,t),this.options.allowEditing&&this._layer._map?(this._map=this._layer._map,this.enabled()&&this.disable(),this.applyOptions(),this._layer.on("remove",this.disable,this),this._enabled=!0,this._layer.on("pm:dragstart",this._onDragStart,this),this._layer.on("pm:drag",this._onMarkerDrag,this),this._layer.on("pm:dragend",this._onMarkerDragEnd,this),this._updateHiddenPolyCircle(),this._fireEnable()):this.disable()},disable:function(){this._dragging||(this._helperLayers&&this._helperLayers.clearLayers(),this._map||(this._map=this._layer._map),this._map||(this.options.editable?(this._map.off("move",this._syncMarkers,this),this._outerMarker&&this._outerMarker.on("drag",this._handleOuterMarkerSnapping,this)):this._map.off("move",this._updateHiddenPolyCircle,this)),this.disableLayerDrag(),this._layer.off("contextmenu",this._removeMarker,this),this._layer.off("remove",this.disable,this),this.enabled()&&(this._layerEdited&&this._fireUpdate(),this._layerEdited=!1,this._fireDisable()),this._enabled=!1)},enabled:function(){return this._enabled},toggleEdit:function(t){this.enabled()?this.disable():this.enable(t)},applyOptions:function(){!this.options.editable&&this.options.draggable?this.enableLayerDrag():this.disableLayerDrag(),this.options.editable?(this._initMarkers(),this._map.on("move",this._syncMarkers,this)):this._map.on("move",this._updateHiddenPolyCircle,this),this.options.snappable?this.options.editable?(this._initSnappableMarkers(),this._centerMarker.on("drag",this._moveCircle,this),this.options.editable&&this._outerMarker.on("drag",this._handleOuterMarkerSnapping,this),this._outerMarker.on("move",this._syncHintLine,this),this._outerMarker.on("move",this._syncCircleRadius,this)):this._initSnappableMarkersDrag():this.options.editable?this._disableSnapping():this._disableSnappingDrag(),this.options.preventMarkerRemoval||this._layer.on("contextmenu",this._removeMarker,this)},_initMarkers:function(){var t=this._map;this._helperLayers&&this._helperLayers.clearLayers(),this._helperLayers=new L.FeatureGroup,this._helperLayers._pmTempLayer=!0,this._helperLayers.addTo(t);var e=this._layer.getLatLng(),i=this._layer._radius,n=this._getLatLngOnCircle(e,i);this._centerMarker=this._createCenterMarker(e),this._outerMarker=this._createOuterMarker(n),this._markers=[this._centerMarker,this._outerMarker],this._createHintLine(this._centerMarker,this._outerMarker)},_getLatLngOnCircle:function(t,e){var i=this._map.project(t),n=L.point(i.x+e,i.y);return this._map.unproject(n)},_createHintLine:function(t,e){var i=t.getLatLng(),n=e.getLatLng();this._hintline=L.polyline([i,n],this.options.hintlineStyle),this._setPane(this._hintline,"layerPane"),this._hintline._pmTempLayer=!0,this._helperLayers.addLayer(this._hintline)},_createCenterMarker:function(t){var e=this._createMarker(t);return this.options.draggable?L.DomUtil.addClass(e._icon,"leaflet-pm-draggable"):e.dragging.disable(),e},_createOuterMarker:function(t){var e=this._createMarker(t);return e.on("drag",this._resizeCircle,this),e},_createMarker:function(t){var e=new L.Marker(t,{draggable:!0,icon:L.divIcon({className:"marker-icon"})});return this._setPane(e,"vertexPane"),e._origLatLng=t,e._pmTempLayer=!0,e.on("dragstart",this._onMarkerDragStart,this),e.on("drag",this._onMarkerDrag,this),e.on("dragend",this._onMarkerDragEnd,this),this._helperLayers.addLayer(e),e},_moveCircle:function(){var t=this._centerMarker.getLatLng();this._layer.setLatLng(t);var e=this._layer._radius,i=this._getLatLngOnCircle(t,e);this._outerMarker._latlng=i,this._outerMarker.update(),this._syncHintLine(),this._updateHiddenPolyCircle(),this._fireCenterPlaced("Edit"),this._fireChange(this._layer.getLatLng(),"Edit")},_syncMarkers:function(){var t=this._layer.getLatLng(),e=this._layer._radius,i=this._getLatLngOnCircle(t,e);this._outerMarker.setLatLng(i),this._centerMarker.setLatLng(t),this._syncHintLine(),this._updateHiddenPolyCircle()},_resizeCircle:function(){this._outerMarker.setLatLng(this._getNewDestinationOfOuterMarker()),this._syncHintLine(),this._syncCircleRadius()},_syncCircleRadius:function(){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng(),i=this._map.project(t).distanceTo(this._map.project(e));this.options.minRadiusCircleMarker&&ithis.options.maxRadiusCircleMarker?this._layer.setRadius(this.options.maxRadiusCircleMarker):this._layer.setRadius(i),this._updateHiddenPolyCircle(),this._fireChange(this._layer.getLatLng(),"Edit")},_syncHintLine:function(){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng();this._hintline.setLatLngs([t,e])},_removeMarker:function(){this.options.editable&&this.disable(),this._layer.remove(),this._fireRemove(this._layer),this._fireRemove(this._map,this._layer)},_onDragStart:function(){this._map.pm.Draw.CircleMarker._layerIsDragging=!0},_onMarkerDragStart:function(t){this._vertexValidation("move",t)&&this._fireMarkerDragStart(t)},_onMarkerDrag:function(t){var e=t.target;e instanceof L.Marker&&!this._vertexValidationDrag(e)||this._fireMarkerDrag(t)},_onMarkerDragEnd:function(t){this._map.pm.Draw.CircleMarker._layerIsDragging=!1;var e=t.target;this._vertexValidationDragEnd(e)&&(this.options.editable&&(this._fireEdit(),this._layerEdited=!0),this._fireMarkerDragEnd(t))},_initSnappableMarkersDrag:function(){var t=this._layer;this.options.snapDistance=this.options.snapDistance||30,this.options.snapSegment=this.options.snapSegment===undefined||this.options.snapSegment,t.off("pm:drag",this._handleSnapping,this),t.on("pm:drag",this._handleSnapping,this),t.off("pm:dragend",this._cleanupSnapping,this),t.on("pm:dragend",this._cleanupSnapping,this),t.off("pm:dragstart",this._unsnap,this),t.on("pm:dragstart",this._unsnap,this)},_disableSnappingDrag:function(){var t=this._layer;t.off("pm:drag",this._handleSnapping,this),t.off("pm:dragend",this._cleanupSnapping,this),t.off("pm:dragstart",this._unsnap,this)},_updateHiddenPolyCircle:function(){var t=this._layer._map||this._map;if(t){var e=L.PM.Utils.pxRadiusToMeterRadius(this._layer.getRadius(),t,this._layer.getLatLng()),i=L.circle(this._layer.getLatLng(),this._layer.options);i.setRadius(e);var n=t&&t.pm._isCRSSimple();this._hiddenPolyCircle?this._hiddenPolyCircle.setLatLngs(L.PM.Utils.circleToPolygon(i,200,!n).getLatLngs()):this._hiddenPolyCircle=L.PM.Utils.circleToPolygon(i,200,!n),this._hiddenPolyCircle._parentCopy||(this._hiddenPolyCircle._parentCopy=this._layer)}},_getNewDestinationOfOuterMarker:function(){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng(),i=this._map.project(t).distanceTo(this._map.project(e));return this.options.minRadiusCircleMarker&&ithis.options.maxRadiusCircleMarker&&(e=z(this._map,t,e,L.PM.Utils.pxRadiusToMeterRadius(this.options.maxRadiusCircleMarker,this._map,t))),e},_handleOuterMarkerSnapping:function(){if(this._outerMarker._snapped){var t=this._centerMarker.getLatLng(),e=this._outerMarker.getLatLng(),i=this._map.project(t).distanceTo(this._map.project(e));(this.options.minRadiusCircleMarker&&ithis.options.maxRadiusCircleMarker)&&this._outerMarker.setLatLng(this._outerMarker._orgLatLng)}this._outerMarker.setLatLng(this._getNewDestinationOfOuterMarker())}}),we.ImageOverlay=we.extend({_shape:"ImageOverlay",initialize:function(t){this._layer=t,this._enabled=!1},toggleEdit:function(t){this.enabled()?this.disable():this.enable(t)},enabled:function(){return this._enabled},enable:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{draggable:!0,snappable:!0};L.Util.setOptions(this,t),this._map=this._layer._map,this._map&&(this.options.allowEditing?(this.enabled()||this.disable(),this.enableLayerDrag(),this._layer.on("remove",this.disable,this),this._enabled=!0,this._otherSnapLayers=this._findCorners(),this._fireEnable()):this.disable())},disable:function(){this._dragging||(this._map||(this._map=this._layer._map),this.disableLayerDrag(),this._layer.off("remove",this.disable,this),this.enabled()||(this._layerEdited&&this._fireUpdate(),this._layerEdited=!1,this._fireDisable()),this._enabled=!1)},_findCorners:function(){var t=this._layer.getBounds();return[t.getNorthWest(),t.getNorthEast(),t.getSouthEast(),t.getSouthWest()]}}),we.Text=we.extend({_shape:"Text",initialize:function(t){this._layer=t,this._enabled=!1},enable:function(t){L.Util.setOptions(this,t),this.textArea&&(this.options.allowEditing&&this._layer._map?(this._map=this._layer._map,this.enabled()&&this.disable(),this.applyOptions(),this._safeToCacheDragState=!0,this._focusChange(),this.textArea.readOnly=!1,this.textArea.classList.remove("pm-disabled"),this._layer.on("remove",this.disable,this),L.DomEvent.on(this.textArea,"input",this._autoResize,this),L.DomEvent.on(this.textArea,"focus",this._focusChange,this),L.DomEvent.on(this.textArea,"blur",this._focusChange,this),this._layer.on("dblclick",L.DomEvent.stop),L.DomEvent.off(this.textArea,"mousedown",this._preventTextSelection),this._enabled=!0,this._fireEnable()):this.disable())},disable:function(){if(this.enabled()){this._layer.off("remove",this.disable,this),L.DomEvent.off(this.textArea,"input",this._autoResize,this),L.DomEvent.off(this.textArea,"focus",this._focusChange,this),L.DomEvent.off(this.textArea,"blur",this._focusChange,this),L.DomEvent.off(document,"click",this._documentClick,this),this._focusChange(),this.textArea.readOnly=!0,this.textArea.classList.add("pm-disabled");var t=document.activeElement;this.textArea.focus(),this.textArea.selectionStart=0,this.textArea.selectionEnd=0,L.DomEvent.on(this.textArea,"mousedown",this._preventTextSelection),t.focus(),this._disableOnBlurActive=!1,this._layerEdited&&this._fireUpdate(),this._layerEdited=!1,this._fireDisable(),this._enabled=!1}},enabled:function(){return this._enabled},toggleEdit:function(t){this.enabled()?this.disable():this.enable(t)},applyOptions:function(){this.options.snappable?this._initSnappableMarkers():this._disableSnapping()},_initSnappableMarkers:function(){var t=this._layer;this.options.snapDistance=this.options.snapDistance||30,this.options.snapSegment=this.options.snapSegment===undefined||this.options.snapSegment,t.off("pm:drag",this._handleSnapping,this),t.on("pm:drag",this._handleSnapping,this),t.off("pm:dragend",this._cleanupSnapping,this),t.on("pm:dragend",this._cleanupSnapping,this),t.off("pm:dragstart",this._unsnap,this),t.on("pm:dragstart",this._unsnap,this)},_disableSnapping:function(){var t=this._layer;t.off("pm:drag",this._handleSnapping,this),t.off("pm:dragend",this._cleanupSnapping,this),t.off("pm:dragstart",this._unsnap,this)},_autoResize:function(){this.textArea.style.height="1px",this.textArea.style.width="1px";var t=this.textArea.scrollHeight>21?this.textArea.scrollHeight:21,e=this.textArea.scrollWidth>16?this.textArea.scrollWidth:16;this.textArea.style.height="".concat(t,"px"),this.textArea.style.width="".concat(e,"px"),this._layer.options.text=this.getText(),this._fireTextChange(this.getText())},_disableOnBlur:function(){var t=this;this._disableOnBlurActive=!0,setTimeout((function(){t.enabled()&&L.DomEvent.on(document,"click",t._documentClick,t)}),100)},_documentClick:function(t){t.target!==this.textArea&&(this.disable(),!this.getText()&&this.options.removeIfEmpty&&this.remove())},_focusChange:function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},e=this._hasFocus;this._hasFocus="focus"===t.type,!e!=!this._hasFocus&&(this._hasFocus?(this._applyFocus(),this._focusText=this.getText(),this._fireTextFocus()):(this._removeFocus(),this._fireTextBlur(),this._focusText!==this.getText()&&(this._fireEdit(),this._layerEdited=!0)))},_applyFocus:function(){this.textArea.classList.add("pm-hasfocus"),this._map.dragging&&(this._safeToCacheDragState&&(this._originalMapDragState=this._map.dragging._enabled,this._safeToCacheDragState=!1),this._map.dragging.disable())},_removeFocus:function(){this._map.dragging&&(this._originalMapDragState&&this._map.dragging.enable(),this._safeToCacheDragState=!0),this.textArea.classList.remove("pm-hasfocus")},focus:function(){if(!this.enabled())throw new TypeError("Layer is not enabled");this.textArea.focus()},blur:function(){if(!this.enabled())throw new TypeError("Layer is not enabled");this.textArea.blur(),this._disableOnBlurActive&&this.disable()},hasFocus:function(){return this._hasFocus},getElement:function(){return this.textArea},setText:function(t){this.textArea.value=t,this._autoResize()},getText:function(){return this.textArea.value},_initTextMarker:function(){if(this.textArea=L.PM.Draw.Text.prototype._createTextArea.call(this),this.options.className){var t,e=this.options.className.split(" ");(t=this.textArea.classList).add.apply(t,De(e))}var i=L.PM.Draw.Text.prototype._createTextIcon.call(this,this.textArea);this._layer.setIcon(i),this._layer.once("add",this._createTextMarker,this)},_createTextMarker:function(){var t=arguments.length>0&&arguments[0]!==undefined&&arguments[0];this._layer.off("add",this._createTextMarker,this),this._layer.getElement().tabIndex=-1,this.textArea.wrap="off",this.textArea.style.overflow="hidden",this.textArea.style.height=L.DomUtil.getStyle(this.textArea,"font-size"),this.textArea.style.width="1px",this._layer.options.text&&this.setText(this._layer.options.text),this._autoResize(),!0===t&&(this.enable(),this.focus(),this._disableOnBlur())},_preventTextSelection:function(t){t.preventDefault()}});var Re=function(t,e,i,n,r,a){this._matrix=[t,e,i,n,r,a]};Re.init=function(){return new L.PM.Matrix(1,0,0,1,0,0)},Re.prototype={transform:function(t){return this._transform(t.clone())},_transform:function(t){var e=this._matrix,i=t.x,n=t.y;return t.x=e[0]*i+e[1]*n+e[4],t.y=e[2]*i+e[3]*n+e[5],t},untransform:function(t){var e=this._matrix;return new L.Point((t.x/e[0]-e[4])/e[0],(t.y/e[2]-e[5])/e[2])},clone:function(){var t=this._matrix;return new L.PM.Matrix(t[0],t[1],t[2],t[3],t[4],t[5])},translate:function(t){return t===undefined?new L.Point(this._matrix[4],this._matrix[5]):("number"==typeof t?(e=t,i=t):(e=t.x,i=t.y),this._add(1,0,0,1,e,i));var e,i},scale:function(t,e){return t===undefined?new L.Point(this._matrix[0],this._matrix[3]):(e=e||L.point(0,0),"number"==typeof t?(i=t,n=t):(i=t.x,n=t.y),this._add(i,0,0,n,e.x,e.y)._add(1,0,0,1,-e.x,-e.y));var i,n},rotate:function(t,e){var i=Math.cos(t),n=Math.sin(t);return e=e||new L.Point(0,0),this._add(i,n,-n,i,e.x,e.y)._add(1,0,0,1,-e.x,-e.y)},flip:function(){return this._matrix[1]*=-1,this._matrix[2]*=-1,this},_add:function(t,e,i,n,r,a){var o,s=[[],[],[]],l=this._matrix,h=[[l[0],l[2],l[4]],[l[1],l[3],l[5]],[0,0,1]],u=[[t,i,r],[e,n,a],[0,0,1]];t&&t instanceof L.PM.Matrix&&(u=[[(l=t._matrix)[0],l[2],l[4]],[l[1],l[3],l[5]],[0,0,1]]);for(var c=0;c<3;c+=1)for(var p=0;p<3;p+=1){o=0;for(var d=0;d<3;d+=1)o+=h[c][d]*u[d][p];s[c][p]=o}return this._matrix=[s[0][0],s[1][0],s[0][1],s[1][1],s[0][2],s[1][2]],this}};const Te=Re;var Ie={calcMiddleLatLng:function(t,e,i){var n=t.project(e),r=t.project(i);return t.unproject(n._add(r)._divideBy(2))},findLayers:function(t){var e=[];return t.eachLayer((function(t){(t instanceof L.Polyline||t instanceof L.Marker||t instanceof L.Circle||t instanceof L.CircleMarker||t instanceof L.ImageOverlay)&&e.push(t)})),e=(e=(e=e.filter((function(t){return!!t.pm}))).filter((function(t){return!t._pmTempLayer}))).filter((function(t){return!L.PM.optIn&&!t.options.pmIgnore||L.PM.optIn&&!1===t.options.pmIgnore}))},circleToPolygon:function(t){for(var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:60,i=!(arguments.length>2&&arguments[2]!==undefined)||arguments[2],n=t.getLatLng(),r=t.getRadius(),a=N(n,r,e,0,i),o=[],s=0;s3&&arguments[3]!==undefined&&arguments[3];t.fire(e,i,n);var r=this.getAllParentGroups(t),a=r.groups;a.forEach((function(t){t.fire(e,i,n)}))},getAllParentGroups:function(t){var e=[],i=[];return!t._pmLastGroupFetch||!t._pmLastGroupFetch.time||(new Date).getTime()-t._pmLastGroupFetch.time>1e3?(function n(t){for(var r in t._eventParents)if(-1===e.indexOf(r)){e.push(r);var a=t._eventParents[r];i.push(a),n(a)}}(t),t._pmLastGroupFetch={time:(new Date).getTime(),groups:i,groupIds:e},{groupIds:e,groups:i}):{groups:t._pmLastGroupFetch.groups,groupIds:t._pmLastGroupFetch.groupIds}},createGeodesicPolygon:N,getTranslation:I,findDeepCoordIndex:function(t,e){var i,n=!(arguments.length>2&&arguments[2]!==undefined)||arguments[2],r=function o(t){return function(r,a){var s=t.concat(a);if(n){if(r.lat&&r.lat===e.lat&&r.lng===e.lng)return i=s,!0}else if(r.lat&&L.latLng(r).equals(e))return i=s,!0;return Array.isArray(r)&&r.some(o(s))}};t.some(r([]));var a={};return i&&(a={indexPath:i,index:i[i.length-1],parentPath:i.slice(0,i.length-1)}),a},findDeepMarkerIndex:function(t,e){var i;t.some(function r(t){return function(n,a){var o=t.concat(a);return n._leaflet_id===e._leaflet_id?(i=o,!0):Array.isArray(n)&&n.some(r(o))}}([]));var n={};return i&&(n={indexPath:i,index:i[i.length-1],parentPath:i.slice(0,i.length-1)}),n},_getIndexFromSegment:function(t,e){if(e&&2===e.length){var i=this.findDeepCoordIndex(t,e[0]),n=this.findDeepCoordIndex(t,e[1]),r=Math.max(i.index,n.index);return 0!==i.index&&0!==n.index||1===r||(r+=1),{indexA:i,indexB:n,newIndex:r,indexPath:i.indexPath,parentPath:i.parentPath}}return null},_getRotatedRectangle:function(t,e,i,n){var r=be(n,t),a=be(n,e),o=i*Math.PI/180,s=Math.cos(o),l=Math.sin(o),h=(a.x-r.x)*s+(a.y-r.y)*l,u=(a.y-r.y)*s-(a.x-r.x)*l,c=h*s+r.x,p=h*l+r.y,d=-u*l+r.x,f=u*s+r.y;return[ke(n,r),ke(n,{x:c,y:p}),ke(n,a),ke(n,{x:d,y:f})]},pxRadiusToMeterRadius:function(t,e,i){var n=e.project(i),r=L.point(n.x+t,n.y);return e.distance(e.unproject(r),i)}};const je=Ie;L.PM=L.PM||{version:"2.14.2",Map:H,Toolbar:$,Draw:nt,Edit:we,Utils:je,Matrix:Te,activeLang:"en",optIn:!1,initialize:function(t){this.addInitHooks(t)},setOptIn:function(t){this.optIn=!!t},addInitHooks:function(){L.Map.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Map(this)):this.options.pmIgnore||(this.pm=new L.PM.Map(this)),this.pm&&this.pm.setGlobalOptions({})})),L.LayerGroup.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.LayerGroup(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.LayerGroup(this))})),L.Marker.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.options.textMarker?(this.pm=new L.PM.Edit.Text(this),this.options._textMarkerOverPM||this.pm._initTextMarker(),delete this.options._textMarkerOverPM):this.pm=new L.PM.Edit.Marker(this)):this.options.pmIgnore||(this.options.textMarker?(this.pm=new L.PM.Edit.Text(this),this.options._textMarkerOverPM||this.pm._initTextMarker(),delete this.options._textMarkerOverPM):this.pm=new L.PM.Edit.Marker(this))})),L.CircleMarker.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.CircleMarker(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.CircleMarker(this))})),L.Polyline.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.Line(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.Line(this))})),L.Polygon.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.Polygon(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.Polygon(this))})),L.Rectangle.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.Rectangle(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.Rectangle(this))})),L.Circle.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.Circle(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.Circle(this))})),L.ImageOverlay.addInitHook((function(){this.pm=undefined,L.PM.optIn?!1===this.options.pmIgnore&&(this.pm=new L.PM.Edit.ImageOverlay(this)):this.options.pmIgnore||(this.pm=new L.PM.Edit.ImageOverlay(this))}))},reInitLayer:function(t){var e=this;t instanceof L.LayerGroup&&t.eachLayer((function(t){e.reInitLayer(t)})),t.pm||L.PM.optIn&&!1!==t.options.pmIgnore||t.options.pmIgnore||(t instanceof L.Map?t.pm=new L.PM.Map(t):t instanceof L.Marker?t.options.textMarker?(t.pm=new L.PM.Edit.Text(t),t.pm._initTextMarker(),t.pm._createTextMarker(!1)):t.pm=new L.PM.Edit.Marker(t):t instanceof L.Circle?t.pm=new L.PM.Edit.Circle(t):t instanceof L.CircleMarker?t.pm=new L.PM.Edit.CircleMarker(t):t instanceof L.Rectangle?t.pm=new L.PM.Edit.Rectangle(t):t instanceof L.Polygon?t.pm=new L.PM.Edit.Polygon(t):t instanceof L.Polyline?t.pm=new L.PM.Edit.Line(t):t instanceof L.LayerGroup?t.pm=new L.PM.Edit.LayerGroup(t):t instanceof L.ImageOverlay&&(t.pm=new L.PM.Edit.ImageOverlay(t)))}},"1.7.1"===L.version&&L.Canvas.include({_onClick:function(t){for(var e,i,n=this._map.mouseEventToLayerPoint(t),r=this._drawFirst;r;r=r.next)(e=r.layer).options.interactive&&e._containsPoint(n)&&("click"!==t.type&&"preclick"!==t.type||!this._map._draggableMoved(e))&&(i=e);i&&(L.DomEvent.fakeStop(t),this._fireEvent([i],t))}}),L.PM.initialize()},7107:()=>{Array.prototype.findIndex=Array.prototype.findIndex||function(t){if(null===this)throw new TypeError("Array.prototype.findIndex called on null or undefined");if("function"!=typeof t)throw new TypeError("callback must be a function");for(var e=Object(this),i=e.length>>>0,n=arguments[1],r=0;r>>0,n=arguments[1],r=0;r>>0;if(0===n)return!1;var r,a,o=0|e,s=Math.max(o>=0?o:n-Math.abs(o),0);for(;s{var n=i(2582),r=i(4102),a=i(1540),o=i(9705).Z,s=a.featureEach,l=(a.coordEach,r.polygon,r.featureCollection);function h(t){var e=new n(t);return e.insert=function(t){if("Feature"!==t.type)throw new Error("invalid feature");return t.bbox=t.bbox?t.bbox:o(t),n.prototype.insert.call(this,t)},e.load=function(t){var e=[];return Array.isArray(t)?t.forEach((function(t){if("Feature"!==t.type)throw new Error("invalid features");t.bbox=t.bbox?t.bbox:o(t),e.push(t)})):s(t,(function(t){if("Feature"!==t.type)throw new Error("invalid features");t.bbox=t.bbox?t.bbox:o(t),e.push(t)})),n.prototype.load.call(this,e)},e.remove=function(t,e){if("Feature"!==t.type)throw new Error("invalid feature");return t.bbox=t.bbox?t.bbox:o(t),n.prototype.remove.call(this,t,e)},e.clear=function(){return n.prototype.clear.call(this)},e.search=function(t){var e=n.prototype.search.call(this,this.toBBox(t));return l(e)},e.collides=function(t){return n.prototype.collides.call(this,this.toBBox(t))},e.all=function(){var t=n.prototype.all.call(this);return l(t)},e.toJSON=function(){return n.prototype.toJSON.call(this)},e.fromJSON=function(t){return n.prototype.fromJSON.call(this,t)},e.toBBox=function(t){var e;if(t.bbox)e=t.bbox;else if(Array.isArray(t)&&4===t.length)e=t;else if(Array.isArray(t)&&6===t.length)e=[t[0],t[1],t[3],t[4]];else if("Feature"===t.type)e=o(t);else{if("FeatureCollection"!==t.type)throw new Error("invalid geojson");e=o(t)}return{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}},e}t.exports=h,t.exports["default"]=h},1989:(t,e,i)=>{var n=i(1789),r=i(401),a=i(7667),o=i(1327),s=i(1866);function l(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e{var n=i(7040),r=i(4125),a=i(2117),o=i(7518),s=i(4705);function l(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e{var n=i(852)(i(5639),"Map");t.exports=n},3369:(t,e,i)=>{var n=i(4785),r=i(1285),a=i(6e3),o=i(9916),s=i(5265);function l(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e{var n=i(8407),r=i(7465),a=i(3779),o=i(7599),s=i(4758),l=i(4309);function h(t){var e=this.__data__=new n(t);this.size=e.size}h.prototype.clear=r,h.prototype["delete"]=a,h.prototype.get=o,h.prototype.has=s,h.prototype.set=l,t.exports=h},2705:(t,e,i)=>{var n=i(5639).Symbol;t.exports=n},1149:(t,e,i)=>{var n=i(5639).Uint8Array;t.exports=n},6874:t=>{t.exports=function(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}},4636:(t,e,i)=>{var n=i(2545),r=i(5694),a=i(1469),o=i(4144),s=i(5776),l=i(6719),h=Object.prototype.hasOwnProperty;t.exports=function(t,e){var i=a(t),u=!i&&r(t),c=!i&&!u&&o(t),p=!i&&!u&&!c&&l(t),d=i||u||c||p,f=d?n(t.length,String):[],g=f.length;for(var _ in t)!e&&!h.call(t,_)||d&&("length"==_||c&&("offset"==_||"parent"==_)||p&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||s(_,g))||f.push(_);return f}},9932:t=>{t.exports=function(t,e){for(var i=-1,n=null==t?0:t.length,r=Array(n);++i{var n=i(9465),r=i(7813);t.exports=function(t,e,i){(i!==undefined&&!r(t[e],i)||i===undefined&&!(e in t))&&n(t,e,i)}},4865:(t,e,i)=>{var n=i(9465),r=i(7813),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,i){var o=t[e];a.call(t,e)&&r(o,i)&&(i!==undefined||e in t)||n(t,e,i)}},8470:(t,e,i)=>{var n=i(7813);t.exports=function(t,e){for(var i=t.length;i--;)if(n(t[i][0],e))return i;return-1}},9465:(t,e,i)=>{var n=i(8777);t.exports=function(t,e,i){"__proto__"==e&&n?n(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}},3118:(t,e,i)=>{var n=i(3218),r=Object.create,a=function(){function t(){}return function(e){if(!n(e))return{};if(r)return r(e);t.prototype=e;var i=new t;return t.prototype=undefined,i}}();t.exports=a},8483:(t,e,i)=>{var n=i(5063)();t.exports=n},7786:(t,e,i)=>{var n=i(1811),r=i(327);t.exports=function(t,e){for(var i=0,a=(e=n(e,t)).length;null!=t&&i{var n=i(2705),r=i(9607),a=i(2333),o=n?n.toStringTag:undefined;t.exports=function(t){return null==t?t===undefined?"[object Undefined]":"[object Null]":o&&o in Object(t)?r(t):a(t)}},8565:t=>{var e=Object.prototype.hasOwnProperty;t.exports=function(t,i){return null!=t&&e.call(t,i)}},9454:(t,e,i)=>{var n=i(4239),r=i(7005);t.exports=function(t){return r(t)&&"[object Arguments]"==n(t)}},8458:(t,e,i)=>{var n=i(3560),r=i(5346),a=i(3218),o=i(346),s=/^\[object .+?Constructor\]$/,l=Function.prototype,h=Object.prototype,u=l.toString,c=h.hasOwnProperty,p=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||r(t))&&(n(t)?p:s).test(o(t))}},8749:(t,e,i)=>{var n=i(4239),r=i(1780),a=i(7005),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&r(t.length)&&!!o[n(t)]}},313:(t,e,i)=>{var n=i(3218),r=i(5726),a=i(3498),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return a(t);var e=r(t),i=[];for(var s in t)("constructor"!=s||!e&&o.call(t,s))&&i.push(s);return i}},2980:(t,e,i)=>{var n=i(6384),r=i(6556),a=i(8483),o=i(9783),s=i(3218),l=i(1704),h=i(6390);t.exports=function u(t,e,i,c,p){t!==e&&a(e,(function(a,l){if(p||(p=new n),s(a))o(t,e,l,i,u,c,p);else{var d=c?c(h(t,l),a,l+"",t,e,p):undefined;d===undefined&&(d=a),r(t,l,d)}}),l)}},9783:(t,e,i)=>{var n=i(6556),r=i(4626),a=i(7133),o=i(278),s=i(8517),l=i(5694),h=i(1469),u=i(9246),c=i(4144),p=i(3560),d=i(3218),f=i(8630),g=i(6719),_=i(6390),m=i(9881);t.exports=function(t,e,i,y,v,L,b){var k=_(t,i),M=_(e,i),x=b.get(M);if(x)n(t,i,x);else{var w=L?L(k,M,i+"",t,e,b):undefined,C=w===undefined;if(C){var P=h(M),E=!P&&c(M),S=!P&&!E&&g(M);w=M,P||E||S?h(k)?w=k:u(k)?w=o(k):E?(C=!1,w=r(M,!0)):S?(C=!1,w=a(M,!0)):w=[]:f(M)||l(M)?(w=k,l(k)?w=m(k):d(k)&&!p(k)||(w=s(M))):C=!1}C&&(b.set(M,w),v(w,M,y,L,b),b["delete"](M)),n(t,i,w)}}},5976:(t,e,i)=>{var n=i(6557),r=i(5357),a=i(61);t.exports=function(t,e){return a(r(t,e,n),t+"")}},6560:(t,e,i)=>{var n=i(5703),r=i(8777),a=i(6557),o=r?function(t,e){return r(t,"toString",{configurable:!0,enumerable:!1,value:n(e),writable:!0})}:a;t.exports=o},2545:t=>{t.exports=function(t,e){for(var i=-1,n=Array(t);++i{var n=i(2705),r=i(9932),a=i(1469),o=i(3448),s=n?n.prototype:undefined,l=s?s.toString:undefined;t.exports=function h(t){if("string"==typeof t)return t;if(a(t))return r(t,h)+"";if(o(t))return l?l.call(t):"";var e=t+"";return"0"==e&&1/t==-Infinity?"-0":e}},1717:t=>{t.exports=function(t){return function(e){return t(e)}}},1811:(t,e,i)=>{var n=i(1469),r=i(5403),a=i(5514),o=i(9833);t.exports=function(t,e){return n(t)?t:r(t,e)?[t]:a(o(t))}},4318:(t,e,i)=>{var n=i(1149);t.exports=function(t){var e=new t.constructor(t.byteLength);return new n(e).set(new n(t)),e}},4626:(t,e,i)=>{t=i.nmd(t);var n=i(5639),r=e&&!e.nodeType&&e,a=r&&t&&!t.nodeType&&t,o=a&&a.exports===r?n.Buffer:undefined,s=o?o.allocUnsafe:undefined;t.exports=function(t,e){if(e)return t.slice();var i=t.length,n=s?s(i):new t.constructor(i);return t.copy(n),n}},7133:(t,e,i)=>{var n=i(4318);t.exports=function(t,e){var i=e?n(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}},278:t=>{t.exports=function(t,e){var i=-1,n=t.length;for(e||(e=Array(n));++i{var n=i(4865),r=i(9465);t.exports=function(t,e,i,a){var o=!i;i||(i={});for(var s=-1,l=e.length;++s{var n=i(5639)["__core-js_shared__"];t.exports=n},1463:(t,e,i)=>{var n=i(5976),r=i(6612);t.exports=function(t){return n((function(e,i){var n=-1,a=i.length,o=a>1?i[a-1]:undefined,s=a>2?i[2]:undefined;for(o=t.length>3&&"function"==typeof o?(a--,o):undefined,s&&r(i[0],i[1],s)&&(o=a<3?undefined:o,a=1),e=Object(e);++n{t.exports=function(t){return function(e,i,n){for(var r=-1,a=Object(e),o=n(e),s=o.length;s--;){var l=o[t?s:++r];if(!1===i(a[l],l,a))break}return e}}},8777:(t,e,i)=>{var n=i(852),r=function(){try{var t=n(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();t.exports=r},1957:(t,e,i)=>{var n="object"==typeof i.g&&i.g&&i.g.Object===Object&&i.g;t.exports=n},5050:(t,e,i)=>{var n=i(7019);t.exports=function(t,e){var i=t.__data__;return n(e)?i["string"==typeof e?"string":"hash"]:i.map}},852:(t,e,i)=>{var n=i(8458),r=i(7801);t.exports=function(t,e){var i=r(t,e);return n(i)?i:undefined}},5924:(t,e,i)=>{var n=i(5569)(Object.getPrototypeOf,Object);t.exports=n},9607:(t,e,i)=>{var n=i(2705),r=Object.prototype,a=r.hasOwnProperty,o=r.toString,s=n?n.toStringTag:undefined;t.exports=function(t){var e=a.call(t,s),i=t[s];try{t[s]=undefined;var n=!0}catch(l){}var r=o.call(t);return n&&(e?t[s]=i:delete t[s]),r}},7801:t=>{t.exports=function(t,e){return null==t?undefined:t[e]}},222:(t,e,i)=>{var n=i(1811),r=i(5694),a=i(1469),o=i(5776),s=i(1780),l=i(327);t.exports=function(t,e,i){for(var h=-1,u=(e=n(e,t)).length,c=!1;++h{var n=i(4536);t.exports=function(){this.__data__=n?n(null):{},this.size=0}},401:t=>{t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},7667:(t,e,i)=>{var n=i(4536),r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(n){var i=e[t];return"__lodash_hash_undefined__"===i?undefined:i}return r.call(e,t)?e[t]:undefined}},1327:(t,e,i)=>{var n=i(4536),r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return n?e[t]!==undefined:r.call(e,t)}},1866:(t,e,i)=>{var n=i(4536);t.exports=function(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=n&&e===undefined?"__lodash_hash_undefined__":e,this}},8517:(t,e,i)=>{var n=i(3118),r=i(5924),a=i(5726);t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:n(r(t))}},5776:t=>{var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,i){var n=typeof t;return!!(i=null==i?9007199254740991:i)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t{var n=i(7813),r=i(8612),a=i(5776),o=i(3218);t.exports=function(t,e,i){if(!o(i))return!1;var s=typeof e;return!!("number"==s?r(i)&&a(e,i.length):"string"==s&&e in i)&&n(i[e],t)}},5403:(t,e,i)=>{var n=i(1469),r=i(3448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(n(t))return!1;var i=typeof t;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=t&&!r(t))||(o.test(t)||!a.test(t)||null!=e&&t in Object(e))}},7019:t=>{t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},5346:(t,e,i)=>{var n,r=i(4429),a=(n=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";t.exports=function(t){return!!a&&a in t}},5726:t=>{var e=Object.prototype;t.exports=function(t){var i=t&&t.constructor;return t===("function"==typeof i&&i.prototype||e)}},7040:t=>{t.exports=function(){this.__data__=[],this.size=0}},4125:(t,e,i)=>{var n=i(8470),r=Array.prototype.splice;t.exports=function(t){var e=this.__data__,i=n(e,t);return!(i<0)&&(i==e.length-1?e.pop():r.call(e,i,1),--this.size,!0)}},2117:(t,e,i)=>{var n=i(8470);t.exports=function(t){var e=this.__data__,i=n(e,t);return i<0?undefined:e[i][1]}},7518:(t,e,i)=>{var n=i(8470);t.exports=function(t){return n(this.__data__,t)>-1}},4705:(t,e,i)=>{var n=i(8470);t.exports=function(t,e){var i=this.__data__,r=n(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}},4785:(t,e,i)=>{var n=i(1989),r=i(8407),a=i(7071);t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||r),string:new n}}},1285:(t,e,i)=>{var n=i(5050);t.exports=function(t){var e=n(this,t)["delete"](t);return this.size-=e?1:0,e}},6e3:(t,e,i)=>{var n=i(5050);t.exports=function(t){return n(this,t).get(t)}},9916:(t,e,i)=>{var n=i(5050);t.exports=function(t){return n(this,t).has(t)}},5265:(t,e,i)=>{var n=i(5050);t.exports=function(t,e){var i=n(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}},4523:(t,e,i)=>{var n=i(8306);t.exports=function(t){var e=n(t,(function(t){return 500===i.size&&i.clear(),t})),i=e.cache;return e}},4536:(t,e,i)=>{var n=i(852)(Object,"create");t.exports=n},3498:t=>{t.exports=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e}},1167:(t,e,i)=>{t=i.nmd(t);var n=i(1957),r=e&&!e.nodeType&&e,a=r&&t&&!t.nodeType&&t,o=a&&a.exports===r&&n.process,s=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}();t.exports=s},2333:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},5569:t=>{t.exports=function(t,e){return function(i){return t(e(i))}}},5357:(t,e,i)=>{var n=i(6874),r=Math.max;t.exports=function(t,e,i){return e=r(e===undefined?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=r(a.length-e,0),l=Array(s);++o{var n=i(1957),r="object"==typeof self&&self&&self.Object===Object&&self,a=n||r||Function("return this")();t.exports=a},6390:t=>{t.exports=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}},61:(t,e,i)=>{var n=i(6560),r=i(1275)(n);t.exports=r},1275:t=>{var e=Date.now;t.exports=function(t){var i=0,n=0;return function(){var r=e(),a=16-(r-n);if(n=r,a>0){if(++i>=800)return arguments[0]}else i=0;return t.apply(undefined,arguments)}}},7465:(t,e,i)=>{var n=i(8407);t.exports=function(){this.__data__=new n,this.size=0}},3779:t=>{t.exports=function(t){var e=this.__data__,i=e["delete"](t);return this.size=e.size,i}},7599:t=>{t.exports=function(t){return this.__data__.get(t)}},4758:t=>{t.exports=function(t){return this.__data__.has(t)}},4309:(t,e,i)=>{var n=i(8407),r=i(7071),a=i(3369);t.exports=function(t,e){var i=this.__data__;if(i instanceof n){var o=i.__data__;if(!r||o.length<199)return o.push([t,e]),this.size=++i.size,this;i=this.__data__=new a(o)}return i.set(t,e),this.size=i.size,this}},5514:(t,e,i)=>{var n=i(4523),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(r,(function(t,i,n,r){e.push(n?r.replace(a,"$1"):i||t)})),e}));t.exports=o},327:(t,e,i)=>{var n=i(3448);t.exports=function(t){if("string"==typeof t||n(t))return t;var e=t+"";return"0"==e&&1/t==-Infinity?"-0":e}},346:t=>{var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(i){}try{return t+""}catch(i){}}return""}},5703:t=>{t.exports=function(t){return function(){return t}}},7813:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},7361:(t,e,i)=>{var n=i(7786);t.exports=function(t,e,i){var r=null==t?undefined:n(t,e);return r===undefined?i:r}},8721:(t,e,i)=>{var n=i(8565),r=i(222);t.exports=function(t,e){return null!=t&&r(t,e,n)}},6557:t=>{t.exports=function(t){return t}},5694:(t,e,i)=>{var n=i(9454),r=i(7005),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,l=n(function(){return arguments}())?n:function(t){return r(t)&&o.call(t,"callee")&&!s.call(t,"callee")};t.exports=l},1469:t=>{var e=Array.isArray;t.exports=e},8612:(t,e,i)=>{var n=i(3560),r=i(1780);t.exports=function(t){return null!=t&&r(t.length)&&!n(t)}},9246:(t,e,i)=>{var n=i(8612),r=i(7005);t.exports=function(t){return r(t)&&n(t)}},4144:(t,e,i)=>{t=i.nmd(t);var n=i(5639),r=i(5062),a=e&&!e.nodeType&&e,o=a&&t&&!t.nodeType&&t,s=o&&o.exports===a?n.Buffer:undefined,l=(s?s.isBuffer:undefined)||r;t.exports=l},3560:(t,e,i)=>{var n=i(4239),r=i(3218);t.exports=function(t){if(!r(t))return!1;var e=n(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1780:t=>{t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},3218:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},7005:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},8630:(t,e,i)=>{var n=i(4239),r=i(5924),a=i(7005),o=Function.prototype,s=Object.prototype,l=o.toString,h=s.hasOwnProperty,u=l.call(Object);t.exports=function(t){if(!a(t)||"[object Object]"!=n(t))return!1;var e=r(t);if(null===e)return!0;var i=h.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&l.call(i)==u}},3448:(t,e,i)=>{var n=i(4239),r=i(7005);t.exports=function(t){return"symbol"==typeof t||r(t)&&"[object Symbol]"==n(t)}},6719:(t,e,i)=>{var n=i(8749),r=i(1717),a=i(1167),o=a&&a.isTypedArray,s=o?r(o):n;t.exports=s},1704:(t,e,i)=>{var n=i(4636),r=i(313),a=i(8612);t.exports=function(t){return a(t)?n(t,!0):r(t)}},8306:(t,e,i)=>{var n=i(3369);function r(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var i=function(){var n=arguments,r=e?e.apply(this,n):n[0],a=i.cache;if(a.has(r))return a.get(r);var o=t.apply(this,n);return i.cache=a.set(r,o)||a,o};return i.cache=new(r.Cache||n),i}r.Cache=n,t.exports=r},2492:(t,e,i)=>{var n=i(2980),r=i(1463)((function(t,e,i){n(t,e,i)}));t.exports=r},5062:t=>{t.exports=function(){return!1}},9881:(t,e,i)=>{var n=i(8363),r=i(1704);t.exports=function(t){return n(t,r(t))}},9833:(t,e,i)=>{var n=i(531);t.exports=function(t){return null==t?"":n(t)}},2676:function(t){t.exports=function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var i=0;ie?1:t0))break;if(null===e.right)break;if(i(t,e.right.key)>0&&(l=e.right,e.right=l.left,l.left=e,null===(e=l).right))break;a.right=e,a=e,e=e.right}}return a.right=e.left,o.left=e.right,e.left=r.right,e.right=r.left,e}function o(t,e,i,r){var o=new n(t,e);if(null===i)return o.left=o.right=null,o;var s=r(t,(i=a(t,i,r)).key);return s<0?(o.left=i.left,o.right=i,i.left=null):s>=0&&(o.right=i.right,o.left=i,i.right=null),o}function s(t,e,i){var n=null,r=null;if(e){var o=i((e=a(t,e,i)).key,t);0===o?(n=e.left,r=e.right):o<0?(r=e.right,e.right=null,n=e):(n=e.left,e.left=null,r=e)}return{left:n,right:r}}function l(t,e,i){return null===e?t:(null===t||((e=a(t.key,e,i)).left=t),e)}function h(t,e,i,n,r){if(t){n(e+(i?"└── ":"├── ")+r(t)+"\n");var a=e+(i?" ":"│ ");t.left&&h(t.left,a,!1,n,r),t.right&&h(t.right,a,!0,n,r)}}var u=function(){function t(t){void 0===t&&(t=r),this._root=null,this._size=0,this._comparator=t}return t.prototype.insert=function(t,e){return this._size++,this._root=o(t,e,this._root,this._comparator)},t.prototype.add=function(t,e){var i=new n(t,e);null===this._root&&(i.left=i.right=null,this._size++,this._root=i);var r=this._comparator,o=a(t,this._root,r),s=r(t,o.key);return 0===s?this._root=o:(s<0?(i.left=o.left,i.right=o,o.left=null):s>0&&(i.right=o.right,i.left=o,o.right=null),this._size++,this._root=i),this._root},t.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator)},t.prototype._remove=function(t,e,i){var n;return null===e?null:0===i(t,(e=a(t,e,i)).key)?(null===e.left?n=e.right:(n=a(t,e.left,i)).right=e.right,this._size--,n):e},t.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=a(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null},t.prototype.findStatic=function(t){for(var e=this._root,i=this._comparator;e;){var n=i(t,e.key);if(0===n)return e;e=n<0?e.left:e.right}return null},t.prototype.find=function(t){return this._root&&(this._root=a(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root},t.prototype.contains=function(t){for(var e=this._root,i=this._comparator;e;){var n=i(t,e.key);if(0===n)return!0;e=n<0?e.left:e.right}return!1},t.prototype.forEach=function(t,e){for(var i=this._root,n=[],r=!1;!r;)null!==i?(n.push(i),i=i.left):0!==n.length?(i=n.pop(),t.call(e,i),i=i.right):r=!0;return this},t.prototype.range=function(t,e,i,n){for(var r=[],a=this._comparator,o=this._root;0!==r.length||o;)if(o)r.push(o),o=o.left;else{if(a((o=r.pop()).key,e)>0)break;if(a(o.key,t)>=0&&i.call(n,o))return this;o=o.right}return this},t.prototype.keys=function(){var t=[];return this.forEach((function(e){var i=e.key;return t.push(i)})),t},t.prototype.values=function(){var t=[];return this.forEach((function(e){var i=e.data;return t.push(i)})),t},t.prototype.min=function(){return this._root?this.minNode(this._root).key:null},t.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},t.prototype.minNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.left;)t=t.left;return t},t.prototype.maxNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.right;)t=t.right;return t},t.prototype.at=function(t){for(var e=this._root,i=!1,n=0,r=[];!i;)if(e)r.push(e),e=e.left;else if(r.length>0){if(e=r.pop(),n===t)return e;n++,e=e.right}else i=!0;return null},t.prototype.next=function(t){var e=this._root,i=null;if(t.right){for(i=t.right;i.left;)i=i.left;return i}for(var n=this._comparator;e;){var r=n(t.key,e.key);if(0===r)break;r<0?(i=e,e=e.left):e=e.right}return i},t.prototype.prev=function(t){var e=this._root,i=null;if(null!==t.left){for(i=t.left;i.right;)i=i.right;return i}for(var n=this._comparator;e;){var r=n(t.key,e.key);if(0===r)break;r<0?e=e.left:(i=e,e=e.right)}return i},t.prototype.clear=function(){return this._root=null,this._size=0,this},t.prototype.toList=function(){return d(this._root)},t.prototype.load=function(t,e,i){void 0===e&&(e=[]),void 0===i&&(i=!1);var n=t.length,r=this._comparator;if(i&&_(t,e,0,n-1,r),null===this._root)this._root=c(t,e,0,n),this._size=n;else{var a=g(this.toList(),p(t,e),r);n=this._size+n,this._root=f({head:a},0,n)}return this},t.prototype.isEmpty=function(){return null===this._root},Object.defineProperty(t.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),t.prototype.toString=function(t){void 0===t&&(t=function(t){return String(t.key)});var e=[];return h(this._root,"",!0,(function(t){return e.push(t)}),t),e.join("")},t.prototype.update=function(t,e,i){var n=this._comparator,r=s(t,this._root,n),a=r.left,h=r.right;n(t,e)<0?h=o(e,i,h,n):a=o(e,i,a,n),this._root=l(a,h,n)},t.prototype.split=function(t){return s(t,this._root,this._comparator)},t}();function c(t,e,i,r){var a=r-i;if(a>0){var o=i+Math.floor(a/2),s=t[o],l=e[o],h=new n(s,l);return h.left=c(t,e,i,o),h.right=c(t,e,o+1,r),h}return null}function p(t,e){for(var i=new n(null,null),r=i,a=0;a0?e=(e=o=o.next=i.pop()).right:r=!0;return o.next=null,a.next}function f(t,e,i){var n=i-e;if(n>0){var r=e+Math.floor(n/2),a=f(t,e,r),o=t.head;return o.left=a,t.head=t.head.next,o.right=f(t,r+1,i),o}return null}function g(t,e,i){for(var r=new n(null,null),a=r,o=t,s=e;null!==o&&null!==s;)i(o.key,s.key)<0?(a.next=o,o=o.next):(a.next=s,s=s.next),a=a.next;return null!==o?a.next=o:null!==s&&(a.next=s),r.next}function _(t,e,i,n,r){if(!(i>=n)){for(var a=t[i+n>>1],o=i-1,s=n+1;;){do{o++}while(r(t[o],a)<0);do{s--}while(r(t[s],a)>0);if(o>=s)break;var l=t[o];t[o]=t[s],t[s]=l,l=e[o],e[o]=e[s],e[s]=l}_(t,e,i,s,r),_(t,e,s+1,n,r)}}var m=function(t,e){return t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y},y=function(t,e){if(e.ur.xe.x?1:t.ye.y?1:0}}]),i(e,[{key:"link",value:function(t){if(t.point===this.point)throw new Error("Tried to link already linked events");for(var e=t.point.events,i=0,n=e.length;i=0&&l>=0?oh?-1:0:a<0&&l<0?oh?1:0:la?1:0}}}]),e}(),I=0,j=function(){function e(i,n,r,a){t(this,e),this.id=++I,this.leftSE=i,i.segment=this,i.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=i,this.rings=r,this.windings=a}return i(e,null,[{key:"compare",value:function(t,e){var i=t.leftSE.point.x,n=e.leftSE.point.x,r=t.rightSE.point.x,a=e.rightSE.point.x;if(ao&&s>l)return-1;var u=t.comparePoint(e.leftSE.point);if(u<0)return 1;if(u>0)return-1;var c=e.comparePoint(t.rightSE.point);return 0!==c?c:-1}if(i>n){if(os&&o>h)return 1;var p=e.comparePoint(t.leftSE.point);if(0!==p)return p;var d=t.comparePoint(e.rightSE.point);return d<0?1:d>0?-1:1}if(os)return 1;if(ra){var g=t.comparePoint(e.rightSE.point);if(g<0)return 1;if(g>0)return-1}if(r!==a){var _=l-o,m=r-i,y=h-s,v=a-n;if(_>m&&yv)return-1}return r>a?1:rh?1:t.ide.id?1:0}}]),i(e,[{key:"replaceRightSE",value:function(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var t=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:te?t:e}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.leftSE.point,i=this.rightSE.point,n=this.vector();if(e.x===i.x)return t.x===e.x?0:t.x0&&s.swapEvents(),T.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),a.checkForConsuming()),i}},{key:"swapEvents",value:function(){var t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var e=0,i=this.windings.length;e0){var a=i;i=n,n=a}if(i.prev===n){var o=i;i=n,n=o}for(var s=0,l=n.rings.length;s0))throw new Error("Tried to create degenerate segment at [".concat(t.x,", ").concat(t.y,"]"));r=i,a=t,o=-1}return new e(new T(r,!0),new T(a,!1),[n],[o])}}]),e}(),A=function(){function e(i,n,r){if(t(this,e),!Array.isArray(i)||0===i.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=r,this.segments=[],"number"!=typeof i[0][0]||"number"!=typeof i[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var a=x.round(i[0][0],i[0][1]);this.bbox={ll:{x:a.x,y:a.y},ur:{x:a.x,y:a.y}};for(var o=a,s=1,l=i.length;sthis.bbox.ur.x&&(this.bbox.ur.x=h.x),h.y>this.bbox.ur.y&&(this.bbox.ur.y=h.y),o=h)}a.x===o.x&&a.y===o.y||this.segments.push(j.fromRing(o,a,this))}return i(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,i=this.segments.length;ethis.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.interiorRings.push(o)}this.multiPoly=n}return i(e,[{key:"getSweepEvents",value:function(){for(var t=this.exteriorRing.getSweepEvents(),e=0,i=this.interiorRings.length;ethis.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.polys.push(o)}this.isSubject=n}return i(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,i=this.polys.length;e0&&(t=n)}for(var r=t.segment.prevInResult(),a=r?r.prevInResult():null;;){if(!r)return null;if(!a)return r.ringOut;if(a.ringOut!==r.ringOut)return a.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=a.prevInResult(),a=r?r.prevInResult():null}}}]),e}(),F=function(){function e(i){t(this,e),this.exteriorRing=i,i.poly=this,this.interiorRings=[]}return i(e,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.poly=this}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,i=this.interiorRings.length;e1&&arguments[1]!==undefined?arguments[1]:j.compare;t(this,e),this.queue=i,this.tree=new u(n),this.segments=[]}return i(e,[{key:"process",value:function(t){var e=t.segment,i=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(e),i;var n=t.isLeft?this.tree.insert(e):this.tree.find(e);if(!n)throw new Error("Unable to find segment #".concat(e.id," ")+"[".concat(e.leftSE.point.x,", ").concat(e.leftSE.point.y,"] -> ")+"[".concat(e.rightSE.point.x,", ").concat(e.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var r=n,a=n,o=undefined,s=undefined;o===undefined;)null===(r=this.tree.prev(r))?o=null:r.key.consumedBy===undefined&&(o=r.key);for(;s===undefined;)null===(a=this.tree.next(a))?s=null:a.key.consumedBy===undefined&&(s=a.key);if(t.isLeft){var l=null;if(o){var h=o.getIntersection(e);if(null!==h&&(e.isAnEndpoint(h)||(l=h),!o.isAnEndpoint(h)))for(var u=this._splitSafely(o,h),c=0,p=u.length;c0?(this.tree.remove(e),i.push(t)):(this.segments.push(e),e.prev=o)}else{if(o&&s){var k=o.getIntersection(s);if(null!==k){if(!o.isAnEndpoint(k))for(var M=this._splitSafely(o,k),x=0,w=M.length;xK)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var b=new V(f),k=f.size,M=f.pop();M;){var w=M.key;if(f.size===k){var C=w.segment;throw new Error("Unable to pop() ".concat(w.isLeft?"left":"right"," SweepEvent ")+"[".concat(w.point.x,", ").concat(w.point.y,"] from segment #").concat(C.id," ")+"[".concat(C.leftSE.point.x,", ").concat(C.leftSE.point.y,"] -> ")+"[".concat(C.rightSE.point.x,", ").concat(C.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(f.size>K)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(b.segments.length>H)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var P=b.process(w),E=0,S=P.length;E1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;nn;){if(r-n>600){var o=r-n+1,l=i-n+1,h=Math.log(o),u=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*u*(o-u)/o)*(l-o/2<0?-1:1);s(t,i,Math.max(n,Math.floor(i-l*u/o+c)),Math.min(r,Math.floor(i+(o-l)*u/o+c)),a)}var p=t[i],d=n,f=r;for(e(t,n,i),a(t[r],p)>0&&e(t,n,r);d0;)f--}0===a(t[n],p)?e(t,n,f):e(t,++f,r),f<=i&&(n=f+1),i<=f&&(r=f-1)}}(t,n,r||0,a||t.length-1,o||i)}function e(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function i(t,e){return te?1:0}var n=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(t,e,i){if(!i)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function f(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function g(e,i,n,r,a){for(var o=[i,n];o.length;)if(!((n=o.pop())-(i=o.pop())<=r)){var s=i+Math.ceil((n-i)/r/2)*r;t(e,s,i,n,a),o.push(i,s,s,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(t){var e=this.data,i=[];if(!d(t,e))return i;for(var n=this.toBBox,r=[];e;){for(var a=0;a=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)},n.prototype._split=function(t,e){var i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);var o=this._chooseSplitIndex(i,r,n),s=f(i.children.splice(o,i.children.length-o));s.height=i.height,s.leaf=i.leaf,a(i,this.toBBox),a(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(i,s)},n.prototype._splitRoot=function(t,e){this.data=f([t,e]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(t,e,i){for(var n,r,a,s,l,h,c,p=1/0,d=1/0,f=e;f<=i-e;f++){var g=o(t,0,f,this.toBBox),_=o(t,f,i,this.toBBox),m=(r=g,a=_,s=void 0,l=void 0,h=void 0,c=void 0,s=Math.max(r.minX,a.minX),l=Math.max(r.minY,a.minY),h=Math.min(r.maxX,a.maxX),c=Math.min(r.maxY,a.maxY),Math.max(0,h-s)*Math.max(0,c-l)),y=u(g)+u(_);m=e;d--){var f=t.children[d];s(l,t.leaf?r(f):f),h+=c(l)}return h},n.prototype._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)s(e[n],t)},n.prototype._condense=function(t){for(var e=t.length-1,i=void 0;e>=0;e--)0===t[e].children.length?e>0?(i=t[e-1].children).splice(i.indexOf(t[e]),1):this.clear():a(t[e],this.toBBox)},n}()}},e={};function i(n){var r=e[n];if(r!==undefined)return r.exports;var a=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(a.exports,a,a.exports,i),a.loaded=!0,a.exports}i.n=t=>{var e=t&&t.__esModule?()=>t["default"]:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);i(5975)})(); \ No newline at end of file diff --git a/web/lib/components/leaflet/images/layers-2x.png b/web/lib/components/leaflet/images/layers-2x.png new file mode 100644 index 0000000..200c333 Binary files /dev/null and b/web/lib/components/leaflet/images/layers-2x.png differ diff --git a/web/lib/components/leaflet/images/layers.png b/web/lib/components/leaflet/images/layers.png new file mode 100644 index 0000000..1a72e57 Binary files /dev/null and b/web/lib/components/leaflet/images/layers.png differ diff --git a/web/lib/components/leaflet/images/marker-icon-2x.png b/web/lib/components/leaflet/images/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 Binary files /dev/null and b/web/lib/components/leaflet/images/marker-icon-2x.png differ diff --git a/web/lib/components/leaflet/images/marker-icon.png b/web/lib/components/leaflet/images/marker-icon.png new file mode 100644 index 0000000..950edf2 Binary files /dev/null and b/web/lib/components/leaflet/images/marker-icon.png differ diff --git a/web/lib/components/leaflet/images/marker-shadow.png b/web/lib/components/leaflet/images/marker-shadow.png new file mode 100644 index 0000000..9fd2979 Binary files /dev/null and b/web/lib/components/leaflet/images/marker-shadow.png differ diff --git a/web/lib/components/leaflet/leaflet-src.esm.js b/web/lib/components/leaflet/leaflet-src.esm.js new file mode 100644 index 0000000..1bb1d6a --- /dev/null +++ b/web/lib/components/leaflet/leaflet-src.esm.js @@ -0,0 +1,14419 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ + +var version = "1.9.4"; + +/* + * @namespace Util + * + * Various utility functions, used by Leaflet internally. + */ + +// @function extend(dest: Object, src?: Object): Object +// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut. +function extend(dest) { + var i, j, len, src; + + for (j = 1, len = arguments.length; j < len; j++) { + src = arguments[j]; + for (i in src) { + dest[i] = src[i]; + } + } + return dest; +} + +// @function create(proto: Object, properties?: Object): Object +// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create) +var create$2 = Object.create || (function () { + function F() {} + return function (proto) { + F.prototype = proto; + return new F(); + }; +})(); + +// @function bind(fn: Function, …): Function +// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind). +// Has a `L.bind()` shortcut. +function bind(fn, obj) { + var slice = Array.prototype.slice; + + if (fn.bind) { + return fn.bind.apply(fn, slice.call(arguments, 1)); + } + + var args = slice.call(arguments, 2); + + return function () { + return fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments); + }; +} + +// @property lastId: Number +// Last unique ID used by [`stamp()`](#util-stamp) +var lastId = 0; + +// @function stamp(obj: Object): Number +// Returns the unique ID of an object, assigning it one if it doesn't have it. +function stamp(obj) { + if (!('_leaflet_id' in obj)) { + obj['_leaflet_id'] = ++lastId; + } + return obj._leaflet_id; +} + +// @function throttle(fn: Function, time: Number, context: Object): Function +// Returns a function which executes function `fn` with the given scope `context` +// (so that the `this` keyword refers to `context` inside `fn`'s code). The function +// `fn` will be called no more than one time per given amount of `time`. The arguments +// received by the bound function will be any arguments passed when binding the +// function, followed by any arguments passed when invoking the bound function. +// Has an `L.throttle` shortcut. +function throttle(fn, time, context) { + var lock, args, wrapperFn, later; + + later = function () { + // reset lock and call if queued + lock = false; + if (args) { + wrapperFn.apply(context, args); + args = false; + } + }; + + wrapperFn = function () { + if (lock) { + // called too soon, queue to call later + args = arguments; + + } else { + // call and lock until later + fn.apply(context, arguments); + setTimeout(later, time); + lock = true; + } + }; + + return wrapperFn; +} + +// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number +// Returns the number `num` modulo `range` in such a way so it lies within +// `range[0]` and `range[1]`. The returned value will be always smaller than +// `range[1]` unless `includeMax` is set to `true`. +function wrapNum(x, range, includeMax) { + var max = range[1], + min = range[0], + d = max - min; + return x === max && includeMax ? x : ((x - min) % d + d) % d + min; +} + +// @function falseFn(): Function +// Returns a function which always returns `false`. +function falseFn() { return false; } + +// @function formatNum(num: Number, precision?: Number|false): Number +// Returns the number `num` rounded with specified `precision`. +// The default `precision` value is 6 decimal places. +// `false` can be passed to skip any processing (can be useful to avoid round-off errors). +function formatNum(num, precision) { + if (precision === false) { return num; } + var pow = Math.pow(10, precision === undefined ? 6 : precision); + return Math.round(num * pow) / pow; +} + +// @function trim(str: String): String +// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) +function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); +} + +// @function splitWords(str: String): String[] +// Trims and splits the string on whitespace and returns the array of parts. +function splitWords(str) { + return trim(str).split(/\s+/); +} + +// @function setOptions(obj: Object, options: Object): Object +// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut. +function setOptions(obj, options) { + if (!Object.prototype.hasOwnProperty.call(obj, 'options')) { + obj.options = obj.options ? create$2(obj.options) : {}; + } + for (var i in options) { + obj.options[i] = options[i]; + } + return obj.options; +} + +// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String +// Converts an object into a parameter URL string, e.g. `{a: "foo", b: "bar"}` +// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will +// be appended at the end. If `uppercase` is `true`, the parameter names will +// be uppercased (e.g. `'?A=foo&B=bar'`) +function getParamString(obj, existingUrl, uppercase) { + var params = []; + for (var i in obj) { + params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i])); + } + return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&'); +} + +var templateRe = /\{ *([\w_ -]+) *\}/g; + +// @function template(str: String, data: Object): String +// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'` +// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string +// `('Hello foo, bar')`. You can also specify functions instead of strings for +// data values — they will be evaluated passing `data` as an argument. +function template(str, data) { + return str.replace(templateRe, function (str, key) { + var value = data[key]; + + if (value === undefined) { + throw new Error('No value provided for variable ' + str); + + } else if (typeof value === 'function') { + value = value(data); + } + return value; + }); +} + +// @function isArray(obj): Boolean +// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) +var isArray = Array.isArray || function (obj) { + return (Object.prototype.toString.call(obj) === '[object Array]'); +}; + +// @function indexOf(array: Array, el: Object): Number +// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) +function indexOf(array, el) { + for (var i = 0; i < array.length; i++) { + if (array[i] === el) { return i; } + } + return -1; +} + +// @property emptyImageUrl: String +// Data URI string containing a base64-encoded empty GIF image. +// Used as a hack to free memory from unused images on WebKit-powered +// mobile devices (by setting image `src` to this string). +var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; + +// inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/ + +function getPrefixed(name) { + return window['webkit' + name] || window['moz' + name] || window['ms' + name]; +} + +var lastTime = 0; + +// fallback for IE 7-8 +function timeoutDefer(fn) { + var time = +new Date(), + timeToCall = Math.max(0, 16 - (time - lastTime)); + + lastTime = time + timeToCall; + return window.setTimeout(fn, timeToCall); +} + +var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer; +var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') || + getPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); }; + +// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number +// Schedules `fn` to be executed when the browser repaints. `fn` is bound to +// `context` if given. When `immediate` is set, `fn` is called immediately if +// the browser doesn't have native support for +// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame), +// otherwise it's delayed. Returns a request ID that can be used to cancel the request. +function requestAnimFrame(fn, context, immediate) { + if (immediate && requestFn === timeoutDefer) { + fn.call(context); + } else { + return requestFn.call(window, bind(fn, context)); + } +} + +// @function cancelAnimFrame(id: Number): undefined +// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame). +function cancelAnimFrame(id) { + if (id) { + cancelFn.call(window, id); + } +} + +var Util = { + __proto__: null, + extend: extend, + create: create$2, + bind: bind, + get lastId () { return lastId; }, + stamp: stamp, + throttle: throttle, + wrapNum: wrapNum, + falseFn: falseFn, + formatNum: formatNum, + trim: trim, + splitWords: splitWords, + setOptions: setOptions, + getParamString: getParamString, + template: template, + isArray: isArray, + indexOf: indexOf, + emptyImageUrl: emptyImageUrl, + requestFn: requestFn, + cancelFn: cancelFn, + requestAnimFrame: requestAnimFrame, + cancelAnimFrame: cancelAnimFrame +}; + +// @class Class +// @aka L.Class + +// @section +// @uninheritable + +// Thanks to John Resig and Dean Edwards for inspiration! + +function Class() {} + +Class.extend = function (props) { + + // @function extend(props: Object): Function + // [Extends the current class](#class-inheritance) given the properties to be included. + // Returns a Javascript function that is a class constructor (to be called with `new`). + var NewClass = function () { + + setOptions(this); + + // call the constructor + if (this.initialize) { + this.initialize.apply(this, arguments); + } + + // call all constructor hooks + this.callInitHooks(); + }; + + var parentProto = NewClass.__super__ = this.prototype; + + var proto = create$2(parentProto); + proto.constructor = NewClass; + + NewClass.prototype = proto; + + // inherit parent's statics + for (var i in this) { + if (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') { + NewClass[i] = this[i]; + } + } + + // mix static properties into the class + if (props.statics) { + extend(NewClass, props.statics); + } + + // mix includes into the prototype + if (props.includes) { + checkDeprecatedMixinEvents(props.includes); + extend.apply(null, [proto].concat(props.includes)); + } + + // mix given properties into the prototype + extend(proto, props); + delete proto.statics; + delete proto.includes; + + // merge options + if (proto.options) { + proto.options = parentProto.options ? create$2(parentProto.options) : {}; + extend(proto.options, props.options); + } + + proto._initHooks = []; + + // add method for calling all hooks + proto.callInitHooks = function () { + + if (this._initHooksCalled) { return; } + + if (parentProto.callInitHooks) { + parentProto.callInitHooks.call(this); + } + + this._initHooksCalled = true; + + for (var i = 0, len = proto._initHooks.length; i < len; i++) { + proto._initHooks[i].call(this); + } + }; + + return NewClass; +}; + + +// @function include(properties: Object): this +// [Includes a mixin](#class-includes) into the current class. +Class.include = function (props) { + var parentOptions = this.prototype.options; + extend(this.prototype, props); + if (props.options) { + this.prototype.options = parentOptions; + this.mergeOptions(props.options); + } + return this; +}; + +// @function mergeOptions(options: Object): this +// [Merges `options`](#class-options) into the defaults of the class. +Class.mergeOptions = function (options) { + extend(this.prototype.options, options); + return this; +}; + +// @function addInitHook(fn: Function): this +// Adds a [constructor hook](#class-constructor-hooks) to the class. +Class.addInitHook = function (fn) { // (Function) || (String, args...) + var args = Array.prototype.slice.call(arguments, 1); + + var init = typeof fn === 'function' ? fn : function () { + this[fn].apply(this, args); + }; + + this.prototype._initHooks = this.prototype._initHooks || []; + this.prototype._initHooks.push(init); + return this; +}; + +function checkDeprecatedMixinEvents(includes) { + /* global L: true */ + if (typeof L === 'undefined' || !L || !L.Mixin) { return; } + + includes = isArray(includes) ? includes : [includes]; + + for (var i = 0; i < includes.length; i++) { + if (includes[i] === L.Mixin.Events) { + console.warn('Deprecated include of L.Mixin.Events: ' + + 'this property will be removed in future releases, ' + + 'please inherit from L.Evented instead.', new Error().stack); + } + } +} + +/* + * @class Evented + * @aka L.Evented + * @inherits Class + * + * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event). + * + * @example + * + * ```js + * map.on('click', function(e) { + * alert(e.latlng); + * } ); + * ``` + * + * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function: + * + * ```js + * function onClick(e) { ... } + * + * map.on('click', onClick); + * map.off('click', onClick); + * ``` + */ + +var Events = { + /* @method on(type: String, fn: Function, context?: Object): this + * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`). + * + * @alternative + * @method on(eventMap: Object): this + * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}` + */ + on: function (types, fn, context) { + + // types can be a map of types/handlers + if (typeof types === 'object') { + for (var type in types) { + // we don't process space-separated events here for performance; + // it's a hot path since Layer uses the on(obj) syntax + this._on(type, types[type], fn); + } + + } else { + // types can be a string of space-separated words + types = splitWords(types); + + for (var i = 0, len = types.length; i < len; i++) { + this._on(types[i], fn, context); + } + } + + return this; + }, + + /* @method off(type: String, fn?: Function, context?: Object): this + * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener. + * + * @alternative + * @method off(eventMap: Object): this + * Removes a set of type/listener pairs. + * + * @alternative + * @method off: this + * Removes all listeners to all events on the object. This includes implicitly attached events. + */ + off: function (types, fn, context) { + + if (!arguments.length) { + // clear all listeners if called without arguments + delete this._events; + + } else if (typeof types === 'object') { + for (var type in types) { + this._off(type, types[type], fn); + } + + } else { + types = splitWords(types); + + var removeAll = arguments.length === 1; + for (var i = 0, len = types.length; i < len; i++) { + if (removeAll) { + this._off(types[i]); + } else { + this._off(types[i], fn, context); + } + } + } + + return this; + }, + + // attach listener (without syntactic sugar now) + _on: function (type, fn, context, _once) { + if (typeof fn !== 'function') { + console.warn('wrong listener type: ' + typeof fn); + return; + } + + // check if fn already there + if (this._listens(type, fn, context) !== false) { + return; + } + + if (context === this) { + // Less memory footprint. + context = undefined; + } + + var newListener = {fn: fn, ctx: context}; + if (_once) { + newListener.once = true; + } + + this._events = this._events || {}; + this._events[type] = this._events[type] || []; + this._events[type].push(newListener); + }, + + _off: function (type, fn, context) { + var listeners, + i, + len; + + if (!this._events) { + return; + } + + listeners = this._events[type]; + if (!listeners) { + return; + } + + if (arguments.length === 1) { // remove all + if (this._firingCount) { + // Set all removed listeners to noop + // so they are not called if remove happens in fire + for (i = 0, len = listeners.length; i < len; i++) { + listeners[i].fn = falseFn; + } + } + // clear all listeners for a type if function isn't specified + delete this._events[type]; + return; + } + + if (typeof fn !== 'function') { + console.warn('wrong listener type: ' + typeof fn); + return; + } + + // find fn and remove it + var index = this._listens(type, fn, context); + if (index !== false) { + var listener = listeners[index]; + if (this._firingCount) { + // set the removed listener to noop so that's not called if remove happens in fire + listener.fn = falseFn; + + /* copy array in case events are being fired */ + this._events[type] = listeners = listeners.slice(); + } + listeners.splice(index, 1); + } + }, + + // @method fire(type: String, data?: Object, propagate?: Boolean): this + // Fires an event of the specified type. You can optionally provide a data + // object — the first argument of the listener function will contain its + // properties. The event can optionally be propagated to event parents. + fire: function (type, data, propagate) { + if (!this.listens(type, propagate)) { return this; } + + var event = extend({}, data, { + type: type, + target: this, + sourceTarget: data && data.sourceTarget || this + }); + + if (this._events) { + var listeners = this._events[type]; + if (listeners) { + this._firingCount = (this._firingCount + 1) || 1; + for (var i = 0, len = listeners.length; i < len; i++) { + var l = listeners[i]; + // off overwrites l.fn, so we need to copy fn to a var + var fn = l.fn; + if (l.once) { + this.off(type, fn, l.ctx); + } + fn.call(l.ctx || this, event); + } + + this._firingCount--; + } + } + + if (propagate) { + // propagate the event to parents (set with addEventParent) + this._propagateEvent(event); + } + + return this; + }, + + // @method listens(type: String, propagate?: Boolean): Boolean + // @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean + // Returns `true` if a particular event type has any listeners attached to it. + // The verification can optionally be propagated, it will return `true` if parents have the listener attached to it. + listens: function (type, fn, context, propagate) { + if (typeof type !== 'string') { + console.warn('"string" type argument expected'); + } + + // we don't overwrite the input `fn` value, because we need to use it for propagation + var _fn = fn; + if (typeof fn !== 'function') { + propagate = !!fn; + _fn = undefined; + context = undefined; + } + + var listeners = this._events && this._events[type]; + if (listeners && listeners.length) { + if (this._listens(type, _fn, context) !== false) { + return true; + } + } + + if (propagate) { + // also check parents for listeners if event propagates + for (var id in this._eventParents) { + if (this._eventParents[id].listens(type, fn, context, propagate)) { return true; } + } + } + return false; + }, + + // returns the index (number) or false + _listens: function (type, fn, context) { + if (!this._events) { + return false; + } + + var listeners = this._events[type] || []; + if (!fn) { + return !!listeners.length; + } + + if (context === this) { + // Less memory footprint. + context = undefined; + } + + for (var i = 0, len = listeners.length; i < len; i++) { + if (listeners[i].fn === fn && listeners[i].ctx === context) { + return i; + } + } + return false; + + }, + + // @method once(…): this + // Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed. + once: function (types, fn, context) { + + // types can be a map of types/handlers + if (typeof types === 'object') { + for (var type in types) { + // we don't process space-separated events here for performance; + // it's a hot path since Layer uses the on(obj) syntax + this._on(type, types[type], fn, true); + } + + } else { + // types can be a string of space-separated words + types = splitWords(types); + + for (var i = 0, len = types.length; i < len; i++) { + this._on(types[i], fn, context, true); + } + } + + return this; + }, + + // @method addEventParent(obj: Evented): this + // Adds an event parent - an `Evented` that will receive propagated events + addEventParent: function (obj) { + this._eventParents = this._eventParents || {}; + this._eventParents[stamp(obj)] = obj; + return this; + }, + + // @method removeEventParent(obj: Evented): this + // Removes an event parent, so it will stop receiving propagated events + removeEventParent: function (obj) { + if (this._eventParents) { + delete this._eventParents[stamp(obj)]; + } + return this; + }, + + _propagateEvent: function (e) { + for (var id in this._eventParents) { + this._eventParents[id].fire(e.type, extend({ + layer: e.target, + propagatedFrom: e.target + }, e), true); + } + } +}; + +// aliases; we should ditch those eventually + +// @method addEventListener(…): this +// Alias to [`on(…)`](#evented-on) +Events.addEventListener = Events.on; + +// @method removeEventListener(…): this +// Alias to [`off(…)`](#evented-off) + +// @method clearAllEventListeners(…): this +// Alias to [`off()`](#evented-off) +Events.removeEventListener = Events.clearAllEventListeners = Events.off; + +// @method addOneTimeEventListener(…): this +// Alias to [`once(…)`](#evented-once) +Events.addOneTimeEventListener = Events.once; + +// @method fireEvent(…): this +// Alias to [`fire(…)`](#evented-fire) +Events.fireEvent = Events.fire; + +// @method hasEventListeners(…): Boolean +// Alias to [`listens(…)`](#evented-listens) +Events.hasEventListeners = Events.listens; + +var Evented = Class.extend(Events); + +/* + * @class Point + * @aka L.Point + * + * Represents a point with `x` and `y` coordinates in pixels. + * + * @example + * + * ```js + * var point = L.point(200, 300); + * ``` + * + * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent: + * + * ```js + * map.panBy([200, 300]); + * map.panBy(L.point(200, 300)); + * ``` + * + * Note that `Point` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function Point(x, y, round) { + // @property x: Number; The `x` coordinate of the point + this.x = (round ? Math.round(x) : x); + // @property y: Number; The `y` coordinate of the point + this.y = (round ? Math.round(y) : y); +} + +var trunc = Math.trunc || function (v) { + return v > 0 ? Math.floor(v) : Math.ceil(v); +}; + +Point.prototype = { + + // @method clone(): Point + // Returns a copy of the current point. + clone: function () { + return new Point(this.x, this.y); + }, + + // @method add(otherPoint: Point): Point + // Returns the result of addition of the current and the given points. + add: function (point) { + // non-destructive, returns a new point + return this.clone()._add(toPoint(point)); + }, + + _add: function (point) { + // destructive, used directly for performance in situations where it's safe to modify existing point + this.x += point.x; + this.y += point.y; + return this; + }, + + // @method subtract(otherPoint: Point): Point + // Returns the result of subtraction of the given point from the current. + subtract: function (point) { + return this.clone()._subtract(toPoint(point)); + }, + + _subtract: function (point) { + this.x -= point.x; + this.y -= point.y; + return this; + }, + + // @method divideBy(num: Number): Point + // Returns the result of division of the current point by the given number. + divideBy: function (num) { + return this.clone()._divideBy(num); + }, + + _divideBy: function (num) { + this.x /= num; + this.y /= num; + return this; + }, + + // @method multiplyBy(num: Number): Point + // Returns the result of multiplication of the current point by the given number. + multiplyBy: function (num) { + return this.clone()._multiplyBy(num); + }, + + _multiplyBy: function (num) { + this.x *= num; + this.y *= num; + return this; + }, + + // @method scaleBy(scale: Point): Point + // Multiply each coordinate of the current point by each coordinate of + // `scale`. In linear algebra terms, multiply the point by the + // [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation) + // defined by `scale`. + scaleBy: function (point) { + return new Point(this.x * point.x, this.y * point.y); + }, + + // @method unscaleBy(scale: Point): Point + // Inverse of `scaleBy`. Divide each coordinate of the current point by + // each coordinate of `scale`. + unscaleBy: function (point) { + return new Point(this.x / point.x, this.y / point.y); + }, + + // @method round(): Point + // Returns a copy of the current point with rounded coordinates. + round: function () { + return this.clone()._round(); + }, + + _round: function () { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; + }, + + // @method floor(): Point + // Returns a copy of the current point with floored coordinates (rounded down). + floor: function () { + return this.clone()._floor(); + }, + + _floor: function () { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + return this; + }, + + // @method ceil(): Point + // Returns a copy of the current point with ceiled coordinates (rounded up). + ceil: function () { + return this.clone()._ceil(); + }, + + _ceil: function () { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + return this; + }, + + // @method trunc(): Point + // Returns a copy of the current point with truncated coordinates (rounded towards zero). + trunc: function () { + return this.clone()._trunc(); + }, + + _trunc: function () { + this.x = trunc(this.x); + this.y = trunc(this.y); + return this; + }, + + // @method distanceTo(otherPoint: Point): Number + // Returns the cartesian distance between the current and the given points. + distanceTo: function (point) { + point = toPoint(point); + + var x = point.x - this.x, + y = point.y - this.y; + + return Math.sqrt(x * x + y * y); + }, + + // @method equals(otherPoint: Point): Boolean + // Returns `true` if the given point has the same coordinates. + equals: function (point) { + point = toPoint(point); + + return point.x === this.x && + point.y === this.y; + }, + + // @method contains(otherPoint: Point): Boolean + // Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values). + contains: function (point) { + point = toPoint(point); + + return Math.abs(point.x) <= Math.abs(this.x) && + Math.abs(point.y) <= Math.abs(this.y); + }, + + // @method toString(): String + // Returns a string representation of the point for debugging purposes. + toString: function () { + return 'Point(' + + formatNum(this.x) + ', ' + + formatNum(this.y) + ')'; + } +}; + +// @factory L.point(x: Number, y: Number, round?: Boolean) +// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values. + +// @alternative +// @factory L.point(coords: Number[]) +// Expects an array of the form `[x, y]` instead. + +// @alternative +// @factory L.point(coords: Object) +// Expects a plain object of the form `{x: Number, y: Number}` instead. +function toPoint(x, y, round) { + if (x instanceof Point) { + return x; + } + if (isArray(x)) { + return new Point(x[0], x[1]); + } + if (x === undefined || x === null) { + return x; + } + if (typeof x === 'object' && 'x' in x && 'y' in x) { + return new Point(x.x, x.y); + } + return new Point(x, y, round); +} + +/* + * @class Bounds + * @aka L.Bounds + * + * Represents a rectangular area in pixel coordinates. + * + * @example + * + * ```js + * var p1 = L.point(10, 10), + * p2 = L.point(40, 60), + * bounds = L.bounds(p1, p2); + * ``` + * + * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: + * + * ```js + * otherBounds.intersects([[10, 10], [40, 60]]); + * ``` + * + * Note that `Bounds` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function Bounds(a, b) { + if (!a) { return; } + + var points = b ? [a, b] : a; + + for (var i = 0, len = points.length; i < len; i++) { + this.extend(points[i]); + } +} + +Bounds.prototype = { + // @method extend(point: Point): this + // Extends the bounds to contain the given point. + + // @alternative + // @method extend(otherBounds: Bounds): this + // Extend the bounds to contain the given bounds + extend: function (obj) { + var min2, max2; + if (!obj) { return this; } + + if (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) { + min2 = max2 = toPoint(obj); + } else { + obj = toBounds(obj); + min2 = obj.min; + max2 = obj.max; + + if (!min2 || !max2) { return this; } + } + + // @property min: Point + // The top left corner of the rectangle. + // @property max: Point + // The bottom right corner of the rectangle. + if (!this.min && !this.max) { + this.min = min2.clone(); + this.max = max2.clone(); + } else { + this.min.x = Math.min(min2.x, this.min.x); + this.max.x = Math.max(max2.x, this.max.x); + this.min.y = Math.min(min2.y, this.min.y); + this.max.y = Math.max(max2.y, this.max.y); + } + return this; + }, + + // @method getCenter(round?: Boolean): Point + // Returns the center point of the bounds. + getCenter: function (round) { + return toPoint( + (this.min.x + this.max.x) / 2, + (this.min.y + this.max.y) / 2, round); + }, + + // @method getBottomLeft(): Point + // Returns the bottom-left point of the bounds. + getBottomLeft: function () { + return toPoint(this.min.x, this.max.y); + }, + + // @method getTopRight(): Point + // Returns the top-right point of the bounds. + getTopRight: function () { // -> Point + return toPoint(this.max.x, this.min.y); + }, + + // @method getTopLeft(): Point + // Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)). + getTopLeft: function () { + return this.min; // left, top + }, + + // @method getBottomRight(): Point + // Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)). + getBottomRight: function () { + return this.max; // right, bottom + }, + + // @method getSize(): Point + // Returns the size of the given bounds + getSize: function () { + return this.max.subtract(this.min); + }, + + // @method contains(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle contains the given one. + // @alternative + // @method contains(point: Point): Boolean + // Returns `true` if the rectangle contains the given point. + contains: function (obj) { + var min, max; + + if (typeof obj[0] === 'number' || obj instanceof Point) { + obj = toPoint(obj); + } else { + obj = toBounds(obj); + } + + if (obj instanceof Bounds) { + min = obj.min; + max = obj.max; + } else { + min = max = obj; + } + + return (min.x >= this.min.x) && + (max.x <= this.max.x) && + (min.y >= this.min.y) && + (max.y <= this.max.y); + }, + + // @method intersects(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle intersects the given bounds. Two bounds + // intersect if they have at least one point in common. + intersects: function (bounds) { // (Bounds) -> Boolean + bounds = toBounds(bounds); + + var min = this.min, + max = this.max, + min2 = bounds.min, + max2 = bounds.max, + xIntersects = (max2.x >= min.x) && (min2.x <= max.x), + yIntersects = (max2.y >= min.y) && (min2.y <= max.y); + + return xIntersects && yIntersects; + }, + + // @method overlaps(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle overlaps the given bounds. Two bounds + // overlap if their intersection is an area. + overlaps: function (bounds) { // (Bounds) -> Boolean + bounds = toBounds(bounds); + + var min = this.min, + max = this.max, + min2 = bounds.min, + max2 = bounds.max, + xOverlaps = (max2.x > min.x) && (min2.x < max.x), + yOverlaps = (max2.y > min.y) && (min2.y < max.y); + + return xOverlaps && yOverlaps; + }, + + // @method isValid(): Boolean + // Returns `true` if the bounds are properly initialized. + isValid: function () { + return !!(this.min && this.max); + }, + + + // @method pad(bufferRatio: Number): Bounds + // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. + // For example, a ratio of 0.5 extends the bounds by 50% in each direction. + // Negative values will retract the bounds. + pad: function (bufferRatio) { + var min = this.min, + max = this.max, + heightBuffer = Math.abs(min.x - max.x) * bufferRatio, + widthBuffer = Math.abs(min.y - max.y) * bufferRatio; + + + return toBounds( + toPoint(min.x - heightBuffer, min.y - widthBuffer), + toPoint(max.x + heightBuffer, max.y + widthBuffer)); + }, + + + // @method equals(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle is equivalent to the given bounds. + equals: function (bounds) { + if (!bounds) { return false; } + + bounds = toBounds(bounds); + + return this.min.equals(bounds.getTopLeft()) && + this.max.equals(bounds.getBottomRight()); + }, +}; + + +// @factory L.bounds(corner1: Point, corner2: Point) +// Creates a Bounds object from two corners coordinate pairs. +// @alternative +// @factory L.bounds(points: Point[]) +// Creates a Bounds object from the given array of points. +function toBounds(a, b) { + if (!a || a instanceof Bounds) { + return a; + } + return new Bounds(a, b); +} + +/* + * @class LatLngBounds + * @aka L.LatLngBounds + * + * Represents a rectangular geographical area on a map. + * + * @example + * + * ```js + * var corner1 = L.latLng(40.712, -74.227), + * corner2 = L.latLng(40.774, -74.125), + * bounds = L.latLngBounds(corner1, corner2); + * ``` + * + * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: + * + * ```js + * map.fitBounds([ + * [40.712, -74.227], + * [40.774, -74.125] + * ]); + * ``` + * + * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range. + * + * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[]) + if (!corner1) { return; } + + var latlngs = corner2 ? [corner1, corner2] : corner1; + + for (var i = 0, len = latlngs.length; i < len; i++) { + this.extend(latlngs[i]); + } +} + +LatLngBounds.prototype = { + + // @method extend(latlng: LatLng): this + // Extend the bounds to contain the given point + + // @alternative + // @method extend(otherBounds: LatLngBounds): this + // Extend the bounds to contain the given bounds + extend: function (obj) { + var sw = this._southWest, + ne = this._northEast, + sw2, ne2; + + if (obj instanceof LatLng) { + sw2 = obj; + ne2 = obj; + + } else if (obj instanceof LatLngBounds) { + sw2 = obj._southWest; + ne2 = obj._northEast; + + if (!sw2 || !ne2) { return this; } + + } else { + return obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this; + } + + if (!sw && !ne) { + this._southWest = new LatLng(sw2.lat, sw2.lng); + this._northEast = new LatLng(ne2.lat, ne2.lng); + } else { + sw.lat = Math.min(sw2.lat, sw.lat); + sw.lng = Math.min(sw2.lng, sw.lng); + ne.lat = Math.max(ne2.lat, ne.lat); + ne.lng = Math.max(ne2.lng, ne.lng); + } + + return this; + }, + + // @method pad(bufferRatio: Number): LatLngBounds + // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. + // For example, a ratio of 0.5 extends the bounds by 50% in each direction. + // Negative values will retract the bounds. + pad: function (bufferRatio) { + var sw = this._southWest, + ne = this._northEast, + heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio, + widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio; + + return new LatLngBounds( + new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer), + new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer)); + }, + + // @method getCenter(): LatLng + // Returns the center point of the bounds. + getCenter: function () { + return new LatLng( + (this._southWest.lat + this._northEast.lat) / 2, + (this._southWest.lng + this._northEast.lng) / 2); + }, + + // @method getSouthWest(): LatLng + // Returns the south-west point of the bounds. + getSouthWest: function () { + return this._southWest; + }, + + // @method getNorthEast(): LatLng + // Returns the north-east point of the bounds. + getNorthEast: function () { + return this._northEast; + }, + + // @method getNorthWest(): LatLng + // Returns the north-west point of the bounds. + getNorthWest: function () { + return new LatLng(this.getNorth(), this.getWest()); + }, + + // @method getSouthEast(): LatLng + // Returns the south-east point of the bounds. + getSouthEast: function () { + return new LatLng(this.getSouth(), this.getEast()); + }, + + // @method getWest(): Number + // Returns the west longitude of the bounds + getWest: function () { + return this._southWest.lng; + }, + + // @method getSouth(): Number + // Returns the south latitude of the bounds + getSouth: function () { + return this._southWest.lat; + }, + + // @method getEast(): Number + // Returns the east longitude of the bounds + getEast: function () { + return this._northEast.lng; + }, + + // @method getNorth(): Number + // Returns the north latitude of the bounds + getNorth: function () { + return this._northEast.lat; + }, + + // @method contains(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle contains the given one. + + // @alternative + // @method contains (latlng: LatLng): Boolean + // Returns `true` if the rectangle contains the given point. + contains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean + if (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) { + obj = toLatLng(obj); + } else { + obj = toLatLngBounds(obj); + } + + var sw = this._southWest, + ne = this._northEast, + sw2, ne2; + + if (obj instanceof LatLngBounds) { + sw2 = obj.getSouthWest(); + ne2 = obj.getNorthEast(); + } else { + sw2 = ne2 = obj; + } + + return (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) && + (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng); + }, + + // @method intersects(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common. + intersects: function (bounds) { + bounds = toLatLngBounds(bounds); + + var sw = this._southWest, + ne = this._northEast, + sw2 = bounds.getSouthWest(), + ne2 = bounds.getNorthEast(), + + latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat), + lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng); + + return latIntersects && lngIntersects; + }, + + // @method overlaps(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area. + overlaps: function (bounds) { + bounds = toLatLngBounds(bounds); + + var sw = this._southWest, + ne = this._northEast, + sw2 = bounds.getSouthWest(), + ne2 = bounds.getNorthEast(), + + latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat), + lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng); + + return latOverlaps && lngOverlaps; + }, + + // @method toBBoxString(): String + // Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data. + toBBoxString: function () { + return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); + }, + + // @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean + // Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number. + equals: function (bounds, maxMargin) { + if (!bounds) { return false; } + + bounds = toLatLngBounds(bounds); + + return this._southWest.equals(bounds.getSouthWest(), maxMargin) && + this._northEast.equals(bounds.getNorthEast(), maxMargin); + }, + + // @method isValid(): Boolean + // Returns `true` if the bounds are properly initialized. + isValid: function () { + return !!(this._southWest && this._northEast); + } +}; + +// TODO International date line? + +// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng) +// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle. + +// @alternative +// @factory L.latLngBounds(latlngs: LatLng[]) +// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds). +function toLatLngBounds(a, b) { + if (a instanceof LatLngBounds) { + return a; + } + return new LatLngBounds(a, b); +} + +/* @class LatLng + * @aka L.LatLng + * + * Represents a geographical point with a certain latitude and longitude. + * + * @example + * + * ``` + * var latlng = L.latLng(50.5, 30.5); + * ``` + * + * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent: + * + * ``` + * map.panTo([50, 30]); + * map.panTo({lon: 30, lat: 50}); + * map.panTo({lat: 50, lng: 30}); + * map.panTo(L.latLng(50, 30)); + * ``` + * + * Note that `LatLng` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function LatLng(lat, lng, alt) { + if (isNaN(lat) || isNaN(lng)) { + throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')'); + } + + // @property lat: Number + // Latitude in degrees + this.lat = +lat; + + // @property lng: Number + // Longitude in degrees + this.lng = +lng; + + // @property alt: Number + // Altitude in meters (optional) + if (alt !== undefined) { + this.alt = +alt; + } +} + +LatLng.prototype = { + // @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean + // Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number. + equals: function (obj, maxMargin) { + if (!obj) { return false; } + + obj = toLatLng(obj); + + var margin = Math.max( + Math.abs(this.lat - obj.lat), + Math.abs(this.lng - obj.lng)); + + return margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin); + }, + + // @method toString(): String + // Returns a string representation of the point (for debugging purposes). + toString: function (precision) { + return 'LatLng(' + + formatNum(this.lat, precision) + ', ' + + formatNum(this.lng, precision) + ')'; + }, + + // @method distanceTo(otherLatLng: LatLng): Number + // Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines). + distanceTo: function (other) { + return Earth.distance(this, toLatLng(other)); + }, + + // @method wrap(): LatLng + // Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees. + wrap: function () { + return Earth.wrapLatLng(this); + }, + + // @method toBounds(sizeInMeters: Number): LatLngBounds + // Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`. + toBounds: function (sizeInMeters) { + var latAccuracy = 180 * sizeInMeters / 40075017, + lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat); + + return toLatLngBounds( + [this.lat - latAccuracy, this.lng - lngAccuracy], + [this.lat + latAccuracy, this.lng + lngAccuracy]); + }, + + clone: function () { + return new LatLng(this.lat, this.lng, this.alt); + } +}; + + + +// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng +// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude). + +// @alternative +// @factory L.latLng(coords: Array): LatLng +// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead. + +// @alternative +// @factory L.latLng(coords: Object): LatLng +// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead. + +function toLatLng(a, b, c) { + if (a instanceof LatLng) { + return a; + } + if (isArray(a) && typeof a[0] !== 'object') { + if (a.length === 3) { + return new LatLng(a[0], a[1], a[2]); + } + if (a.length === 2) { + return new LatLng(a[0], a[1]); + } + return null; + } + if (a === undefined || a === null) { + return a; + } + if (typeof a === 'object' && 'lat' in a) { + return new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt); + } + if (b === undefined) { + return null; + } + return new LatLng(a, b, c); +} + +/* + * @namespace CRS + * @crs L.CRS.Base + * Object that defines coordinate reference systems for projecting + * geographical points into pixel (screen) coordinates and back (and to + * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See + * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system). + * + * Leaflet defines the most usual CRSs by default. If you want to use a + * CRS not defined by default, take a look at the + * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin. + * + * Note that the CRS instances do not inherit from Leaflet's `Class` object, + * and can't be instantiated. Also, new classes can't inherit from them, + * and methods can't be added to them with the `include` function. + */ + +var CRS = { + // @method latLngToPoint(latlng: LatLng, zoom: Number): Point + // Projects geographical coordinates into pixel coordinates for a given zoom. + latLngToPoint: function (latlng, zoom) { + var projectedPoint = this.projection.project(latlng), + scale = this.scale(zoom); + + return this.transformation._transform(projectedPoint, scale); + }, + + // @method pointToLatLng(point: Point, zoom: Number): LatLng + // The inverse of `latLngToPoint`. Projects pixel coordinates on a given + // zoom into geographical coordinates. + pointToLatLng: function (point, zoom) { + var scale = this.scale(zoom), + untransformedPoint = this.transformation.untransform(point, scale); + + return this.projection.unproject(untransformedPoint); + }, + + // @method project(latlng: LatLng): Point + // Projects geographical coordinates into coordinates in units accepted for + // this CRS (e.g. meters for EPSG:3857, for passing it to WMS services). + project: function (latlng) { + return this.projection.project(latlng); + }, + + // @method unproject(point: Point): LatLng + // Given a projected coordinate returns the corresponding LatLng. + // The inverse of `project`. + unproject: function (point) { + return this.projection.unproject(point); + }, + + // @method scale(zoom: Number): Number + // Returns the scale used when transforming projected coordinates into + // pixel coordinates for a particular zoom. For example, it returns + // `256 * 2^zoom` for Mercator-based CRS. + scale: function (zoom) { + return 256 * Math.pow(2, zoom); + }, + + // @method zoom(scale: Number): Number + // Inverse of `scale()`, returns the zoom level corresponding to a scale + // factor of `scale`. + zoom: function (scale) { + return Math.log(scale / 256) / Math.LN2; + }, + + // @method getProjectedBounds(zoom: Number): Bounds + // Returns the projection's bounds scaled and transformed for the provided `zoom`. + getProjectedBounds: function (zoom) { + if (this.infinite) { return null; } + + var b = this.projection.bounds, + s = this.scale(zoom), + min = this.transformation.transform(b.min, s), + max = this.transformation.transform(b.max, s); + + return new Bounds(min, max); + }, + + // @method distance(latlng1: LatLng, latlng2: LatLng): Number + // Returns the distance between two geographical coordinates. + + // @property code: String + // Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`) + // + // @property wrapLng: Number[] + // An array of two numbers defining whether the longitude (horizontal) coordinate + // axis wraps around a given range and how. Defaults to `[-180, 180]` in most + // geographical CRSs. If `undefined`, the longitude axis does not wrap around. + // + // @property wrapLat: Number[] + // Like `wrapLng`, but for the latitude (vertical) axis. + + // wrapLng: [min, max], + // wrapLat: [min, max], + + // @property infinite: Boolean + // If true, the coordinate space will be unbounded (infinite in both axes) + infinite: false, + + // @method wrapLatLng(latlng: LatLng): LatLng + // Returns a `LatLng` where lat and lng has been wrapped according to the + // CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds. + wrapLatLng: function (latlng) { + var lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng, + lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat, + alt = latlng.alt; + + return new LatLng(lat, lng, alt); + }, + + // @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds + // Returns a `LatLngBounds` with the same size as the given one, ensuring + // that its center is within the CRS's bounds. + // Only accepts actual `L.LatLngBounds` instances, not arrays. + wrapLatLngBounds: function (bounds) { + var center = bounds.getCenter(), + newCenter = this.wrapLatLng(center), + latShift = center.lat - newCenter.lat, + lngShift = center.lng - newCenter.lng; + + if (latShift === 0 && lngShift === 0) { + return bounds; + } + + var sw = bounds.getSouthWest(), + ne = bounds.getNorthEast(), + newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift), + newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift); + + return new LatLngBounds(newSw, newNe); + } +}; + +/* + * @namespace CRS + * @crs L.CRS.Earth + * + * Serves as the base for CRS that are global such that they cover the earth. + * Can only be used as the base for other CRS and cannot be used directly, + * since it does not have a `code`, `projection` or `transformation`. `distance()` returns + * meters. + */ + +var Earth = extend({}, CRS, { + wrapLng: [-180, 180], + + // Mean Earth Radius, as recommended for use by + // the International Union of Geodesy and Geophysics, + // see https://rosettacode.org/wiki/Haversine_formula + R: 6371000, + + // distance between two geographical points using spherical law of cosines approximation + distance: function (latlng1, latlng2) { + var rad = Math.PI / 180, + lat1 = latlng1.lat * rad, + lat2 = latlng2.lat * rad, + sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2), + sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2), + a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon, + c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + return this.R * c; + } +}); + +/* + * @namespace Projection + * @projection L.Projection.SphericalMercator + * + * Spherical Mercator projection — the most common projection for online maps, + * used by almost all free and commercial tile providers. Assumes that Earth is + * a sphere. Used by the `EPSG:3857` CRS. + */ + +var earthRadius = 6378137; + +var SphericalMercator = { + + R: earthRadius, + MAX_LATITUDE: 85.0511287798, + + project: function (latlng) { + var d = Math.PI / 180, + max = this.MAX_LATITUDE, + lat = Math.max(Math.min(max, latlng.lat), -max), + sin = Math.sin(lat * d); + + return new Point( + this.R * latlng.lng * d, + this.R * Math.log((1 + sin) / (1 - sin)) / 2); + }, + + unproject: function (point) { + var d = 180 / Math.PI; + + return new LatLng( + (2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d, + point.x * d / this.R); + }, + + bounds: (function () { + var d = earthRadius * Math.PI; + return new Bounds([-d, -d], [d, d]); + })() +}; + +/* + * @class Transformation + * @aka L.Transformation + * + * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d` + * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing + * the reverse. Used by Leaflet in its projections code. + * + * @example + * + * ```js + * var transformation = L.transformation(2, 5, -1, 10), + * p = L.point(1, 2), + * p2 = transformation.transform(p), // L.point(7, 8) + * p3 = transformation.untransform(p2); // L.point(1, 2) + * ``` + */ + + +// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number) +// Creates a `Transformation` object with the given coefficients. +function Transformation(a, b, c, d) { + if (isArray(a)) { + // use array properties + this._a = a[0]; + this._b = a[1]; + this._c = a[2]; + this._d = a[3]; + return; + } + this._a = a; + this._b = b; + this._c = c; + this._d = d; +} + +Transformation.prototype = { + // @method transform(point: Point, scale?: Number): Point + // Returns a transformed point, optionally multiplied by the given scale. + // Only accepts actual `L.Point` instances, not arrays. + transform: function (point, scale) { // (Point, Number) -> Point + return this._transform(point.clone(), scale); + }, + + // destructive transform (faster) + _transform: function (point, scale) { + scale = scale || 1; + point.x = scale * (this._a * point.x + this._b); + point.y = scale * (this._c * point.y + this._d); + return point; + }, + + // @method untransform(point: Point, scale?: Number): Point + // Returns the reverse transformation of the given point, optionally divided + // by the given scale. Only accepts actual `L.Point` instances, not arrays. + untransform: function (point, scale) { + scale = scale || 1; + return new Point( + (point.x / scale - this._b) / this._a, + (point.y / scale - this._d) / this._c); + } +}; + +// factory L.transformation(a: Number, b: Number, c: Number, d: Number) + +// @factory L.transformation(a: Number, b: Number, c: Number, d: Number) +// Instantiates a Transformation object with the given coefficients. + +// @alternative +// @factory L.transformation(coefficients: Array): Transformation +// Expects an coefficients array of the form +// `[a: Number, b: Number, c: Number, d: Number]`. + +function toTransformation(a, b, c, d) { + return new Transformation(a, b, c, d); +} + +/* + * @namespace CRS + * @crs L.CRS.EPSG3857 + * + * The most common CRS for online maps, used by almost all free and commercial + * tile providers. Uses Spherical Mercator projection. Set in by default in + * Map's `crs` option. + */ + +var EPSG3857 = extend({}, Earth, { + code: 'EPSG:3857', + projection: SphericalMercator, + + transformation: (function () { + var scale = 0.5 / (Math.PI * SphericalMercator.R); + return toTransformation(scale, 0.5, -scale, 0.5); + }()) +}); + +var EPSG900913 = extend({}, EPSG3857, { + code: 'EPSG:900913' +}); + +// @namespace SVG; @section +// There are several static functions which can be called without instantiating L.SVG: + +// @function create(name: String): SVGElement +// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement), +// corresponding to the class name passed. For example, using 'line' will return +// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement). +function svgCreate(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); +} + +// @function pointsToPath(rings: Point[], closed: Boolean): String +// Generates a SVG path string for multiple rings, with each ring turning +// into "M..L..L.." instructions +function pointsToPath(rings, closed) { + var str = '', + i, j, len, len2, points, p; + + for (i = 0, len = rings.length; i < len; i++) { + points = rings[i]; + + for (j = 0, len2 = points.length; j < len2; j++) { + p = points[j]; + str += (j ? 'L' : 'M') + p.x + ' ' + p.y; + } + + // closes the ring for polygons; "x" is VML syntax + str += closed ? (Browser.svg ? 'z' : 'x') : ''; + } + + // SVG complains about empty path strings + return str || 'M0 0'; +} + +/* + * @namespace Browser + * @aka L.Browser + * + * A namespace with static properties for browser/feature detection used by Leaflet internally. + * + * @example + * + * ```js + * if (L.Browser.ielt9) { + * alert('Upgrade your browser, dude!'); + * } + * ``` + */ + +var style = document.documentElement.style; + +// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge). +var ie = 'ActiveXObject' in window; + +// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9. +var ielt9 = ie && !document.addEventListener; + +// @property edge: Boolean; `true` for the Edge web browser. +var edge = 'msLaunchUri' in navigator && !('documentMode' in document); + +// @property webkit: Boolean; +// `true` for webkit-based browsers like Chrome and Safari (including mobile versions). +var webkit = userAgentContains('webkit'); + +// @property android: Boolean +// **Deprecated.** `true` for any browser running on an Android platform. +var android = userAgentContains('android'); + +// @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3. +var android23 = userAgentContains('android 2') || userAgentContains('android 3'); + +/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */ +var webkitVer = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit +// @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome) +var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window); + +// @property opera: Boolean; `true` for the Opera browser +var opera = !!window.opera; + +// @property chrome: Boolean; `true` for the Chrome browser. +var chrome = !edge && userAgentContains('chrome'); + +// @property gecko: Boolean; `true` for gecko-based browsers like Firefox. +var gecko = userAgentContains('gecko') && !webkit && !opera && !ie; + +// @property safari: Boolean; `true` for the Safari browser. +var safari = !chrome && userAgentContains('safari'); + +var phantom = userAgentContains('phantom'); + +// @property opera12: Boolean +// `true` for the Opera browser supporting CSS transforms (version 12 or later). +var opera12 = 'OTransition' in style; + +// @property win: Boolean; `true` when the browser is running in a Windows platform +var win = navigator.platform.indexOf('Win') === 0; + +// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms. +var ie3d = ie && ('transition' in style); + +// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms. +var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23; + +// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms. +var gecko3d = 'MozPerspective' in style; + +// @property any3d: Boolean +// `true` for all browsers supporting CSS transforms. +var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom; + +// @property mobile: Boolean; `true` for all browsers running in a mobile device. +var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile'); + +// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device. +var mobileWebkit = mobile && webkit; + +// @property mobileWebkit3d: Boolean +// `true` for all webkit-based browsers in a mobile device supporting CSS transforms. +var mobileWebkit3d = mobile && webkit3d; + +// @property msPointer: Boolean +// `true` for browsers implementing the Microsoft touch events model (notably IE10). +var msPointer = !window.PointerEvent && window.MSPointerEvent; + +// @property pointer: Boolean +// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx). +var pointer = !!(window.PointerEvent || msPointer); + +// @property touchNative: Boolean +// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events). +// **This does not necessarily mean** that the browser is running in a computer with +// a touchscreen, it only means that the browser is capable of understanding +// touch events. +var touchNative = 'ontouchstart' in window || !!window.TouchEvent; + +// @property touch: Boolean +// `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events. +// Note: pointer events will be preferred (if available), and processed for all `touch*` listeners. +var touch = !window.L_NO_TOUCH && (touchNative || pointer); + +// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device. +var mobileOpera = mobile && opera; + +// @property mobileGecko: Boolean +// `true` for gecko-based browsers running in a mobile device. +var mobileGecko = mobile && gecko; + +// @property retina: Boolean +// `true` for browsers on a high-resolution "retina" screen or on any screen when browser's display zoom is more than 100%. +var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1; + +// @property passiveEvents: Boolean +// `true` for browsers that support passive events. +var passiveEvents = (function () { + var supportsPassiveOption = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function () { // eslint-disable-line getter-return + supportsPassiveOption = true; + } + }); + window.addEventListener('testPassiveEventSupport', falseFn, opts); + window.removeEventListener('testPassiveEventSupport', falseFn, opts); + } catch (e) { + // Errors can safely be ignored since this is only a browser support test. + } + return supportsPassiveOption; +}()); + +// @property canvas: Boolean +// `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API). +var canvas$1 = (function () { + return !!document.createElement('canvas').getContext; +}()); + +// @property svg: Boolean +// `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG). +var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect); + +var inlineSvg = !!svg$1 && (function () { + var div = document.createElement('div'); + div.innerHTML = ''; + return (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg'; +})(); + +// @property vml: Boolean +// `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language). +var vml = !svg$1 && (function () { + try { + var div = document.createElement('div'); + div.innerHTML = ''; + + var shape = div.firstChild; + shape.style.behavior = 'url(#default#VML)'; + + return shape && (typeof shape.adj === 'object'); + + } catch (e) { + return false; + } +}()); + + +// @property mac: Boolean; `true` when the browser is running in a Mac platform +var mac = navigator.platform.indexOf('Mac') === 0; + +// @property mac: Boolean; `true` when the browser is running in a Linux platform +var linux = navigator.platform.indexOf('Linux') === 0; + +function userAgentContains(str) { + return navigator.userAgent.toLowerCase().indexOf(str) >= 0; +} + + +var Browser = { + ie: ie, + ielt9: ielt9, + edge: edge, + webkit: webkit, + android: android, + android23: android23, + androidStock: androidStock, + opera: opera, + chrome: chrome, + gecko: gecko, + safari: safari, + phantom: phantom, + opera12: opera12, + win: win, + ie3d: ie3d, + webkit3d: webkit3d, + gecko3d: gecko3d, + any3d: any3d, + mobile: mobile, + mobileWebkit: mobileWebkit, + mobileWebkit3d: mobileWebkit3d, + msPointer: msPointer, + pointer: pointer, + touch: touch, + touchNative: touchNative, + mobileOpera: mobileOpera, + mobileGecko: mobileGecko, + retina: retina, + passiveEvents: passiveEvents, + canvas: canvas$1, + svg: svg$1, + vml: vml, + inlineSvg: inlineSvg, + mac: mac, + linux: linux +}; + +/* + * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices. + */ + +var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown'; +var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove'; +var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup'; +var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel'; +var pEvent = { + touchstart : POINTER_DOWN, + touchmove : POINTER_MOVE, + touchend : POINTER_UP, + touchcancel : POINTER_CANCEL +}; +var handle = { + touchstart : _onPointerStart, + touchmove : _handlePointer, + touchend : _handlePointer, + touchcancel : _handlePointer +}; +var _pointers = {}; +var _pointerDocListener = false; + +// Provides a touch events wrapper for (ms)pointer events. +// ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890 + +function addPointerListener(obj, type, handler) { + if (type === 'touchstart') { + _addPointerDocListener(); + } + if (!handle[type]) { + console.warn('wrong event specified:', type); + return falseFn; + } + handler = handle[type].bind(this, handler); + obj.addEventListener(pEvent[type], handler, false); + return handler; +} + +function removePointerListener(obj, type, handler) { + if (!pEvent[type]) { + console.warn('wrong event specified:', type); + return; + } + obj.removeEventListener(pEvent[type], handler, false); +} + +function _globalPointerDown(e) { + _pointers[e.pointerId] = e; +} + +function _globalPointerMove(e) { + if (_pointers[e.pointerId]) { + _pointers[e.pointerId] = e; + } +} + +function _globalPointerUp(e) { + delete _pointers[e.pointerId]; +} + +function _addPointerDocListener() { + // need to keep track of what pointers and how many are active to provide e.touches emulation + if (!_pointerDocListener) { + // we listen document as any drags that end by moving the touch off the screen get fired there + document.addEventListener(POINTER_DOWN, _globalPointerDown, true); + document.addEventListener(POINTER_MOVE, _globalPointerMove, true); + document.addEventListener(POINTER_UP, _globalPointerUp, true); + document.addEventListener(POINTER_CANCEL, _globalPointerUp, true); + + _pointerDocListener = true; + } +} + +function _handlePointer(handler, e) { + if (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; } + + e.touches = []; + for (var i in _pointers) { + e.touches.push(_pointers[i]); + } + e.changedTouches = [e]; + + handler(e); +} + +function _onPointerStart(handler, e) { + // IE10 specific: MsTouch needs preventDefault. See #2000 + if (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) { + preventDefault(e); + } + _handlePointer(handler, e); +} + +/* + * Extends the event handling code with double tap support for mobile browsers. + * + * Note: currently most browsers fire native dblclick, with only a few exceptions + * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386) + */ + +function makeDblclick(event) { + // in modern browsers `type` cannot be just overridden: + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only + var newEvent = {}, + prop, i; + for (i in event) { + prop = event[i]; + newEvent[i] = prop && prop.bind ? prop.bind(event) : prop; + } + event = newEvent; + newEvent.type = 'dblclick'; + newEvent.detail = 2; + newEvent.isTrusted = false; + newEvent._simulated = true; // for debug purposes + return newEvent; +} + +var delay = 200; +function addDoubleTapListener(obj, handler) { + // Most browsers handle double tap natively + obj.addEventListener('dblclick', handler); + + // On some platforms the browser doesn't fire native dblclicks for touch events. + // It seems that in all such cases `detail` property of `click` event is always `1`. + // So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed. + var last = 0, + detail; + function simDblclick(e) { + if (e.detail !== 1) { + detail = e.detail; // keep in sync to avoid false dblclick in some cases + return; + } + + if (e.pointerType === 'mouse' || + (e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) { + + return; + } + + // When clicking on an , the browser generates a click on its + //