From 933e2c5093ac275e2788b53f44666e1fa8ef0787 Mon Sep 17 00:00:00 2001 From: "Glitch (pie-tested-cormorant)" Date: Thu, 23 Sep 2021 17:58:07 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=9B=AB=F0=9F=94=AE=20Updated=20with?= =?UTF-8?q?=20Glitch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 23 - .glitch-assets | 6 + CHANGELOG.md | 3 - README.md | 69 -- ayarlar.json | 4 + bot.js | 192 ++++ commands.go | 171 ---- datebase.json | 1 + events/message.js | 85 ++ events/prefix.js | 48 + events/ready.js | 27 + json.sqlite | Bin 0 -> 8192 bytes komutlar/avatar.js | 56 ++ komutlar/ban.js | 41 + komutlar/banlist.js | 48 + komutlar/davet.js | 25 + komutlar/istatistik.js | 49 + komutlar/kick.js | 61 ++ komutlar/otorol.js | 36 + komutlar/otorolkapat.js | 32 + komutlar/oylama.js | 49 + komutlar/pcbak.js | 23 + komutlar/ping.js | 23 + komutlar/piyango.js | 29 + komutlar/rastgele-renk.js | 23 + komutlar/rolbilgi.js | 39 + komutlar/sa-as.js | 38 + komutlar/sil.js | 21 + komutlar/sunucu-kur.js | 91 ++ "komutlar/yard\304\261m.js" | 61 ++ komutlar/yaz.js | 21 + komutlar/zarat.js | 26 + main.go | 18 - otorol.json | 1 + package-lock.json | 374 ++++++++ package.json | 44 + samples/original.jpg | Bin 35972 -> 0 bytes samples/repeat.jpg | Bin 37572 -> 0 bytes samples/sed.jpg | Bin 35972 -> 0 bytes shrinkwrap.yaml | 1758 +++++++++++++++++++++++++++++++++++ util/Util.js | 125 +++ util/eventLoader.js | 5 + version.go | 3 - 43 files changed, 3462 insertions(+), 287 deletions(-) delete mode 100644 .gitignore create mode 100644 .glitch-assets delete mode 100644 CHANGELOG.md delete mode 100644 README.md create mode 100644 ayarlar.json create mode 100644 bot.js delete mode 100644 commands.go create mode 100644 datebase.json create mode 100644 events/message.js create mode 100644 events/prefix.js create mode 100644 events/ready.js create mode 100644 json.sqlite create mode 100644 komutlar/avatar.js create mode 100644 komutlar/ban.js create mode 100644 komutlar/banlist.js create mode 100644 komutlar/davet.js create mode 100644 komutlar/istatistik.js create mode 100644 komutlar/kick.js create mode 100644 komutlar/otorol.js create mode 100644 komutlar/otorolkapat.js create mode 100644 komutlar/oylama.js create mode 100644 komutlar/pcbak.js create mode 100644 komutlar/ping.js create mode 100644 komutlar/piyango.js create mode 100644 komutlar/rastgele-renk.js create mode 100644 komutlar/rolbilgi.js create mode 100644 komutlar/sa-as.js create mode 100644 komutlar/sil.js create mode 100644 komutlar/sunucu-kur.js create mode 100644 "komutlar/yard\304\261m.js" create mode 100644 komutlar/yaz.js create mode 100644 komutlar/zarat.js delete mode 100644 main.go create mode 100644 otorol.json create mode 100644 package-lock.json create mode 100644 package.json delete mode 100644 samples/original.jpg delete mode 100644 samples/repeat.jpg delete mode 100644 samples/sed.jpg create mode 100644 shrinkwrap.yaml create mode 100644 util/Util.js create mode 100644 util/eventLoader.js delete mode 100644 version.go diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8365624..0000000 --- a/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test diff --git a/.glitch-assets b/.glitch-assets new file mode 100644 index 0000000..954626f --- /dev/null +++ b/.glitch-assets @@ -0,0 +1,6 @@ +{"name":"drag-in-files.svg","date":"2016-10-22T16:17:49.954Z","url":"https://cdn.hyperdev.com/drag-in-files.svg","type":"image/svg","size":7646,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/drag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(102, 153, 205)","uuid":"adSBq97hhhpFNUna"} +{"name":"click-me.svg","date":"2016-10-23T16:17:49.954Z","url":"https://cdn.hyperdev.com/click-me.svg","type":"image/svg","size":7116,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/click-me.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(243, 185, 186)","uuid":"adSBq97hhhpFNUnb"} +{"name":"paste-me.svg","date":"2016-10-24T16:17:49.954Z","url":"https://cdn.hyperdev.com/paste-me.svg","type":"image/svg","size":7242,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/paste-me.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(42, 179, 185)","uuid":"adSBq97hhhpFNUnc"} +{"uuid":"adSBq97hhhpFNUna","deleted":true} +{"uuid":"adSBq97hhhpFNUnb","deleted":true} +{"uuid":"adSBq97hhhpFNUnc","deleted":true} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 8ced7b1..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.1.0 - -- Initial Release diff --git a/README.md b/README.md deleted file mode 100644 index 6a3fb72..0000000 --- a/README.md +++ /dev/null @@ -1,69 +0,0 @@ -glitch -==== - -Just another glitch command line tool - -## Synopsis - -``` -$ glitch sed -f a -t b -e 15 -o glitched.jpg /path/to/yourfile.jpg -$ glitch repeat -e 15 -b 200 -n 10 -o glitched.jpg /path/to/yourfile.jpg -``` - -## Installation - -``` -$ go get github.com/makimoto/glitch -``` - -## Usage - -``` -NAME: - glitch - Just another glitch command line tool - -USAGE: - glitch [global options] command [command options] [arguments...] - -VERSION: - 0.1.0 - -COMMANDS: - sed sed glitch a.k.a. replacement glitch - repeat repeat glitch - help, h Shows a list of commands or help for one command - -GLOBAL OPTIONS: - --version, -v print the version - --help, -h show help -``` - -## Samples - -### sed glitch - -``` -glitch sed -f a -t b -o sed.jpg original.jpg -``` - -![](./samples/sed.jpg) - -### repeat glitch - -``` -glitch repeat -n 5 -b 400 original.jpg -``` - -![](./samples/repeat.jpg) - -### the original image - -![](./samples/original.jpg) - -## Author - -[Shimpei Makimoto](http://shimpei.makimoto.org) - -## License - -[MIT](http://makimoto.mit-license.org/) diff --git a/ayarlar.json b/ayarlar.json new file mode 100644 index 0000000..f9ac9e6 --- /dev/null +++ b/ayarlar.json @@ -0,0 +1,4 @@ +{ + "prefix": "d!", + "sahip": ["466212593867030528","730096504647188531"] +} \ No newline at end of file diff --git a/bot.js b/bot.js new file mode 100644 index 0000000..f660784 --- /dev/null +++ b/bot.js @@ -0,0 +1,192 @@ +const Discord = require("discord.js"); +const client = new Discord.Client(); +const ayarlar = require("./ayarlar.json"); +const chalk = require("chalk"); +const fs = require("fs"); +const moment = require("moment"); +const Jimp = require("jimp"); +const db = require("quick.db"); +var prefix = ayarlar.prefix; + +//////////////prefix////////////// + var prefix = ayarlar.prefix; + + client.on('message', message => { + if (message.content === `<@${client.user.id}>`) { + message.reply(`Prefix'im: **d!**!`) + } + }); + +//////////////prefix////////////// + +client.on("ready", () => { + console.log(`Bot suan bu isimle aktif: ${client.user.tag}!`); +}); + +const log = message => { + console.log(`[${moment().format("YYYY-MM-DD HH:mm:ss")}] ${message}`); +}; + +///////////// KOMUTLAR BAŞ + +//---------------------Sa-As---------------------------------\\ + +client.on('message', async (msg, member, guild) => { + let i = await db.fetch(`saas_${msg.guild.id}`) + if(i === 'açık') { + if (msg.content.toLowerCase() === 'sa') { + msg.reply('Aleyküm Selam Hoşgeldin!'); + } + } + }); +client.on('message', async (msg, member, guild) => { + let i = await db.fetch(`saas_${msg.guild.id}`) + if(i === 'açık') { + if (msg.content.toLowerCase() === 'selam') { + msg.reply('Aleyküm Selam Hoşgeldin!'); + } + } + }); + +//---------------------Sa-As---------------------------------\\ + +//---------------------Otorol---------------------------------\\ +client.on('guildMemberAdd', async (member, guild, message) => { + let hgbbkanal = await db.fetch(`hgbbkanal_${member.guild.id}`) + + if (!hgbbkanal) return + + var embed = new Discord.MessageEmbed() + .setDescription(`<@!${member.user.id}> sunucumuza katıldı :hugging:`) + .setColor('RANDOM') + member.guild.channels.get(hgbbkanal).send(embed) +}) + +client.on('guildMemberRemove', async (member, guild, message) => { + let hgbbkanal = await db.fetch(`hgbbkanal_${member.guild.id}`) + + if (!hgbbkanal) return + + var embed = new Discord.MessageEmbed() + .setDescription(`<@!${member.user.id}> sunucumuzdan ayrıldı :frowning:`) + .setColor('RANDOM') + member.guild.channels.get(hgbbkanal).send(embed) +}) +//---------------------Otorol-Bitiş--------------------------------\\ + + //----------------------Sahibim-------------------------------------------------// + //kod PoyrazFTW tarafından yazılmıştır + client.on("message", async message => { + const ms = require('parse-ms') + let dogrulama = await db.fetch(`sahiponay_${message.author.id}_${message.guild.id}`); + let gun = 1800000; + if (dogrulama !== null && gun - (Date.now() - dogrulama) > 0) { + + } else { + if(message.author.id === ayarlar.sahip){ + db.set(`sahiponay_${message.author.id}_${message.guild.id}`, Date.now()) + message.channel.send("Ooo Sahibimde Burdaymış <@730096504647188531> Hoşgeldin Usta 😋").then(msg => msg.delete (15000)) + } + } + + }); + //--------------------------Sahibim Bitiş----------------------------------------// + +////////////// KOMUTLAR SON +////////////// ALTI ELLEME +require("./util/eventLoader")(client);//bot sende kafana göre istediğini yap - Ömer Faruk AYVAZ + +client.login(process.env.token); + +client.commands = new Discord.Collection(); +client.aliases = new Discord.Collection(); +fs.readdir("./komutlar/", (err, files) => { + if (err) console.error(err); + log(`${files.length} komut yüklenecek.`); + files.forEach(f => { + let props = require(`./komutlar/${f}`); + log(`Yüklenen komut: ${props.help.name}`); + client.commands.set(props.help.name, props); + props.conf.aliases.forEach(alias => { + client.aliases.set(alias, props.help.name); + }); + }); +}); + +client.reload = command => { + return new Promise((resolve, reject) => { + try { + delete require.cache[require.resolve(`./komutlar/${command}`)]; + let cmd = require(`./komutlar/${command}`); + client.commands.delete(command); + client.aliases.forEach((cmd, alias) => { + if (cmd === command) client.aliases.delete(alias); + }); + client.commands.set(command, cmd); + cmd.conf.aliases.forEach(alias => { + client.aliases.set(alias, cmd.help.name); + }); + resolve(); + } catch (e) { + reject(e); + } + }); +}; + +client.load = command => { + return new Promise((resolve, reject) => { + try { + let cmd = require(`./komutlar/${command}`); + client.commands.set(command, cmd); + cmd.conf.aliases.forEach(alias => { + client.aliases.set(alias, cmd.help.name); + }); + resolve(); + } catch (e) { + reject(e); + } + }); +}; + +client.unload = command => { + return new Promise((resolve, reject) => { + try { + delete require.cache[require.resolve(`./komutlar/${command}`)]; + let cmd = require(`./komutlar/${command}`); + client.commands.delete(command); + client.aliases.forEach((cmd, alias) => { + if (cmd === command) client.aliases.delete(alias); + }); + resolve(); + } catch (e) { + reject(e); + } + }); +}; + +client.elevation = message => { + if (!message.guild) { + return; + } + let permlvl = 0; + if (message.member.hasPermission("BAN_MEMBERS")) permlvl = 2; + if (message.member.hasPermission("ADMINISTRATOR")) permlvl = 3; + if (ayarlar.sahip.includes(message.author.id)) permlvl = 4; + return permlvl; +}; + +var regToken = /[\w\d]{24}\.[\w\d]{6}\.[\w\d-_]{27}/g; +// client.on('debug', e => { +// console.log(chalk.bgBlue.green(e.replace(regToken, 'that was redacted'))); +// }); + +client.on("warn", e => { + console.log(chalk.bgYellow(e.replace(regToken, "that was redacted"))); +}); + +client.on("error", e => { + console.log(chalk.bgRed(e.replace(regToken, "that was redacted"))); +}); + +client.login(process.env.token); //.env Token Olduğu Yer Ellleme + diff --git a/commands.go b/commands.go deleted file mode 100644 index ead571d..0000000 --- a/commands.go +++ /dev/null @@ -1,171 +0,0 @@ -package main - -import ( - "bytes" - "fmt" - "github.com/codegangsta/cli" - "io/ioutil" - "log" - "math/rand" - "os" - "strconv" - "time" -) - -var Commands = []cli.Command{ - commandSed, - commandRepeat, -} - -var commandSed = cli.Command{ - Name: "sed", - Usage: "sed glitch a.k.a. replacement glitch", - Description: ` -`, - Action: doSed, - Flags: []cli.Flag{ - cli.StringFlag{Name: "o, output", Value: "output.jpg", Usage: "Output file"}, - cli.StringFlag{Name: "f, from", Value: "", Usage: "character or string to be replaced from (default: random)"}, - cli.StringFlag{Name: "t, to", Value: "", Usage: "character or string to be replaced with (default: random)"}, - cli.IntFlag{Name: "e, header-size-rate", Value: 5, Usage: "Percentage of header bytes (10: automatic)"}, - }, -} - -var commandRepeat = cli.Command{ - Name: "repeat", - Usage: "repeat glitch", - Description: ` -`, - Action: doRepeat, - Flags: []cli.Flag{ - cli.StringFlag{Name: "o, output", Value: "output.jpg", Usage: "Output file"}, - cli.IntFlag{Name: "n, number", Value: 3, Usage: "Number of byte repeats"}, - cli.IntFlag{Name: "e, header-size-rate", Value: 5, Usage: "Percentage of header bytes"}, - cli.IntFlag{Name: "b, block-size", Value: 200, Usage: "Size of block bytes"}, - }, -} - -func debug(v ...interface{}) { - if os.Getenv("DEBUG") != "" { - log.Println(v...) - } -} - -func assert(err error) { - if err != nil { - log.Fatal(err) - } -} - -func doSed(c *cli.Context) { - fi, err := os.Open(c.Args()[0]) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - defer func() { - if err := fi.Close(); err != nil { - panic(err) - } - }() - - inputBytes, err := ioutil.ReadAll(fi) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - headerSizeRate := c.Int("e") - fromStr := c.String("f") - toStr := c.String("t") - - rand.Seed(time.Now().Unix()) - - if len(fromStr) == 0 { - fromStr = string(rand.Int31n(255)) - } - - if len(toStr) == 0 { - toStr = string(rand.Int31n(255)) - } - - if headerSizeRate < 0 || 100 < headerSizeRate { - fmt.Fprintln(os.Stderr, "Fatal: Invalid arguments: -e must be between 0 and 100, but "+strconv.Itoa(headerSizeRate)) - os.Exit(1) - } - - headerSize := len(inputBytes) / 100 * headerSizeRate - - outputBytes := []byte{} - outputBytes = append(outputBytes, inputBytes[0:headerSize]...) - outputBytes = append(outputBytes, bytes.Replace(inputBytes[headerSize:], []byte(fromStr), []byte(toStr), -1)...) - writeToFile(c.String("o"), outputBytes) -} - -func doRepeat(c *cli.Context) { - fi, err := os.Open(c.Args()[0]) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - defer func() { - if err := fi.Close(); err != nil { - panic(err) - } - }() - - inputBytes, err := ioutil.ReadAll(fi) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - number := c.Int("n") - headerSizeRate := c.Int("e") - blockSize := c.Int("b") - - if headerSizeRate < 0 || 100 < headerSizeRate { - fmt.Fprintln(os.Stderr, "Fatal: Invalid arguments: -e must be between 0 and 100, but "+strconv.Itoa(headerSizeRate)) - os.Exit(1) - } - - if blockSize <= 0 { - fmt.Fprintln(os.Stderr, "Fatal: Invalid arguments: -b must larger than 0, but "+strconv.Itoa(blockSize)) - os.Exit(1) - } - - headerSize := len(inputBytes) / 100 * headerSizeRate - if c.Int("b") > 0 { - blockSize = c.Int("b") - } - var targetBytes []byte - if len(inputBytes) < headerSize+blockSize { - targetBytes = inputBytes[headerSize:] - } else { - targetBytes = inputBytes[headerSize : headerSize+blockSize] - } - - outputBytes := []byte{} - outputBytes = append(outputBytes, inputBytes[0:headerSize]...) - outputBytes = append(outputBytes, bytes.Repeat(targetBytes, number)...) - outputBytes = append(outputBytes, inputBytes[headerSize+blockSize:]...) - writeToFile(c.String("o"), outputBytes) -} - -func writeToFile(filename string, outputBytes []byte) { - fo, err := os.Create(filename) - - if err != nil { - panic(err) - } - - defer func() { - if err := fo.Close(); err != nil { - panic(err) - } - }() - - fo.Write(outputBytes) -} diff --git a/datebase.json b/datebase.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/datebase.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/events/message.js b/events/message.js new file mode 100644 index 0000000..dfff945 --- /dev/null +++ b/events/message.js @@ -0,0 +1,85 @@ +const Discord = require("discord.js"); +const ayarlar = require('../ayarlar.json'); +let talkedRecently = new Set(); + +module.exports = message => { + if (talkedRecently.has(message.author.id)) { + return; + } + talkedRecently.add(message.author.id); + setTimeout(() => { + talkedRecently.delete(message.author.id); + }, 2500); + let client = message.client; + if (message.author.bot) return; + if (!message.content.startsWith(ayarlar.prefix)) return; + let command = message.content.split(' ')[0].slice(ayarlar.prefix.length); + let params = message.content.split(' ').slice(1); + let perms = client.elevation(message); + let cmd; + if (client.commands.has(command)) { + cmd = client.commands.get(command); + } else if (client.aliases.has(command)) { + cmd = client.commands.get(client.aliases.get(command)); + } + if (cmd) { + if (cmd.conf.enabled === false) {//Bakım Açmak İçin true Kapatmak İçin false + if (!ayarlar.sahip.includes(message.author.id) && !ayarlar.sahip.includes(message.author.id)) { + const embed = new Discord.MessageEmbed() + .setDescription(`:x: **${cmd.help.name}** isimli komut şuanda geçici olarak kullanıma kapalıdır!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + + if (cmd.conf.permLevel === 1) { + if (!message.member.hasPermission("MANAGE_MESSAGES")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Mesajları Yönet** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 2) { + if (!message.member.hasPermission("KICK_MEMBERS")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Üyeleri At** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 3) { + if (!message.member.hasPermission("BAN_MEMBERS")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Üyeleri Yasakla** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 4) { + if (!message.member.hasPermission("ADMINISTRATOR")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Yönetici** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 5) { + if (!ayarlar.sahip.includes(message.author.id)) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu sadece **sahibim** kullanabilir!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (perms < cmd.conf.permLevel) return; + cmd.run(client, message, params, perms); + } + +}; diff --git a/events/prefix.js b/events/prefix.js new file mode 100644 index 0000000..d76958a --- /dev/null +++ b/events/prefix.js @@ -0,0 +1,48 @@ +const Discord = require("discord.js"); +const ayarlar = require('../ayarlar.json'); +const db = require('nrc.db') + + +module.exports.run = async (client, message, args) => { + + let sıfırla = args[0] + let p = db.fetch(`prefix_${message.guild.id}`) + + if (sıfırla == "sıfırla") { + if (!p) return message.channel.send('Prefix ayarlamamışsınız!') + db.delete(`prefix_${message.guild.id}`) + message.channel.send('Tebrikler Prefix Başarıyla Eski Haline Döndü Artık Prefix **/**`') + return; + } + + let prefix = args.slice(0).join(" "); + if (!prefix) { + const embed = new Discord.MessageEmbed() + .setColor("RED") + .setDescription(`Lütfen bir prefix belirtiniz!`) + .setFooter(client.user.username, client.user.avatarURL); + + message.channel.send(embed); + return; + } + const embed = new Discord.MessageEmbed() + .setColor("RANDOM") + .setDescription(`Prefix; \`${prefix}\` olarak ayarlandı!`) + .setFooter(client.user.username, client.user.avatarURL); + + message.channel.send(embed); + db.set(`prefix_${message.guild.id}`, prefix) +}; + +module.exports.conf = { + enabled: true, + guildOnly: true, + aliases: ['prefix'], + permLevel: 3 +}; + +module.exports.help = { + name: "prefix", + description: "prefix", + usage: "prefix" +}; \ No newline at end of file diff --git a/events/ready.js b/events/ready.js new file mode 100644 index 0000000..f2b4301 --- /dev/null +++ b/events/ready.js @@ -0,0 +1,27 @@ +//READY CODE +const Moment = require('moment') +const Discord = require('discord.js') +let prefix = 'bot prefix' +module.exports = client => { + + const aktiviteListesi = [ + `BAKIMDA!`, + + ] + + client.user.setStatus('online') + //dnd + //idle + //online + //offline + setInterval(() => { + const Aktivite = Math.floor(Math.random() * (aktiviteListesi.length - 1)) + client.user.setActivity(aktiviteListesi[Aktivite], { type: 'PLAYING'}); + }, 5000) +} + + +// WATCHING : izliyor +// LISTENING : dinliyor +// PLAYING : oynuyor +// available : YAYINDA \ No newline at end of file diff --git a/json.sqlite b/json.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..81453cce6f7cbf9c4f566f938e7fbb14c7afb0fb GIT binary patch literal 8192 zcmeI1%Wl&^6o&1(lw0Doi;Ar=BBB&kbH7kk#gs@ODk0hkfmA7)mb7(qF-n{T2;PA= zU;|=Xo`JGt&lA8Cu;;jtUQ|j%*XPJbo*Dh~&zW!Rh2_=9%W2+>HnU#GU24 zM3Lutvyfwu!|pSGN}B@o(C5O5n>+oiTjbc%N-e3^qIz<7xfT^8(TxZ9qI&IV{nqbp(VQv1 z&8JFlyvn!AZlzPX8U6_0hc2{XSpHt#Ex#_$m424KmOg+40|_7jB!C2v01`j~NB{{S z0VHsC0@bNt{(9fJe#20!nBbNfZKToGig+z{pFi$>YOTd_b@D(b6ycJ9jwof7wd9zt zGSq1*31^y1F157QP<2$N!=SdXy|upHa$VPMXiGKcS{X&DVH}J>Y$z9sb4!Vm;KQVW zLYB+HVkhe~`)=p&vsMS)!N#C7c;%w|*_U@)&Gz%O8$HT1_`906qLr*2J!$q*7zH<0 z3g#EGUiR+_w6TH`*fZBKM_djT7qb7YyLu^Dyqe{wujMw<0`$zqVCh=R^;|pc=Wr-g z6)6CKAxuhIKy2mdCP=Fn4p}Qk1!F`4FfFy(mkrM@IUlrU`))gZk#*h6hEO18(sH9T z;Y2di(DcN7s;J-^mSkF~IGGr2A;D5gK@=PnH-g6d7Ro~1ijX)tH_Af6VuDa@C4q-P z5o!Kd7z4W#B2LCfS-{RM1q@blO_>#%4J}|mavLYXF$>KJu}Tu5gr>$wP8+9NfQU;G VSH}*qpV;%!SH?fkoviAJ?ib_L3h)2` literal 0 HcmV?d00001 diff --git a/komutlar/avatar.js b/komutlar/avatar.js new file mode 100644 index 0000000..882d739 --- /dev/null +++ b/komutlar/avatar.js @@ -0,0 +1,56 @@ +const Discord = require('discord.js'); + +exports.run = async (client, message, args)=> { +//let us = message.guild.members.cache.find(u => args.slice(0).join(' ').includes(u.username)) +let muser = message.mentions.users.first(); +let userid; +if(isNaN(args[0])){ + if(!muser){ + userid = message.author.id; + }else{ + userid = muser.id; + } +}else{ + userid = args[0]; +} +try{ +let user = await client.users.fetch(userid); +let avatar = user.displayAvatarURL({dynamic: true, size: 1024}) +if(avatar.endsWith(".gif?size=1024")) { + +let embed = new Discord.MessageEmbed() +.setAuthor(user.tag + '', user.displayAvatarURL()) +.setDescription(`**[[PNG]](${user.displayAvatarURL({ format: 'png', size: 1024 })})** | **[[JPEG]](${user.displayAvatarURL({ format: 'jpeg', size: 1024 })})** | **[[GIF]](${user.displayAvatarURL({ format: 'gif', size: 1024 })})** | **[[WEBP]](${user.displayAvatarURL({ format: 'webp', size: 1024 })})**`) +.setImage(user.displayAvatarURL({dynamic: true, size: 1024})) +.setColor("RANDOM") +message.channel.send(embed) + +} else { + + let embed = new Discord.MessageEmbed() +.setAuthor(user.tag + '', user.displayAvatarURL()) +.setDescription(`**[[PNG]](${user.displayAvatarURL({ format: 'png', size: 1024 })})** | **[[JPEG]](${user.displayAvatarURL({ format: 'jpeg', size: 1024 })})** | **~~[GIF]~~** | **[[WEBP]](${user.displayAvatarURL({ format: 'webp', size: 1024 })})**`) +.setImage(user.displayAvatarURL({dynamic: true, size: 1024})) +.setColor("RANDOM") +message.channel.send(embed) + +} +}catch{ + message.channel.send(new Discord.MessageEmbed().setColor("RANDOM").setDescription("Kullanıcıyı Bulamadım!")); + return; +} + +} + + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['avatarım'], + permLevel: 0 +}; + +exports.help = { + name: 'avatar', + description: '', + usage: 'avatar [@kullanıcı]' +}; diff --git a/komutlar/ban.js b/komutlar/ban.js new file mode 100644 index 0000000..b250f8d --- /dev/null +++ b/komutlar/ban.js @@ -0,0 +1,41 @@ +const Discord = require('discord.js'); +const ayarlar = require('../ayarlar.json') + +exports.run = async (client, message, args) => { +let guild = message.guild.id; +var prefix = ayarlar.prefix; + + if (!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send(`Bu komutu kullanabilmek için **Üyeleri Yasakla** iznine sahip olmalısın!`); + + let user = message.mentions.users.first() || message.client.users.cache.get(args[0]) || message.client.users.cache.find(m => m.username === args.slice(0).join(" ")) || message.author; + let reason = args.slice(1).join(' '); + + if (!user) return message.channel.send(`Sunucudan yasaklamak istediğiniz kullanıcıyı etiketlemelisiniz; \`${prefix}ban \` `); + if (user.id === message.author.id) return message.channel.send('Kendini yasaklayamazsın.'); + if (user.position > message.member.roles.highest.position) return message.channel.send(`Bu kullanıcının senin rollerinden/rolünden daha yüksek rolleri/rolü var.`); + if (!reason) reason = 'Belirtilmemiş.' + if (!user) return message.channel.send(`Etiketlediğin kullanıcıyı sunucuda bulamadım.`) + let member = message.guild.member(user) + if (!member) return message.channel.send(`Etiketlediğin kullanıcıyı sunucuda bulamadım.`) + + if (!message.guild.member(user).bannable) return message.channel.send(`Bu kişiyi sunucudan yasaklayamıyorum çünkü \`benden daha yüksek bir role sahip\` ya da \`bana gerekli yetkileri vermedin\`.`); + + if (!message.guild.member(user).bannable) return message.channel.send('Sunucudaki yetkilileri yasaklayamam!'); + + message.guild.members.ban(user.id) + message.channel.send(`<@${user.id}> **Adlı kullanıcı yasaklandı!** **Sebep: \`${reason}\`**`) + +}; + +exports.conf = { + aliases: ['yasakla'], + permLevel: 2, + kategori: 'Moderasyon' +}; + +exports.help = { + name: 'ban', + description: 'Belirttiğiniz kişiyi sunucudan yasaklar.', + usage: 'ban <@kullanıcı> ', + +}; \ No newline at end of file diff --git a/komutlar/banlist.js b/komutlar/banlist.js new file mode 100644 index 0000000..0c5f0f6 --- /dev/null +++ b/komutlar/banlist.js @@ -0,0 +1,48 @@ +const Discord = require("discord.js"); +const talkedRecently = new Set(); + +exports.run = async(client, message, args) => { + + +const bans = new Map(); + message.guild.fetchBans().then(g => { + bans[g.id] = g; + let banlist = (`${bans[g.id].map(ge => `\n (${ge.user.tag}) (${ge.user.id})`).join('\n')}`) + try { + let noembed = new Discord.MessageEmbed() + .setColor('#0070FF') + .setDescription(`Bu Sunucuda Yasaklı Kullanıcı Bulunmuyor.`) + .setAuthor(message.guild.name, message.guild.iconURL() ? message.guild.iconURL() : "https://images-ext-2.discord.net/external/hHow2gpD0uyL8WnA8ynAHuPbzm_lE1lNAaxkLqDT0Fs/https/images-ext-1.discord.net/external/rBk_abKMsqAKoATjXbtyqKJt2bTXI_shMEemVpbNtFw/http/www.kalahandi.info/wp-content/uploads/2016/05/sorry-image-not-available.png") + .setFooter('Bu komutu kullanan kullanıcı ' + message.author.tag, message.author.avatarURL()) + if(banlist.length === 0) return message.channel.send(noembed) + const embed = new Discord.MessageEmbed() + .setDescription(banlist) + .setAuthor(message.guild.name, message.guild.iconURL() ? message.guild.iconURL() : "https://images-ext-2.discord.net/external/hHow2gpD0uyL8WnA8ynAHuPbzm_lE1lNAaxkLqDT0Fs/https/images-ext-1.discord.net/external/rBk_abKMsqAKoATjXbtyqKJt2bTXI_shMEemVpbNtFw/http/www.kalahandi.info/wp-content/uploads/2016/05/sorry-image-not-available.png") + .setFooter('Bu komutu kullanan kullanıcı ' + message.author.tag, message.author.avatarURL()) + .setColor('#0070FF') + message.channel.send(embed) + } catch (err) { + const embed = new Discord.MessageEmbed() + .addField(`Sunucuda Bulunan Yasaklılar`, '<:no:663378512417128449> Üzgünüm ama sunucunuzda fazla sayıda yasaklı kullanıcı bulunuyor Bu Yüzden gösteremiyorum. Discord buna izin vermiyor.') + .setColor('RED') + .setFooter('Bu komutu kullanan kullanıcı ' + message.author.tag, message.author.avatarURL()) + .setTimestamp() + message.channel.send(embed) + } + + }); + } + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: ['yasak-listesi',"banlist"], + permLevel: 1 +}; + +exports.help = { + name: 'banlist', + description: 'Sunucudaki Yasaklı Kullanıcıları Gösterir.', + usage: 'banlist', + +}; diff --git a/komutlar/davet.js b/komutlar/davet.js new file mode 100644 index 0000000..d780ea1 --- /dev/null +++ b/komutlar/davet.js @@ -0,0 +1,25 @@ +const Discord = require('discord.js'); +const client = new Discord.Client(); +const ayarlar = require('../ayarlar.json'); + +exports.run = (client, message) => { + const ömüş = new Discord.MessageEmbed() + .setTitle("Dromic Bot | Davet Linkleri ") + .setColor("RANDOM") + .addField("**Botun Sahibi**", "<@!849729498889977917>") + .addField("** Destek Sunucusu**", " [Sunucumuza Katıl](https://discord.gg/MxNEuRXmru)", ) + .addField("** Davet Linki**", " [Botu Davet Et](https://discord.com/oauth2/authorize?client_id=761579293104406558&scope=bot&permissions=805314622)", ) + .setFooter(`${message.author.tag} Tarafından İstendi.`, message.author.avatarURL()) + message.channel.send(ömüş); +}; + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [], + permLevel: 0, +}; + +exports.help = { + name: 'davet', +}; \ No newline at end of file diff --git a/komutlar/istatistik.js b/komutlar/istatistik.js new file mode 100644 index 0000000..95cc053 --- /dev/null +++ b/komutlar/istatistik.js @@ -0,0 +1,49 @@ +const Discord = require('discord.js'); +const client = new Discord.Client(); +const moment = require("moment"); +require("moment-duration-format"); +const ayarlar = require('../ayarlar.json'); + + +exports.run = (client, message) => { + const DBL = require('dblapi.js') + const dbl = new DBL('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc2MTU3OTI5MzEwNDQwNjU1OCIsImJvdCI6dHJ1ZSwiaWF0IjoxNjE0MzY2MTk2fQ.mI085-_oKn3VChPMZMmqzngeRzAishsmP8hZIdz44-g', client) + + dbl.hasVoted(message.author.id).then(voted => { + if(voted) { + +//KODLAR + + const istatistikozel = new Discord.MessageEmbed() + .setColor(0x36393F) + .setAuthor(`${client.user.username} Bot`, client.user.avatarURL()) +.setDescription(`**Dromic Bot** | İstatistik Komutu`) + .addField(`Bot Sahibi`, `<@466212593867030528>`, ) + .addField("Sunucu Sayısı ", `${client.guilds.cache.size.toLocaleString()}`, true) + .addField("Toplam Kullanıcı Sayısı ", `${client.guilds.cache.reduce((a, b) => a + b.memberCount, 0).toLocaleString()}`, true) + .addField("Ping" , `${client.ws.ping}`, true) + .addField("Discord.js Sürümü ", `${Discord.version}`, true) + .addField(`Destek Sunucum`, `[Tıkla](https://discord.gg/7aZz9rAGYj)`, true) + .addField(`Botu Davet Et`, `[Tıkla](https://discord.com/oauth2/authorize?client_id=761579293104406558&scope=bot&permissions=805314622)`, true) + .setFooter(`${message.author.tag} Tarafından İstendi.`, message.author.avatarURL) + message.channel.send(istatistikozel) +} else { + message.channel.send(`Bu komutu kullanabilmek için botumuza oy vermelisin!https://lk.tc/rWLkW`) + } +}) + }; + + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['istatistik', 'i', 'istatistikler', 'botbilgi', 'bilgi', 'hakkında', 'bot hakkında', 'bothakkında'], + kategori: "Bot", + permLevel: 0 +}; + +exports.help = { + name: 'bilgi', + description: 'Bot ile ilgili bilgi verir.', + usage: 'bilgi' +}; \ No newline at end of file diff --git a/komutlar/kick.js b/komutlar/kick.js new file mode 100644 index 0000000..af9c285 --- /dev/null +++ b/komutlar/kick.js @@ -0,0 +1,61 @@ +const Discord = require("discord.js"); +const db = require("quick.db"); +module.exports.run = async (bot, message, args) => { + let prefix = (await db.fetch(`prefix_${message.guild.id}`)) || "?"; + if (!message.member.hasPermission("KICK_MEMBERS")) { + const embed = new Discord.MessageEmbed() + .setDescription("```Ne yazık ki bu komutu kullanmaya yetkin yok.```") + .setColor("BLACK"); + + message.channel.send(embed); + return; + } + + let u = message.mentions.users.first(); + if (!u) { + return message.channel.send( + new Discord.MessageEmbed() + .setDescription("Lütfen atılacak kişiyi etiketleyiniz!") + .setColor("BLACK") + .setFooter(bot.user.username, bot.user.avatarURL()) + ); + } + + const embed = new Discord.MessageEmbed() + .setColor("BLACK") + .setDescription(`${u} Adlı şahsın sunucudan atılmasını onaylıyor musunuz?`) + .setFooter(bot.user.username, bot.user.avatarURL()); + message.channel.send(embed).then(async function(sentEmbed) { + const emojiArray = ["✅"]; + const filter = (reaction, user) => + emojiArray.includes(reaction.emoji.name) && user.id === message.author.id; + await sentEmbed.react(emojiArray[0]).catch(function() {}); + var reactions = sentEmbed.createReactionCollector(filter, { + time: 30000 + }); + reactions.on("end", () => sentEmbed.edit("İşlem iptal oldu!")); + reactions.on("collect", async function(reaction) { + if (reaction.emoji.name === "✅") { + message.channel.send( + `İşlem onaylandı! ${u} adlı şahıs sunucudan atıldı!` + ); + + message.guild.member(u).kick(); + } + }); + }); +}; + +module.exports.conf = { + aliases: [], + permLevel: 2, + enabled: true, + guildOnly: true, + kategori: "moderasyon" +}; + +module.exports.help = { + name: "kick", + description: "kick", + usage: "kick" +}; diff --git a/komutlar/otorol.js b/komutlar/otorol.js new file mode 100644 index 0000000..964c7ba --- /dev/null +++ b/komutlar/otorol.js @@ -0,0 +1,36 @@ +const Discord = require('discord.js'); +const db = require('quick.db') + +exports.run = async (client, message, args) => { + + if (!message.member.hasPermission("ADMINISTRATOR")) return message.reply(`:warning: Bunu yapabilmek için gerekli yetkiye sahip değilsiniz!`) + + let hgbbkanal = db.fetch(`hgbbkanal_${message.guild.id}`) + + if (!hgbbkanal) { + let kanal = message.mentions.channels.first(); + if (!kanal) return message.reply(`:question: Mesajların yollanacağı kanalı belirtmediniz`) + + db.set(`hgbbkanal_${message.guild.id}`, kanal.id) + message.channel.send(`:white_check_mark: HGBB kanalı başarılı bir şekilde ${kanal} olarak ayarlandı.`) + + } else { + if (hgbbkanal) { + + return message.channel.send(`:warning: Bu sunucuda daha önceden ayarlanmış kanal mevcut. Sıfırlamak için: hgbbkanal-sıfırla`) + + } + } +} +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['hgbbkanal-ayarla'], + permLevel: 0 +} + +exports.help = { + name: 'hgbbkanalayarla', + description: 'HGBB kanalını ayarlarsınız.', + usage: 'hgbbkanalayarla #kanal' +} \ No newline at end of file diff --git a/komutlar/otorolkapat.js b/komutlar/otorolkapat.js new file mode 100644 index 0000000..72aae27 --- /dev/null +++ b/komutlar/otorolkapat.js @@ -0,0 +1,32 @@ +const Discord = require('discord.js'); +const db = require('quick.db') + +exports.run = async (client, message, args) => { + + if (!message.member.hasPermission("ADMINISTRATOR")) return message.reply(`:warning: Bunu yapabilmek için gerekli yetkiye sahip değilsiniz!`) + + let hgbbkanal = db.fetch(`hgbbkanal_${message.guild.id}`) + + if (hgbbkanal) { + db.delete(`hgbbkanal_${message.guild.id}`) + message.channel.send(`:white_check_mark: HGBB kanalı başarılı bir şekilde sıfırlandı.`) + } else { + if (!hgbbkanal) { + + return message.channel.send(`:warning: Bu sunucuda daha önceden ayarlanmış kanal mevcut değil. Ayarlamak için: hgbbkanal-ayarla`) + + } + } +} +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['hgbbkanal-sıfırla'], + permLevel: 0 +} + +exports.help = { + name: 'hgbbkanalsıfırla', + description: 'HGBB kanalını sıfırlarsınız.', + usage: 'hgbbkanalsıfırla #kanal' +} \ No newline at end of file diff --git a/komutlar/oylama.js b/komutlar/oylama.js new file mode 100644 index 0000000..d885453 --- /dev/null +++ b/komutlar/oylama.js @@ -0,0 +1,49 @@ +const Discord = require('discord.js'); + + exports.run = (client, message, args) => { + message.delete(); + + let question = args.join(' '); + + let user = message.author.username + + if (!question) return message.channel.send( + + new Discord.MessageEmbed() + + .addField(`:x: **Yazı Yazman Gerek** :x:`)).then(m => m.delete(5000)); + + console.log("oylama komutu " + message.author.username + '#' + message.author.discriminator + " tarafından kullanıldı.") + message.channel.send( + + new Discord.MessageEmbed() + + .setColor("BLACK") + .setThumbnail(client.user.avatarURL()) + .setTimestamp() + .setFooter('Oylama Sistemi', client.user.avatarURL()) + + .addField(`**Oylama**`, `**${question}**`)).then(function(message) { + + message.react('✅'); + + message.react('❌'); + + }); + + }; + + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['oylama'], + + permLevel: 1 +}; + +exports.help = { + name: 'oylama', + description: 'Oylama yapmanızı sağlar.', + usage: 'oylama ' +}; + diff --git a/komutlar/pcbak.js b/komutlar/pcbak.js new file mode 100644 index 0000000..96d02c4 --- /dev/null +++ b/komutlar/pcbak.js @@ -0,0 +1,23 @@ +const Discord = require ("discord.js") + +exports.run = async (client, message, args) => { + + var durumlar = [new Discord.MessageEmbed().setColor("RANDOM").setDescription("**Olamaz! Şarjın Yok :/**"), new Discord.MessageEmbed().setColor("RANDOM").setDescription("**Bilgisayara Bakıyorsun...**").setImage("https://i.giphy.com/media/l3vR85PnGsBwu1PFK/giphy.gif"), new Discord.MessageEmbed().setColor("RANDOM").setDescription("**Olamaz! Ekran Kartın Patladı :/**")] + var durum = durumlar[Math.floor(Math.random() * durumlar.length)]; + message.channel.send(durum) + } + + + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ["bigisayarabak", "oyun-oyna", "oyunoyna", "bilgisayar"], + permLevel: 0 +} + +exports.help = { + name: "bilgisayara-bak", + description: "Bilgisayara Bakarsınız..", + usage: "bilgisayara-bak" +} \ No newline at end of file diff --git a/komutlar/ping.js b/komutlar/ping.js new file mode 100644 index 0000000..bbc0f7f --- /dev/null +++ b/komutlar/ping.js @@ -0,0 +1,23 @@ +const Discord = require('discord.js'); +exports.run = async(client, message) => { + + + +let embed = new Discord.MessageEmbed() +.setColor("PINK") +.addField(":bar_chart: **__Gecikme Sürem__**", `**${client.ws.ping}** ms Olarak Hesaplandı.`,true) +message.channel.send(embed) +} + + +exports.conf = { +enabled: true, +guildOnly: true, +aliases: ['p', 'ms'], +permLevel: 0 +}; + +exports.help = { +name: 'ping', +description: 'Botun pingini gösterir', +usage: 'ping' }; diff --git a/komutlar/piyango.js b/komutlar/piyango.js new file mode 100644 index 0000000..a734b62 --- /dev/null +++ b/komutlar/piyango.js @@ -0,0 +1,29 @@ +const Discord = require ("discord.js") +const client = new Discord.Client(); + + +exports.run = (client, message) => { + + message.channel.send("Bakalım Büyük Ödülü Kazanabilecek Misin...").then(message => { + var sonuçlar = ["Tebrikler, Piyangodan 100.000.000€ Kazandınız!", "Maalesef 1 Kuruş Kazandınız, Umarız Bir Daha Ki Sefere Piyango Çıkar..."] + var sonuç = sonuçlar[Math.floor(Math.random() * sonuçlar.length)]; + message.edit(`${sonuç}`); + + + + + }); +} + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [""], + permLevel: 0 +}; + +exports.help = { + name: "piyango", + description: "piyango işte ne sandın", + usage: "piyango" +}; \ No newline at end of file diff --git a/komutlar/rastgele-renk.js b/komutlar/rastgele-renk.js new file mode 100644 index 0000000..05d92ba --- /dev/null +++ b/komutlar/rastgele-renk.js @@ -0,0 +1,23 @@ +const Discord = require('discord.js'); +const client = new Discord.Client(); + +exports.run = (client, message) => { + message.channel.send('Dragon | :loading: Renk Yükleniyor.').then(message => { + var espriler = ['Kırmızı','Mavi','Beyaz.','Siyah.','Lacivert.','Sarı.','Mor.','Pembe.','Yeşil.','Camgöbeği.','Turuncu.','Eflatun.','Bordo.','Kahverengi.','Deniz mavisi.','Gri.']; + var espri = espriler[Math.floor(Math.random() * espriler.length)]; + message.edit(`${espri}`); + }); + } + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['rastgele-renk', 'renk-seç', 'seç-renk', 'seçbi-renk'], + permLevel: 0 +}; + +exports.help = { + name: 'şanslırengim', + description: 'Espri yapar.', + usage: 'rastgele-renk' +}; \ No newline at end of file diff --git a/komutlar/rolbilgi.js b/komutlar/rolbilgi.js new file mode 100644 index 0000000..02e8532 --- /dev/null +++ b/komutlar/rolbilgi.js @@ -0,0 +1,39 @@ +const { MessageEmbed } = require("discord.js"); + +module.exports.run = async (bot, message, args) => { + if (!args[0]) return message.channel.send("**Lütfen Bir Rol Girin!**") + let rol = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]) || message.guild.roles.cache.find(r => r.name.toLowerCase() === args.join(' ').toLocaleLowerCase()); + if (!rol) return message.channel.send("**Lütfen Geçerli Bir Rol Girin!**"); + + const bahset = { + false: "Hayır", + true: "Evet" + } + + let enes = new MessageEmbed() + .setColor("#00ff00") + .setAuthor("Rol Bilgi") + .setThumbnail(message.guild.iconURL()) + .addField("**Rol ID**", `\`${rol.id}\``, true) + .addField("**Rol İsmi**", rol.name, true) + .addField("**Renk Kodu**", rol.hexColor) + .addField("**Sahip Üyeler**", rol.members.size) + .addField("**Poziyon**", rol.position) + .addField("**Bahsedilebilir**", bahset[rol.mentionable]) + .setFooter(message.member.displayName, message.author.displayAvatarURL()) + .setTimestamp() + + message.channel.send(enes); + } + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['rolbilgi'], + permLevel: 0 +}; + +exports.help = { + name: 'Rolbilgi', + description: 'Rol Hakkında Bilgi Verir.', + usage: 'rolbilgi' +}; \ No newline at end of file diff --git a/komutlar/sa-as.js b/komutlar/sa-as.js new file mode 100644 index 0000000..6353c0e --- /dev/null +++ b/komutlar/sa-as.js @@ -0,0 +1,38 @@ +const db = require('quick.db') +const Discord = require('discord.js') + +exports.run = async (bot, message, args) => { + + + + if (!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send(':no_entry: Bu komudu kullanabilmek için `Sunucuyu Yönet` yetkisine sahip olmalısın!') + if (!args[0]) return message.channel.send(':no_entry: Sa-as yazısını açmak için; `d!sa-as aç veya kapat`') + + if (args[0] == 'aç') { + + db.set(`saas_${message.guild.id}`, 'açık') + message.channel.send(`Başarıyla botun \`Aleyküm selam\` Yazmasını Açtınız. Artık bot \`Sa\` Yazıldığında Aleyküm Selam Yazıcak.`) + + } + + if (args[0] == 'kapat') { + db.set(`saas_${message.guild.id}`, 'kapali') + message.channel.send(` Başarıyla \`Aleyküm selam\` Yazmasını Kapattınız, Artık Bot \`Sa\` Yazıldığında Cevap Vermeyecek.`) + + } +} + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [], + permLevel: 0 + +}; + +exports.help = { + name: 'sa-as', + description: 'Selamün aleyküm, Aleyküm selam', + usage: 'a.sa-as' + +}; \ No newline at end of file diff --git a/komutlar/sil.js b/komutlar/sil.js new file mode 100644 index 0000000..9ea9e79 --- /dev/null +++ b/komutlar/sil.js @@ -0,0 +1,21 @@ +const Discord = require('discord.js'); +exports.run = function(client, message, args) { +if(!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Bu Komutu Kullanmak İçin İzniniz Yok!"); +if(!args[0]) return message.channel.send(`**Lütfen Silinicek Mesaj Miktarını (1-100) Yazın!**`); +message.channel.bulkDelete(args[0]).then(() => { + message.channel.send(` ${args[0]} Adet Mesajı Sildim. `).then(msg => msg.delete(10000)); +}) +} + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: ['sil','temizle','süpür'], + permLevel: 1, +}; + +exports.help = { + name:'temizle', + description: 'Belirlenen miktarda mesajı siler.', + usage: 'temizle ' +}; \ No newline at end of file diff --git a/komutlar/sunucu-kur.js b/komutlar/sunucu-kur.js new file mode 100644 index 0000000..f5d6371 --- /dev/null +++ b/komutlar/sunucu-kur.js @@ -0,0 +1,91 @@ + const Discord = require('discord.js'); + + +exports.run = (client, message, params) => { + if(message.author.id === message.guild.owner.id) { + + message.channel.send(new Discord.MessageEmbed().setColor('#000000').setTitle('Sunucu Kuruyorsunuz!').setDescription('Gerekli Kanallar Kurulsunmu?. **Dikkat Sunucuyu Kurduğunuzda Eski Kanallar Silinmez Elinizle Tek Tek Silmeniz Gerekir**').setFooter('Bu eylemi onaylıyorsan "evet" yazman yeterlidir.Bu eylem 30 saniye içinde sona erecek')) +.then(() => { +message.channel.awaitMessages(response => response.content === 'evet', { +max: 1, +time: 30000, +errors: ['time'], +}) +.then((collected) => { + + message.guild.channels.create(`🔒┇Dromic-Bot`, {type : "voice"}) + + message.guild.channels.create(`💫 | Sunucu Hakkında`, { type: 'category'}); + message.guild.channels.create(`📚┇kurallar`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "💫 | Sunucu Hakkında"))) + message.guild.channels.create(`🔒┇rol-kazanma`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "💫 | Sunucu Hakkında"))) + message.guild.channels.create(`📊┇gelen-giden`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "💫 | Sunucu Hakkında"))) + + message.guild.channels.create(`🔔 | Duyuru`, { type: 'category'}); + message.guild.channels.create(`📢┇duyuru`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔔 | Duyuru"))) + message.guild.channels.create(`📣┇video-duyuru`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔔 | Duyuru"))) + message.guild.channels.create(`🚀┇boost-basanlar`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔔 | Duyuru"))) + + message.guild.channels.create(`🌍┇Genel Alan`, { type: 'category'}); + message.guild.channels.create(`💬┇sohbet`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + message.guild.channels.create(`🚨┇bot-komut`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + message.guild.channels.create(`📷┇foto-chat`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + message.guild.channels.create(`🐦┇kuş-dili`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + + message.guild.channels.create(`🔊SES KANALLARI`, { type: 'category'}); + message.guild.channels.create(` 🎥┇Video Odası `, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 👑┇Yönetim Özel`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 🔉 ┇Sesli Sohbet 1`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 🔉 ┇Sesli Sohbet 2`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 🔉 ┇Sesli Sohbet 3`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + + message.guild.channels.create(`Eğlence Kanalları`, { type: 'category'}); +message.guild.channels.create(`🔤┇kelime-türetmece`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`🔢┇sayı-sayma`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`🍬┇doğruluk-mu-cesaretlik-mi`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`🍎┇tuttu-tutmadı`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`✍┇özlü-bir-söz-yaz`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`😵┇adam-asmaca`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.channel.send("Gerekli kanallar kuruluyor.") + }); +}); + + } else { + message.channel.send(':x: **Üzgünüm ama bu komutu sadece sunucu sahibi kullanabilir!**'); + } +}; + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ["sunucu-kur","sunucukur"], + permLevel: 3, + kategori: "mod" +}; + + +exports.help = { + name: 'sunucukur', + description: 'Sunucuyu kurar.', + usage: 'sunucukur' +}; \ No newline at end of file diff --git "a/komutlar/yard\304\261m.js" "b/komutlar/yard\304\261m.js" new file mode 100644 index 0000000..949afa4 --- /dev/null +++ "b/komutlar/yard\304\261m.js" @@ -0,0 +1,61 @@ +const Discord = require("discord.js"); +exports.run = async (client, message, args) => { + +var page = 0; + +let arr = []; +let emojiarr = message.guild.emojis.cache.array(); +for(let i =0; Number(i + "0") < (Math.round(emojiarr.length/10)*10 +1); ++i) { +var on = emojiarr.slice(Number(i + "0"), Number(i + "0")+10) +arr.push(on.toString()) +} + +let embd = new Discord.MessageEmbed() +message.channel.send(embd.setDescription(arr[0]).setDescription('Dromic Bot\nSayfalı yardım menüsüne hoş geldiniz. Sayfaları değiştirerek kodları görebilirsiniz.')).then(async msg => { + await msg.react("⬅️"); + await msg.react("➡️"); + + let filter = (reaction, user) => user.id !== message.client.user.id && user.id === message.author.id; + + var collector = msg.createReactionCollector(filter, { + time: 120000 + }); + + collector.on("collect", async (reaction, user) => { + switch (reaction.emoji.name) { + case "⬅️": + reaction.users.remove(user).catch(console.error); + if (page == 0) return; + --page + + embd.setColor("RANDOM"); + embd.setFooter(`Sayfa ${page+1} / ${arr.length+1}`); + embd.setDescription("**d!yetkili**\n**d!genel**") + msg.edit(embd) + break; + case "➡️": + if (page == arr.length) return; + ++page + reaction.users.remove(user).catch(console.error); + embd.setColor("RANDOM"); + embd.setFooter(`Sayfa ${page+1} / ${arr.length+1}`); + embd.setDescription("**d!ayarlamalı**\n**d!eğlence**") + msg.edit(embd) + break; + + } + }); + }) +} + exports.conf = { + enabled: true, + guildOnly: true, + aliases: ["help", "yardim "], + permLevel: 0 + }; + + exports.help = { + name: "yardım", + description: "Sayfalı Yardım Menüsü -ArdaDemr", + usage: "Sayfalı Yardım Menüsü" + }; \ No newline at end of file diff --git a/komutlar/yaz.js b/komutlar/yaz.js new file mode 100644 index 0000000..425632f --- /dev/null +++ b/komutlar/yaz.js @@ -0,0 +1,21 @@ +const Discord = require('discord.js'); + +exports.run = (client, message, args) => { + let mesaj = args.slice(0).join(' '); +if (mesaj.length < 1) return message.reply('Yazmam için herhangi bir şey yazmalısın.'); + message.delete(); + message.channel.send(mesaj); +}; + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [], + permLevel: 0 +}; + +exports.help = { + name: 'gizli', + description: 'İstediğiniz şeyi bota yazdırır.', + usage: 'yaz [yazdırmak istediğiniz şey]' +}; \ No newline at end of file diff --git a/komutlar/zarat.js b/komutlar/zarat.js new file mode 100644 index 0000000..13972b0 --- /dev/null +++ b/komutlar/zarat.js @@ -0,0 +1,26 @@ +const Discord = require('discord.js') + +exports.run = function(bot, message) { + message.channel.send(new Discord.MessageEmbed() + .setColor(message.guild.me.displayHexColor) + .setTitle('🎲 Zarın: ' + doMagicDiceVoodoo())); + + function doMagicDiceVoodoo() { + var rand = ['3', '6', '5', '2', '1', '3', '13']; + + return rand[Math.floor(Math.random()*rand.length)]; + } +} + +exports.conf = { + enabled: true, + aliases: ['zar','zar-at'], + guildOnly: false, + permLevel: 0 +}; + +exports.help = { + name: 'zarat', + description: 'Zar Atın', + usage: 'zarat' +}; \ No newline at end of file diff --git a/main.go b/main.go deleted file mode 100644 index 2ebb9d5..0000000 --- a/main.go +++ /dev/null @@ -1,18 +0,0 @@ -package main - -import ( - "github.com/codegangsta/cli" - "os" -) - -func main() { - app := cli.NewApp() - app.Name = "glitch" - app.Version = Version - app.Usage = "Just another glitch command line tool" - app.Author = "Shimpei Makimoto" - app.Email = "github@makimoto.org" - app.Commands = Commands - - app.Run(os.Args) -} diff --git a/otorol.json b/otorol.json new file mode 100644 index 0000000..140ee97 --- /dev/null +++ b/otorol.json @@ -0,0 +1 @@ +{"761912059537129472":{"sayi":"813511932018950174","kanal":"813713331382255636"}} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cbd8b0c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,374 @@ +{ + "name": "hello-express", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "express": { + "version": "4.17.1", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "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==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "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==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c1cf0c5 --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "//1": "describes your app and its dependencies", + "//2": "https://docs.npmjs.com/files/package.json", + "//3": "updating this file will download and update your packages", + "name": "Dromic-Bot", + "version": "0.0.1", + "description": "Dromic Bot Burada!", + "main": "bot.js", + "scripts": { + "start": "node bot.js" + }, + "dependencies": { + "express": "^4.17.1", + "discord.js": "^12.5.1", + "fs": "^0.0.2", + "moment": "^2.29.1", + "chalk": "^4.1.0", + "jimp": "^0.16.1", + "quick.db": "^7.1.2", + "wio.db": "^4.0.15", + "ms": "^2.1.3", + "node-superfetch": "^0.1.11", + "crypto": "^1.0.1", + "os": "^0.1.1", + "cpu-stat": "^2.0.1", + "common-tags": "^1.8.0", + "moment-duration-format": "^2.3.2", + "parse-ms": "^2.1.0", + "dblapi.js": "^2.4.1", + "nrc.db": "^4.0.11" + }, + "engines": { + "node": "12.x" + }, + "repository": { + "url": "https://glitch.com/edit/#!/hello-express" + }, + "license": "MIT", + "keywords": [ + "node", + "glitch", + "express" + ] +} \ No newline at end of file diff --git a/samples/original.jpg b/samples/original.jpg deleted file mode 100644 index 01bbe08ff8930531a3f5e07b49f5a9be27d845b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35972 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 diff --git a/samples/repeat.jpg b/samples/repeat.jpg deleted file mode 100644 index d63889ae4d1ed87ee5d2399ebf3d7cfaee637c18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37572 zcmeEtb#R|1zdFg*@|6fM;i+_6s z0L;<-t?PeTA(2=f6DxeZ~mu@vZ64k%s7Y_F#R8Rga3j5ukC`003ZyR{yzTyl9RC;sQ&W<%=`R2P zF#rH)oHBHFaQRmo0Bq263~U6#5Hb$R680X6A58&=h3F4e3=<}IoEW5ntM<92od;xS zP1=ug^DeKsz7vLzkB>EgFaY}V7pO0vp`oClU|^tO5ik%D;NcN)QPGewi1A5Ci0}ys z$*5WB$S9a72?^=>zcR6N^6>DG(g}$Pa*45W^KkyH1PlfS1_2HM2N4m6lbn#8^Z%MY zdI88#U_0PG5CCET7%~_*GT28y00%Tc5MY1j?0+XPaEMQkpTB@IF+mysa~?=tAU^#c za#jIw5TGf742}$ne}hd%G5|1Pm{hg9Z*ePI_E(^)au4@@=Qj*0&W)WJwH|mxvz}D( z+zXwZqG?Su@ezn;P2xANIj)aYvAOn}-FS4n08nq9d2Z%rsJY$UAC9u6pTCN3chGC6 zT!)sk%JT5aFmvs{5a28=@ix~>717o-W@+!IMxKm$VRi6{i{o1_-^;1*59Lh$_NB}Z zDI-_aFz}HMnjfw==I+)p1oHuWGKOWPKxlDyu8U8f{*vC-5?5N=EqRHc%DGC3a@yq>R3hOKD+YhycuT8Df zb2qN$ao6m-$F~D`2(pE&OWqRX>`^zRqkr0%H?rA{uFv8pbodi=JrwAjKYoZ_!wz%>ecdZRZ#u0GA1+sl24(*C-ZbZ!z(Rp%KV(cZDl>F$M# z%|0=fK65f5#AlHk7# zvBZE0034SNi&pTpU>oS6ZcWk`j!Y=bli|Sd_1jU^fe-81IK;(Wa%r{7ePSdm zEDs0ZAg!PXo@#pTv%mq&XCo3Y4D0gSD^bP?aVKZ%j2>*P*IN2?z?U6jRP>Zzl_$Yw-XFBGoFA;aQWd^limL@5dl*hy z)nT>ax3_y?0K2*nJQ^$UPC&D!Jxr{5AQIImj)c(!~)OS^SaJ>Ro&DW`&kRFO~a%+MOIU9#`6JJc`)C+ zinWsa2u6e$sq(Bq3>7-vhE2BYQEc?=PLvixMzxm z7VF5el9aA2xireu6c*Q$&WrQ3qz@<1LyGC-SX@@Q)h=ZBTxk3|zrx{#^_>3?t;K@} z`wqgIWoZKbAF?)WjO*vQ!!k26^ApNF{a=if<3!BB#V)$Ib4)VOc8@B%@g5@?K9i@g z08qODpM5~{l+f(+jG;iqKoNfW$9W%yAkr ztsfp*6G=3eb+X00bo?HH$pPC803G0>b?jkEASzW!d32YM@gI5oM;`ytkN@b$f7Yx2 z*pL4g`>~kK1pt{s0E9H)7XV-r$ z#;mZ3mLx>Q$5oBydnD2Tkb!6EhWTrQf1%hxVpaso(8{CBHlgorAjBUH zYs{Gkozd$YTINO05m{Kc8|fC&=jlpi&MewqZT3xAW)r#OWQyyYI5p$N)Pr`%Y>J0~aHLss}9)miaiaKLbFn9>4&!-wXo4BUd_0VRDTikyZOh zhv??fz17?dTa0D0yA~z~A6whU<0f&L28D$%smj^NsMHmWon7L4#!?s39$&wqxsGP- zn=P^K4OL9Gmd84yND$^z7LqE@pa?=~L;BSq(GvSDX!+di`26EzKmdTBMnCni{B=m0 zxek{@N%yFYG-Y2kJ@)+hCfw(Ip|um29nDVd?b~*Yu>D~vywF!Rs!Y>QhLT9wblN68 zv}N)sie=$C7DQ%8rX!n)v1c(E^GQgd0N^A7&?3+cc@sF{HKG3hU=L=P;NStfLS^Pj zm8No;Tozd}q!g028Ym9*4)cWwtsqaH9bGDUKA~Mg1NXK<9r;{s`eejyOXA?-bEv0I za_sbatuoWn7d1OiZ_8|*Y*XKjMYqS7pIq~IQ?Wnk-!KmCFSF~s8P{JZ_Ov}Q_Evsx z#hRA$lt;_Dm*BS}AesA%viXLHf%^cUz%hMfX<#Z!HH%wY+*hwBW_MJr!s4@1#Z*M- zX#MPQe<@|!bK$meHT0|$K3ONTMP)p_w)CNP@oTnCtd!uO4lmiM_1$_~;}rSe}A>eE@LC#AFfxDsDpQ(f}z^ z$^eS*^%i4rx0!N~3-L#%mR_f7aTx|<;KK{n%Bzh77Ln0Ef#q81Vvd#jf|nJsmcp)oGihj+4P;Hm_2o|`JGXn`hG zYrp?6Et%POezAXAslts2i9;b3(I6#3V)-%?(gqNPS!p$4>5p8=vo9VXogtOdR-w;l}#irgB-jS6RCx_tk^ed6EoGTQs_A=(njj zV#!fNt$nQr)5Ao_0AYmkP(m0&r1c&ma_S03NmVeCo3f8shuFy)ZP!qMCrO(e!uAa zlliY(hZeQZIu4WqP6M27=g#e)&EsfLIcLstHvWFd1CPu*|7SdoVGa!unj&8K7< z#)X-(tf!V2j#Gc0n<~M&%(f~L_+{AFBHQ3JFv@90(9n21pG`$xm)wy}WuMN4-EA%I zx;FK(w%DYr93L^KS9M=J@uCP$Nl2DvSU@{ITtDv&HZ8?sAam40^BNB-qtDbX?02-# zo~&iHZ{RSMJJq4;w_^yoNGm27*2&Dw%&|JrttYOVPH?L3YmHviLIkl|xeU4QJH9w3 zS(wx%$N!{Pi(wY{DU|d zEt{oIGwvIdTV>g@(r61u4h{##C@CKJ7`X>avXN1;-m(weh3;8_lT*COe3Dt-*__0M zXy4n4YOnd)dQ}n0Z4URQ$ ziWg175^7JCaEQv2M3<0R)BcVGIDiry@U^-uUVojV{qa`aeL*#1vbW5bE8r!ol!qdB zZjp2asnBWB`==DqMCl^6vpwlXR6~&*D%|S%7OeYz7|=iwiu0553?xT^#qRgR5YY{K zn+ek#5yMPb4TX7z;-z#1iw!X)#pA`Zj2(S$+wvQLi4Oo3gusJZC$I(sQ2y-(XvzOe zzd&CfD8Tez{$B)AZ~(}-{!hdY!f(GK0l>k*ARr(c6Fotk<=t4mOfZ#bYZ9}s&P^|6ii#z_2p`m7MHW@$ zneF5bWDzp{V3WN(BtWSqmRf&a@ z(C%sR8utMRE*^SK_*wZj;!mt{gEGbHA^sxj&JK>nWCA0V4&lfzannBbbD{1)G_$VL z#Ke?pT-LyuLeY`m>?!GM+j{MgRj?JaFY~d5rF+O6Gh_N|=OU;g9M-i_tv|QB1c*;G z9{`O2mHok3mhpPrAj@~npL_uy0Aso4J=O>s^>w)?u&}r1;H16-BgYRwmEHrwTnYM} z`a=+I#K?QN2Og)e2E!sJ8cg&Eg@WImkFW3QFptzvQl*%9z`5zrtp3#pAeR42$}h@s zOy^1q#5QR!)(=3P@wPCfY=J7Jig1X5w?eG2&^K|EW0*q#o>=jxnh-`$(SOY5U$lk(bH|j_ z7Jl0)7D#-220!xB zPXgnc$lD~zPne3R{+)CAk?&{uCUEa`n^2LQJJ)CC6%i*v36p{zOTN6Ole_It5U|C3 zTv(iq$zsN`P=YDH9a&3Be zJ(2e@f}4PGErd@ZHR3VV#IM#=)-HnrdR-ROCkEGqRm<#xOKJ`S-XhlJY%0}7Pn5bC z{Yb>M{{Ep=J_!3vL9TEnzOh%e-fVHal{Ny#N%cX-G&=WCY1GMp;}9x|X<@qAF^m3B zAw`5%a0M@RdZ;f$_NC>AxgN26luV1SsQS_jZ#CeP!05F-j&ZEe&`pPoBC65PNGY4Z z-Oi$`AMB$njN`=)&X{4!vIbuQi_mp?G04RwzPyU>V!Ht;lXlqk%_h zXn$ln(?*~ENkbgPA2I|bri_-TAb3MJ_EU}5B=b_txTq{0CrU)^Iaf z`UB9@bZzU}-N$6=(9n2M{L;uZef)!y*>Vqg#Z2j0{>UurbFWFPIxgQlH*nJHKpTAE{C+XwV z8RlG5kqPIng9Fa)n}mZD9cRMEF9%$H&LVSqisf}_ezY3%l{l6kfI!=Z&IuP>YXk|~qrIb(cO*STzh)c*R-~@UWSV&m>_vZ%yR+Cxd=D74#y06+0V$zW_6y5waQBAAZ zsMfnwcAWyc_ph@46Ajw=wafwYDJ1POIsaQK|MsFuiMYVit$X79i5B9waCGx`k900) z$Ba4-Rf7{;gm~ILj!EW-f1-XG@Nrq@i2j|_LHi6-tiKV#h3RbdOKhjsOo6A2vzqb( z8+3pNIxSF|w`-VB$HXi-bEC-3TnRfwIa-IDS3Tul^a1dz#(yr@DNa~T#f=a)FA2GZ!v?6XaS!I z!t;u{NSqTqHyd(&K+vzgwRedi#%=_JCt&0Lw*MMuz?p&7*l5i;pD(g|*MRe7^4hod z280aVIpcMBHHV}^@00hPAgr-)s^KU*!O4B2CjDpsF+sRDT^%ehE{jK4L`$5^^q;t& z^>9sGaK3LH=G5LO?DUdr#-pa!X2G@&lj~F~&SUYg&?8Qmm^4UQs9uB|WbZAJ2(3QKWFB za-?yjGjfM6SK@wW%U5x<$nw1S-V%hlMUiW>i5%C&Gj#@!f@QI-Us(}kFslD9TARZH<1#ld%G!# z#!4ZI$KeAFw!wd!1mH9{{{43fv%d%Ro$!=v&p4(D9z0<~Ol9 zZ4dJ)GmSnlpWvSzAHQTUA^%bqf@BC(+#&pPJm1fEuq{zRRG5dXLQa$=_Bg(GY{+l9 zf5?sewNX!qEho7kb*!~lS+z8*MkRj!(PDcFAi>r6Laq$bs9;yp;te#yu{VSU31 zcbS?R3;UwhoYn>V=a%al0j5@CtJGAJE|tc}WQ`l*^N>|vHQrivO&k8znLk}$1h9U* z8Y=|{m;``~Y;c5EBE=hH3^$bF@(eezm@6uNNxe03cH~UGq$sol!ZR;t$Sq$NF=AE- zcdoXB+!MG4&L{>Kg60Y^A7d9J0>KqN5ns$G?85Hx{_z|sP31ix4%mcF$e!=PnUq^% zwSX{eseB`wu>sW{%e_P0Q`*mbWWE0J&uRwMY7^2@=GE|=NXUs#Dp@4f2G`+x(=H8m zQo_}#nB_Zo0b=7w05AZIyYBRqBBR&9k8WSnqWq-z$Vqr?LyNPPOqXzN+ z%tdvd)i{jJF=LYGGxOUARDlhDwpgadAF>K9ATrYk8A8hF;hqq-$R;w*jTgVK1yr!*W&IzA@g z+*zm6$H=Do8kHJOs~>Y$lOblv2EidukI0H{4<#i&_M7IW z(ZmJ$h3%R7tRoCv@4CwB%Y3J^i#}q&T0g%0i@Hlm(I9SS3m8@n-P0ML#@6EnojO2} zKegy$UQjl11)FxXRC56{of@>WKnjm#I1YotF$GHpsLQx&&53xc{C;wrErE6xdz0v8 z?8Uw|J;gN9ON$L5Of0UQgjF^kU2m7co9q9={TMLtr1`qhUitgF{C-mSo^mG#_;9Xa zXu_i(8El@K`T>~w^97yJ?*KWiO-(!Z_-%r4Kz`j%b-h~|fjOhJOHZnI`K!SaWbX5& z8Mlnkjq-h6wS0N)QMce$shw(tCt2lT7WD56VVN9iS8e-hR)%VjkT(VzEoCK5Qa8K{G$WKo=)oj<=_rmBx49l_Yyv5O|=H#GZi zs{1ZX`};EjnZ>oJui-iEBR0-&N?$(!<{f24oN0-O#Vrdg&%pPu`?)zM9{_?Y2PE(* zozm-giHX>`gq~9lOt7$CLyn04KAO}sX>z>V)oS$B)={SnvLA|Ajzf%yog}V<`s(@- zo`{k(_K2`9CYMJ>(g_;d7Fr2#f}b$o(nB&tfI?4I5p{cGD`Uia>D~+FIZhSpFAZsP zzJC>pkyN43x533$8ZBI6>1 zi+m)Faz1d}U{F1+l|uDozxM{BAlQ_c9!6daua#DJ!?X$`xnb|Vu08gJFw#8eVcCJ zyWtR7m`U*Qz+!ZCfCZfb_EsyZv(imGll=ntk&R5wx#r+Jac#55ow@N+Da^>3SYB(! zx#f;KGef0|hVfOLTpm)We+%C4hvJoTaPJ$K2mED&=Mw1xXA^4QMt#O{3I+p&m+y8B zZgUnWGnUG=V?jC>sn3bgC5F(n-WO>%`UGbLaW&Zz3fU5}{DU<42M8I=3pcLH$-h5M z8apRZH)91lpd^0VP{K}+c=jw3TDiTSDr)rNjX&9R!gi7-7}^w_@1Oui;3nLmj?s-D zfcd$vTe&h73^*f9r)V;Z1%&*H%fqpNgMjV)<;kCui}db-j08DJhToU4u0oumd42r(<(}NFigZ`4$Z)J+WZL=_7Y|gohNWD4pA104;LU@ zcjGM}VJjIi8Of-@X-5++1LB}ZOmiToQ~X@IWht901zB}i90mN|zfCX#*6`|2M&_g! ztMO_O%@zTb#wpZC5vL~X4HiqBhLw%vZAzmZ#ujC_z`UP zv*!0&;0Sx;KA%-;lhM32=a!(J;3E#H+S=a|La z4r~-@DAOi{b0Dams`^Ffs0joMXH^GkMB}N3NdhjED1YZw(m%NLsybMiUIweTjZ66{BqEHq4Uz&-eYnag^+hJ^Bo1k0x7R^z%bIKB z$Q8=PSZ~pWa1?{>A7&vt;St?2sbpJ{H!E%$;f6EF+m4sZ;T^;*@=s*ARYKKuT5MNQ z<^6Rhw+Rweno%!{W@h2}d`Q*+~4V?E}0rV7U9_zZzPbZ1@gN$Oc20EGDbZ|8Za z!Nfe-Bb&jkf!X<}YB}yt>Fw&75gzIf$H~2tx?bFU=xV9oviZVicvOu$cnx6(JeX(n zk6J`g6+{e!%13KQr6ofU)XFy5+1hu@I9()OmgDNo|v)hn?OL5=!4i0sV8h-6? zj8@@A5h>hq*{HnYQ?97IvdN}0l+jruiOzm6;|{a>RB+i99Sbhm*e47>tJdDjoxJ=L z8nvks*8uUEWIpHoRE_V^p1>|hvnCHZvV8G&HxvoCEDX*n@R6a6YEtYF^&}oM{Nt4$_bkj+&HyeH4KGU+N4%B!%ksU=PAL_8L=PuqV+(^>A z$bsa`g7jCv!M=bXbubVT1fqZR8-%8#5HkoW=-Wdu#R|y#0-1$!6b=01dPwvf{wu8h znIC*t+Zrk+pB6LW`zh*?gYaZUj=$>k75E3hA#p=cuyWA9AlH1}PAI!{)hy8-HKwV& zNv~{0^Z10NS*wv6#u_mSAmFNy%Y@Njj7QWEdsU<^Y;J>(6@g%B^rx~0AN_ZyT4S>6 zl0`82^y4-wJQzOMFX~a}Kx(|c4SSeZb*0>GG)uZ6NP6?7_eAQEdOi+#VFA%k&Rmp> zO*9_!*nuu`^X{sCNW;QuEpsmL>LKC8VC#do|6Cx;RGpPUk`pTxd5`Xysg zDsq-x*)(})U=bFtF$7&4L)VUwS@{QWjC+_MyzBx6zDx+rqbaq+ASEHGJxYuT_R^N@J@99sWCVCD5CB0i4Tt;P<11k$89OH1_*%v8y7Q7=LJ1rxIPY z8cb-Ft$DoFI<{yC5@}GwthrAK(@<@U%xP(cVE=jHc4IAI8Ok%CsRwDh5ol1m&h!q zx&1}D%o$oDc#FngdVwoD&0zvtc&9F+I&yO4soV@)zyVHtS7wmhnnNP-UVZq+x6`qZmW=9}N(duDc|EBzOC`%*? z@2FUldzGWai}pgNKh!jg@4~m<^YW*vFn-IY9pt&Q-Pjp9e02GesxS?~B_~6c_<%2j z*`Q-GjZ6|>*7Ly$Q$bg4)5c=d+czD9q2K2MlGs8}kUkxy;PC?im#8b#(*-)IB`_>H zk*4(KXQzBwK@^`GX63aQe|=Xh*N#s+;jfWlacT4;gwG7Ir*TgMf$W|C>&TKD~4 zzbX=0bFQga?Z9iFcro|lo5|Y*bq_4E=o{*-lf20H?Yh4MlHhWOSm(LnNh2^tnoH2-l}lAxq+AHoFb_ z%9vw>Z1m4#B^lUilqyg|+~i8%s_<&FMh<%bw#6J=<#&gL1e@5L&6hB%Hb~CkWbE@8 z1#{W!a>^ZK*m)c!y!c>|6VlCORiDCS#XT4eJNc`kQadml!=N7}kqZgVfwfFd0aU1+ z{+Nr$4>DT65x;~R87wJ2j0P34iMD)ITF*L%Kf{CX)Jo@Qg!Y`3nl1N&D=o@Y zfWo`Jh>Bqfp4YnRL{dk|YV`|!a`G5Pa@B046&{OnjcNi6e|18{7gUsElk`Gf*`{)C3j_SXn+{GJz{TcbzBlrObW8ymT zFEX;sx(oEu`aaq^I>9b}@C9d9xr&H?3gHTvfG>!7oV{H5M75dIo#S9jRy*fR&m^Zz zW@rc5kmv~;)lt^0*W4yA)s9ms71PqN z<%!JF(2e@bO$NK}azl@bVj?CSWl7D85DtJ@Wm~WX0fIk8Ar(@=P(i@923ng0e?PhS zwQX!wu7NEsOHv+oA9x1652s;uH|nk`dzN+7Y6@n}$u$l9@rEUDZj9{Avv3uzI;Pyl zL$!UDorxQE@C{~N4U0Lae_fJ{V`c)0gxUeg4Cfco$xZki8V&X7Z)e>=8l!zx9Ebc= z9?peK#m4XYr!U|eon~!eZ#&r6%Vf&)8;_ezoy**c&5Epnu#R)C zy=}N%)?>?RHJ(2kqR)R4Jki#@3wn0&KLwJQ9*7r%&bKXO!hH1yY!O)eZ3IEQ~`MdmLDMG{SgQoO~0UaNSKBjb;8$i+0WryL=hgco>7t znJY;^;TvcJVUA5-)ypqjn|`371HJ)sprQLs=~Ufm&Jl{kBlx;9&xo!K5`mb90=^1e z*nE(Or2b`;{|OH_Cb@Y?S$q6yH+A|uGNrRx!DAF}XV8E(7LAkYvsCsu?ETtR2Qw0j z5WRhEtc+hiBuj&fCYj!kD%0M(Awz7AKuyn;{LG)7|9(q@pXkLx%(50YKyHdSKydOx%>cbfKSZV} zfQTowO$kXHB_;O#6RRgtA96T%)^o~jmt4W|%NxN8K4BhPGs*$OAD5x7>NLsvXM;nX z&GMNunFLwbKnIr(zz)NLCMQ<)8~Dg^Oncl=kPc%)0hOd;Lcxjm7MvO3Gxu^J4VK^7 zGp;4L@&tPgPq9&~?AEEj`0L1Efa=!FY^ZSmm319aKbKhI(qjR$xDGVB!B#}dY zgVXgXQ93rcyhQ1Z`n_Yv8wDFTtOvmn3cN`W>2CUSmv%22~%P7-lCPuHD|}N zCN3NQ(>&vWl|htTTKIkaosfu(J9j@;4pc)X^8=Un*opD6_n()u$EZ}s4*-RP-!p;XS{agUD9%s~)fXLoRBkN}xh~O4 zzt0IEkF-GS2D0Oy7LnU0_i!ibtgm$&3LdEh+!JJoW%%)rZ4GhSX_m z^74tTplhMToc_oSt4%fV7Q*J!6%xV9c?p8MH>u4E(0?&JAx7;4s(GkL|cYB6&<;nai*reZdZgC=NZp#a;_kc(&75OKw zfXarQM93qKfLEhAx;+!K@CBnbq-9MaaHAb&IbA2%+{$`IV%y5wA3bzRnJ@g|OZd&S zgM3Lx2fQ*IYJY4qgV33`Kj(4qoD>-wE)Z#XQAyaQ4}WDMv-4AXjFC-S6r=9XZTn}GD|i-Rb5+k88zJxI)NR?}K?9RQZANVjZZRgYj9k*i z)stUuHrY+UNT$Uz^Q^u=vWb(rIrPrJx#qV%5%YSnPuKSY4%=G5nLyI4FhXsl@t#i( z^{O}s1Bl=;T@X9cCozWNwImYR^P(8SsWe4gpa>~>9n%| zA*lH^JXVt`ZAw!0D?7*5kqt17h>57y<7*;pMDYvs`FhGhgtH@P-moO5?Cke2>`1A) zC>etW$33c_N~_kXNgZ1~n=U}fH8fkjy(JLigjKNdRq{-D3S(oh?aZWEos_Hz!wIiHLAXsq zZhK?}m%zJjE7L}P`2YY;7d`-XqMk`g-$VU&pv+oX+6RRfJIIWOHD(dk(9j9Agl%g> zzBaQVHrUSW@_m||GH{7M$;FV_pcOu$#xR6tnh3Rue1BFv@6m?lSmP~pgVRKFpf{{W zMx{;CmcOW$MTnBDS~jj5oFb84U0!9#G4ty6^J*pO8Mc}Or=%%vz<(b_sxf>~_pEJu zk5=2REg0KLzbrylS#$OB3Hj{ z#@Qqk-$6&vZ~lP&xecvld=6y^HBJ`y27BvY^RE0;oq=P^op5~n$&L-~p8I49CW8l4 ztxAjwqYs6{&lStCCC<<=m6Brky(e4p-4O=eiRrN`{_}ah+sIDMledC5l*=<(;npg@ z^KEHiPo1WQi3}a_w;6Xgp|xres7bv>>qBMS6gTu7tB46U#OgnsdBUg$Zu{N#w}5j? zJQtV{Y5K4|Tfk!6AX+_Xd)_nk3mXn{R4$e}f30;@PovBSp!@wu+AOG^%?%n;Rl~Tm zW*BiMmE$Wp%$Ul-1J0KO^OLB1T$tnr<4==>(-BGS1VXV&YhRCl z3Ztn-^uHCp2bUU&<!ELD3y1S@ z^vtX&m2BdBh^cvRg&awF>yxW;-#+n0cpXrRgb6nlg7a`fHb5#KdbLJ8;{M9 zu+TB~doAyvSs`iO5HXhmwwP8~cX^eUsm65hLQgEoH}0YDH4EFg+t42DXefLHGXxBt zpZ&10L3gFHW9F@0j;m>pRo-EkGKkpiUC@*EBp#&+SH76mr2&ChWX)v1Q=$b=dBuxw z@$;tnPI-#G=G}%uINRu#zlJUggAbRG-7;FEz6jgyS8=(=0mJ|EqBNTMRV5PFpvK@Pv7tqhg>Z0${BBP z^*w&yvL~Yc1@?vK(80URUoRoI_R5tb=mYRmmb?@5s@R2XfD@lt7$M*Z)u8yRo>vU% zgKuGm1(ST^7Pz8Fe(XY=$M=XLD=*0Ic|VVvxij%=%$2{+6*39a1E%<;7ZqEm>Z4Gg z!s%Hk7kNKtil6l^aHt)+cuwa>p#^B}x28?miLYM@$wk)w?BQbgi)-kkmh46ijW4j z;L5k-xGhBTjxWv>~c~HT| ziZk;tz7Xh$rM*Zjf-d*pp%;cZ-boUe3VWSfe9VvaKH8kK$9nL-%X2WYUBe@F8<#40T8&JqRIJo06R!}6^(HQS{06O z`1uEa3gkw3(wf=brGt)wi>f7$@3^ez1Ua#BZLlg|v;)VIm&Aqoq7I|zqC8h3obeOC zXBcx}2xFd-m?e5f3HZ5_)4YgK-||*v!GbOce}4BFu1XY#=#aRvis0$+tP^D}n_d^%Km-`HEbaT-HMx79OF6So~?s5KtMF@@!RRt!;iC$Qo%4-zgdk z>nljiC!ZhbO6Luua7BDEYTZ4*w)O!CFvRlR*T`EH)A-e{1&;eE6!s}}XZD$=dSI*I zj2PY>+Z>r*T(87Do??_Q{$2jZe#n#?=8yi?(2@A-V@fL0KfXTEaUmPQJZs{wr>#ue z0jGn^CO6YYt|0=029#-y0X;6jEV1Xk*n`aAVaiAK)ABS; z;w#3;AP(GlCjDqgxj3W-2Mv!A8)YZEZD*9WpD6_y-2uf7G&is8xATI!Q2tZ7p}llV zBCL#{l@^m3Z6s$7a|OCSjF+$-xyWCW!WWs5^CT8pFfvHuY)!Evs=zA|2Y+|Yg__m6 z<4(z29X;2n-!wtKo6?^rT(;^HWQ}$}4yd0$Ju{La}K z*#$BERW8irZ@Cd!3h~t8RyT7ik6#sW@ z`#oo)G#6^3S1QXx|Ancy42t8AzPxdF*TLNeCkgHr+?^TR-QC^YCAd2ThrwMEoZ!Jd zIQ*9XZavR#zv}Ml7hTnLy6^Yi&pDk6Q1ld56~fbYNN>hun7?O|uF{(N0QP!DBa_XV zhj?Jz@;89U7b^cqY57jPzz~fx)pD!lIfpS?C_2lchj}uF$HlX<9(S3hl6cQaAFW@> zlppXa{ed%V+vL?Q_+FX2tBQd?-tA=7lBQRw3o%>QARD$|Y+h2aAZ*pvcIxsXfP|@x zAEH)-aJK4l6n4p98l^c^A?+6^)Y?tD6NDY|sh8Zk%3H28=cO>H3l=!YsF>3vhu3L@DRpNb#;z+>iX}%kDl*@c3aYtjeq!AZR_i7}o6|9_( zxlv~F+d3O^TA=2;RgG>G6uZz&GTJeadt=r#y)?B#_u+{OXg|T%n_+=Sey~p(beAzd|mr z_BxR~$!`24X+1;oTzGlz?}u(~cmU?qp!WpJftP zsP5`;W_rn^`#}S=!m88xtW~CIlK`$|B2D3hLc0(49Fm-812xku3I$N10#r1sBw743 zs_J_ul_k^;}dd$Lv#&` ztY?(M>>xnJ+Z7wL=9^>F5IiVSMwS-K@hJDT4UVVMexgB3RO7n0H@+J7TYe5}4! z6XcDelC57>xa?IBdoJxZ!8v1uriVBh9f7<5KXH#pWwt0jQ$tF zp+2Nbu7q7SEUo&Sm0V%vpgkwei(yF!bqfd?2BRNhFZkmHO8!EMuTcDS zV%`*)b5Hgw>^&h%doTp6s<{}~W=;8$_134<+CK3|#~N~?c-j;wuJuw@m-hj=E3OHJ z{(+6KJ><0LIYl{7wexw3UDIA??9q?YNZ0;m!9&B|>KmEz@k)7|=QeL{u{L4acqllI zFCdzzz4>Q_jb5#oO3pE7vfkzQoLQ3wC$|Xu{Ze$hs$tC#7CqdY64S-+B;{Y&+G_zRyN5W>Bwi1eg+$5{AT^08;V>LBTxxis z#KbJWnqDGq*_Eb5Fj4ZiCYP@a2$!1PG{ukc;bp(CZ`X8PO6d@O3SEg6QyImB}A%rF3)`YF`BCdO?|p%Uxq}_&yLrG zrt>=3>Y*aJsYbWawsp&i28G|&4^sq7-k#yrWhd6DYEtMy?ms9Hj;_-%Wrt9+?&TOd zI^U$pC_dMFx=IZG-x5VOGZ2zTti>1|tBH*t^O#o(SB-s(WEZ2OKdXz$2HtHp?hq+y z)unUgo@+@dO6Ry#VeUIhJpF4F7}#!7(*lX%4mr*R=!5WxJ|KTH>1sz71ei}E<#sV9 z-Z32!RKJeDQn#HK#m7w5%Vcag)(^)hCZrd(1euPnm-VBSnwV1Nd{;!N2_LVNwwOy? zwfAoe$nuHd4{RI{R>UEBL!F99{Kx{F!`zOns^TaokKfw!OR+Q6Wn*XHZI!|0E!blb zoBrSxKX4NlAQq&Y(FU_k_c@LH4s?#sS%1S}T6T!GOE_VyjWY7K8!?*`B%_xZpLLQC z`F$N%GmYP&FS6D#AH6`>WyiLU^o5m#6Hmfdc<($4Z+E{qEhEyMeQ2`v1?32nD2$um zsbDateE#|kbNDrr7$^RT>6qA2BT3p*(eVdmv;ZI{KVZd9BJOB5XtyqBMf(`rnO6Ey7NWZC z2+Lnrd+!fvw@>DS%c;KgO1R zeEa-n)+IalOmz1n>ZK}b=wNEe3m1XO#)8>!vLs|`gNF(@CZEPFGGN&pppYfTr?WHh zUT$XP!N-EI>nnhj@$)s}T+7viM_5)7x3ODhfdB)J({f5BrT{1`rmrk5h8`L!P!`QD z<=5j~Mgh&_!)bMibGbe|Lw=yTrLwa~*i8UoS){Uvt|htu{{isWpfe-nc8_HzGR9sv>d8#TMcclam6%)T=)V)ch>UeBj(m}d@xtU zZ?!xm-)bz1QdnqdGUrbM4`o4u&Um-|iNRt|9Ba-&>hma5^b7fPVa#s_>)h1W;Xfopl6w|$>JVtL z=Ds2J?+6BeF^8HEmQ?_5m}?G7C(03#{RdTgT^Y`5F{T-=gjA2>9~YcaHbvOtk>t0A zGwgn+PsM1@ie^bY@XO#=akDuOTW>|^^c%&~$Y&$0AK>RLIYp+0Q)<|}{tQrZi2B1A zHh6^Lht$pYXE&I|^7f07P}~IrYxdvdCbuu0_?N1P7JynFe*Q> z>AWPS`3!rJX_(ePM?^Cx86C@+;42$0dSd^XzmY?fG^(=Tr@1!G*Laz!9I27G{rb4$9f>y(X1G2 z$sp;+2oVep_X zgHOXhbO6R7NLb_y{JB@-Ax>Qwy;YY8K`h*?*^{49{P736+MPd{zZ93qHp~gJsoA6Z zfQPGQEn$YtIuBPBnOy{7`vWdM(2{3m{9ZmhTw1>uk!5H+^-vnr%poCZJg+EuU}h7& zBkuqJceni9`7O}?2B`YpLQ56YUfgHXWsMp55&8*y{oi;@ES$uW%dDRmFgAY2QKabs z!twrM80X(`c5cE;c;&rZ2NKX%EJULSSGnO@WIZnC-Y&j?{8F1um{UM1iOHgUO)DOH z2V2zDWM-GwS1oItGK+G~HNBItstl_+%g z5=(;)wvKs7t9zPLgbU^PG&SXaaUi_P>(|>snq?V@~t6# zD5C4In4eTX9ld>Q6AXHY4MA#-e{)1Zv9M)$@_NNy*FiaJCJEYUi6vhzbsVeFZj#a% z#%74j%+kRhJa0katX}oCdiycoc4tI^6J{jh8EQB*1bgM_!vT#3uo=+U>t8#c)bydS zB`QMFf)@pfA{=f^4>YdOZ^hDdw0=3JP!*KG((kH1t8H9EH!b)!<-CI=%5Jb^B(PABBg+rdsiKF9i)K(N~ zD0zcY-=3R!I+KHXqkdY?SdH4qqn%I>BMnYqeWULYjS?iaD5r5G98r!kuI16pvQQh~ zSB64!K|!lF`47rKy9GV8{#Umc9u_i2X9eOZFWMa_G4U;ITk71V`xGcU0}xfx1WSFU zs+4e-f}rD9IjfU5h5Ikh%R1j-zosU+=tnlS7HH&3!oGP0eV zY?KfO&RdgY+~eHO>3&j zqlvN9qELtcIOabn_^90|Pg&}2%u)t;ny+y)Fw~y603YSQoFAQ+B@L8RFy{fof%NS* zOJ4|w%^`Fl*}uamRWV@`6evTOQIoKLG~I7rhayr)hU{f@(pZyNsVBcq;7w3BmoJl-&QleV&De z!p8a}JH>#arm8B=|39^j^<>}i%08H%sn$arAkkOX6Ch}mYV+Iv5NklR^F@$QBI$T{ zbizDC*=Q_~;|oda&!$j%q4Bw9u$P}#p##V(+C%Jz`x+Z6_JN>66W8s&^}WFO_PJ_5 zF)9wY!onxKr%%u@!?-l~B$3)M;~?;W{oQG5QTvwv@g?e(cv6>dp+dXnF7+1b3b|z` zfl!X%EuozC=eAIw%z1^wu7A>Yi5Lyv8x9$%U}P6>O5YWFM;}Gpi*m!Pi%=q6Z4)dX zgRnxuHRB1%8J=mEdz_@`S)wsj|3n5E*H{Y8@;5GTSY+mon_f#OU*qg%_o?6Ll! z+>v#W!OZZNK{9VfPda(8DW5&B_Ja^GkIGeIAgQqZLdBC`?FQ|5z|aZHEr6~bJMQ)I zT9M!QIwL{GV_P<%sg!E}_jqWU%pwRN$J90#drPiI7&@hIvK|Rh{kI3^REBkM!nZg?a44K~K z-*)d$g9)>|$Dw~oZjKH2N%q&_3rM|Wd%k#0RhjzFQDPbo*C>%#D%9Tsy<&wa6Q>eU}hW^X4V-|5#* zY-jwlbf}$gp@$v_qM9&o_ZIN-+9p(n{ShtX`XplMvv!kUpKq7%NHPFo7x0A4k+Mi=ZK>~`@{G03F=W)awo_mPK-@9v5Bf|e_}!Sh z8FzcJm2cN;YPL&r@r*T#Nb~z!`v!*qnZs?<*xSgzHzabIY@aG}%!#jO!K8>^X=bNH z;7%^CFq4PQ2``=pJL)kjCM;(BBgF{8c|S=(+W@Yqsa81*L4Aus{u5MtMCgayMYnFS zPrCc*@*m_+hXh!#aAkhH_t{Vkkr@8W()rB|ExerT;^8;~`NuD=H!}0QyhoQ=F0@_O zkif{xDXT!JLPfKaW)|>c`=6fknZJQA|6{SB_g%)rT>H1V?8|*IDJ1! z`1u9bTc}USNC}N)W6ZFhW!^c%J~X^@*uH(_?_9m~LeH(l!0qXx@8>l#^~&J$Eot%- z+a;3_Ihv1cp2WOoq20EhtNWYJ)ZSQ^H#et)?N-QHiX&4$reOF3xa8PNMa)G6w)qbp zzRbN+g>q^V;a6;`C*N_K!+;a zH)ht*gzg7~e!3LzG7nw{>{Cp?`pmTW2{<}KK^PlByb6~VDoj7>KGP^q8 z4;v}`k)zAX>QAZEnPg-1F}zhQ($`+Gdb$cer~F5x7m$SU1SpH7&d(s!wS8=Gl@__~ zyV=|L;J|4o-fYSg$_y+Y*)ZNEy6bqS!Ew51@_EJmOW%l?LZN(}2#|%dgqh}(viVi1 z)$psCxb8CWZ`6*!pKCjwb~_#5@SsQYOvm*EruGVF}QKA!@0 z{*-7&pv8uLhgCM$cJaZ-l+M}cn8*J}_XF{;pbpT5J-8uA{{3*wzJfIAKd9*b0N8Rr z`ZWT>mbabb1i@{(RMr+3i;-B0g=}wvTUi1Q54)dRg^7@t#?Uvr{yesRaA*i&Q*GA@ z#XpR@r%VH?&=*G-Q%Rz~Xs4HnPJOAu(aIRp~X3C3kHimc$b4~oMYQ8T1 z8fxj%vhgRi2q3&g8Sd! z(Ep>${|{kHrYvr{9$eVH0gC=#f(`2=%HXT9^jD*XJp)^lI?ErxgGCW0*J5v*BP^Yo zmYtD<7DGl0zvvC!3>u0wrJ`W(b}f95QLit;@34=a$Ig~;;<)J%d4W|KN2H;@)*e7& zuf8ekVQhUpgOyy~5uWI;Zu736hG<-E48gLLq9xSrw-N0CjDY&zLypdz$0AR;89*E7 z`PX+Q1VBH8Mxs`1CKFKXF?;G=A9y<6*iQ-%#~LqR95N( z%$4&4C}Rk0I}=7N*}z$tF#4S5Y4tX8dLNDVj=uf0xUEcuK+sp}q5uH=^pllPPZMemLf8vQ{>$<*sBTU9h_=d% zCD^RfwM+A18R7f2_GTtW5#hQzP+)nKJ+C_x9_R;A4RyB!s{V@@ya5`EOu*=nkLrpR zSKOhpYg|8}FRuvYgdL zLiYBT$X{wvA=MG%c2By-QPd60mRi}_&6D+u?OKsumQm~o;C{*9lgWD=VFS4J2RQR4 z%T`TIu|z(YD$4bMr zZ3@3NIlK)&h7%isMl`$Zf0(&PBy0?44z*?DbA&HL_}y!IRhT><&#*;8q2r8)Rr?Bq zvLBh98Sh*10(a~M(X6VP(9xBEOHwhHYD8)?00o1l$=C=hn$?}4f-^UeYn8ABZ6Hpx zsT2IoS#2BYRt&VQs?KZySBX=mkQLcF{d97EZ*lh3Vzw2xGH25kA8N?kT*c_v*LYeS zx(1pQvHdRqUEmsbHePlpS&s$#}iGN`_y-@{oj1! zZhQmFH}fnj=JVh3%xzGGsx>5TOG}#Bra`5uN_&ISj3;Rs(fFBBjUMf&6Swp(=Gs7* z5a38zI>!xF+kzQg3bA-GKC=dOnSA;ZASpY~twC0r%(owx?@~C0@|ZN5@+b*stp=X4p?LZp}3z3c>gDAYIW9ytqT<9q<)ajBsYh)FU0fsP5OWe z_DeK^QQ~gsYH)Oj4x|`;QSZHIKjcPtWA-UMCXpTW(YA-jE?)aFwZJ?AYKJ$97tXl; z6hj$5F0k?upB}m$HJg`bPWrr^l#bX41qwL%KUVWB3&rFN(J`pL z6y(GOVQqL*untrv;_iWRW?v7?>*p8rpn5!mh~tU_v{~ju@THZ3-cTN7_jCW&HI-bU zYj-2!OomJj2YgyIFnFFH>F$DCm^-#|zkK1@~J8oNUI7j9I6b@8;M2TB&sz9EQGm zc#e;+PQfCjvi=auTD)tUZbYq0^UKEZjxYR}B z#ZZxIlyuAdCLM7(fENl=j+TXxzWjB4@5EvE&_((>{Rkd=&$Cx`MMPoyt5 z^eI%r$DmU0J*}^Cf+NGaat=I9fZGf6y1ZfpUEl9J)!1S4T!&7ai+kf|FdDKWqUkW& zQZJZF=_`i1c}+rvH_RGcE{9X0^E9vw(N~B^NUR|mm2u>?2RuFoMOk>YsM=37^Ww41 zvmnhk&n#lW84Q6>UR?!OGrLZkH&|INjerP_|34_sxfew))r6P|OW=p5d-)Ga%EXrzAm>qp=AG!IpY4KaWn>}kr}t~5J4&TV zwh}!{C#=(uFBA{OxpFEG!ctOTNK~BhQs-_Tniv^ z!6|$(EB#@$w!-s{y>uQzc@iZMaBVSipWqV;1#dt#mU)EU8M7f0L#G^Ytxxev#&vo_ z%A;un<10p}9L2ldBW{nwb4&zw{6Q*4IG)$Z>T^UNV{_PE&xzigr$>TP^Bn*n zS`Agk(lHGyK2V@ml|X9ZrVblPhfbTbl8^FhR0+|P=I&LjcO)Y_ls|@~Gh->}tfwNB z8oD*$!acqS9r`E;C`xCEu-?A!|9%-BFZd7YV24a3JN9#7DJD{?hFNIZ$m{XCR|;1xi_1l@^Q?>hy)qn?m;%(1u8{k8K~$@3Rv z;VE&oR_)rYnnFj;fBji%OS5$Pmf2vIL}|q#bDnum5O$%3adhS>Va(3#4Rp~XX#%fR z&_F-zHh%c_#k5!h>iaCwL-Xq}4ca*3Fq0eEV}yNLkIO(Ag$F%yG9b_&grb7;$r9Qa zoM*<7|Ds@@A}!s9f~h~5Tf{;E+PB~YMY*#2|CO6wv^SSeC#uY3hHLaKoZj`KgI*F; zfX3AEnf8d3KT-J?sl4ST98mj?zo*{Bhq`VExrcZu_Yj62bJh9bMRZ?@m<30{)lwvf z#O>cn@Iso;6ZGnL_pQ_$0}8nX2;tc|ri%uBC5Qt`jIk=|q4f-CQ8ZgQQcTPRY&yer z7Bs2(6Bh!^0TK+5ogl4>I6^PPbv9 zIQn^bPmwK#X!9QR@HcnPfYa_{{7|@91aGqKR1ZEc z?yt~VkTeD~gw}MTYnDYSbDJy4L*=>4=(fA`M*UYM=ESsGow_!ArEaI4g1JDLMUpze zJb&;xBMU)4vm4p9AOSRxi66(fpNMtr2FB4qzEi;$OYS`C)hJ`f*Obm1KCUwQ`d;?V zf8_kn8IZaB;%~-Twh#2afHccld9rpHF59PwVCQmK4)WMhPTNSs4kUun7D%!hK}2t* zY}@7q%|}80iLZdo$Uw=D!(&7yJScdC;`vN=Zf$nPrm=fjaw2T*d2yj4QEQeg%A_R@ zIBf~%(Ea1CKDwu~zB@xuC!ld+x%+rc7X;^2Pcy+s@~_ z7)8a!dKNl>VT;2cCCjMy@{h~M)tzSa0 z2Gpr0*7hpP8^%MNrfnMaJR*6{V8yl$Dka2r#Kd9&Zupl_h4>B-idOFm{SaQ7B#jZh zhZfZu>Z0MQr)@Od!a z0KKgaj5^P7^V$$Lmskj&j9iI2tGn;ZiuXEp``V(m?@B^L{JlDNPt`k{i(`s7H#Izi zJc$No#_}*&;#bPs#8C(O8Ymd0#$D%oTTK=+N(GgyFr`z;?N$Fa>e>}EKR_hyeOlx= z+x<4v_4atUc|@+7$3ffL?F&~)4UAD-=^ojbtXkuy;0>4Q=pL^QHogwV;=lliTU?nO zFF}5E3@AIeOPGcjSF0+7OL+KklAwHl1$`xu&WspsBplpb*!|M6QU8_Ga+(U+W$)gg z6SoJQR+&vpAS@<+4SlXJ2%AH2#(@9$Rxw}Rbk7MnhpdW-2MPiL?bGq~^-%CAzY}57kK739b{HX6Yy>Xu&9VCBWu<8dX}7GJVK7mh722! zIWBG0k54k$QQbfmbOIUwL20mlAb(aEWbcLqsGq49(W<}i)qBQL;En_r4xSaepB22H zhf^=pMb_;%1*ZeI1Lq5cZ2Xkv&Q>n2me&0wPM=Ok5+zR>pOrP}2Y5`q5ic2@g%9UX zN93I+y-Yh;-ICG0L#ox-%~Cq75`oG<4ajE5(TL1$++ft6(ECm_vYJG^v@8Zr3jZ6| zj#K`l4*6NS%MmTzm;AqF3d5KMChVG~&os801e|8Qv2t6qx13j!d1JGl#1i~0TdFfz z+Frb0^4{Tu0umj6Y`(839KWl#(=5@?*Xk_s!piUq-z>gldr%TIpReHgB~VvTV2@T8 zF_0rXOcL!ic1}(v&ICeGsOXP2gva)fSu$WHyb7oLgH5wyP)cHS(XC#86>|Lyb>d}P z-etmR`XL9ARNxvWdZWYD53@19q)X@e5>q!ks^gKtzQCB>l{4c0_~N*9+Sh?tiswAX z>KbMV2qvoC8j!vL*x<9py-tO)Qx^W5E4o@y889+?e|m`0)NIiH5OXtEv>W~wK^G-| zJI&8cN(UGf>0E`q$E3*87Gg!}w_4e*Fas`#3OjJZc-Gp*JOpM9cPMVF7tMYVvyeW7 zEv7Ajpoe`2(@d&zK)BJ~jTS!|yb9IxTxalfgnQu(dPd8L?aa(=tBqm< z=M=IL>4hxpOh}`5&Q_dfia>ic4RR*Vmc4V6u&ff?tV1EC&e<7K4H7+C=q|o+>dhYs zi`O1h{7F3Q`|m+@;_>1<6{XAv-iwlId=1DayJe(Hsvb$qNzg&(ea?n${YE2dboGc9Y38DfRvqe6rNGhC55>Zf_>c1icYfm`z917y zV_sUYYvxb3oVqh(es;K1n@`%#`%_S(XAFoCR`!MvTT64A?9#zHu6=JIy3;_NOe~iU zT;@gv=nt&u*MC`2NuD>Dg7M$uAUTG@%{pc}@Cs!o%xVk|;wJA!1JL~?Ml-jU$k~}X zV$r-H|CSXIExyf-NnCD-#z`lp5~Qx4pxPp(LQ@#I$#9|m@Pe!yhPjABwtj&LR6F2m zS17?l2dd-s98+cmnNrz6lUhdiWxD68qxHDSRZ8IOcy=j3R21`fmaP|GR(v8`H=oZ6 zGVedzAd81n?#QsniaaJZyLd$99%0^MnIun*=icTX#hFm{p=sVv^#3M@#mxm6K-pPk zMu}WQS&Q7ENO0Ps4r+h+Ts)|l>)uHNu{EaRj`uIv4bZdTs_Jd<;piA#43+_V^ii$H zEL=%5sym$Q7=MN|3ktp9SnHnply!!mu-I~giBPQ`W3LOn*uzL*hdJ)1+HMtiZ>0qM z1{G=H8gNk?<+MYfcybDsoFHRM0ll7os)S09eDAf`W4w>$1v@Qh;DOjS+Q}aYu<-rkpW$edt_)onkEj?A_AF_*_^kNDP(v?7eiUs7a=%hV^8d*TPE9T9ynoDG!rgN` zZqU70%Jw?_#~z19>kR_fcCEtCoLrR}=IeX`3GKi0HY<^RM8D?@j68#4| zVnEEwASXd1b|QTrCWT(L8R+VFvwL1)mF zr^+BWSrxMlj;e&fud=IkyTSA*VS(alEz+%iZ&RT4nv7XKI*&tHc@!iG=yrpbTBYH4 z&5ziU^XPS;kY_zngFUmBkg;^56;xGNN0bLqISFZiKL$&G>u@GGPCIzUuN$?!MtT_U zS=RDiah!AoJ{eJ-l{;9#?fEL)ANx+-=j<8GDF?)c5^yhZhY+!N;iL(qTY8UyiVwO% z2gX=>77bcJZ__IUA<^9sgyit_hfGtu5q=x3RZ>*14<2tV)EFpNa-g2eMJ&XoMZ@FYPO1Z#sS- zQw}zhP4qz18ze7*--!IJwXaY2#A%Uz%%fQ5QU4haB-Obikl(<6$03m$t_WHyFD!(x zo&>KEe|7;f*^Ol?`n9o2$b|w5t(3hDwYnv{3Sj15%s1$L#r~F@y-MQBv>HvqMI)CV z@k&#*x^RU!mBZ?xP4$ldZi8))9=F9=wmQO(^f0V8RwVHSYBS%4dN6Yvyh_3pC|lKt zj+PM)(z|Ikw1WA`R}AkJ5w__qz-$l(#Ex-VCLD)V1B2gBmHo~);@ zoIWi|b6LjLSFC)HFFN{i*{8{*w3n>kel!&&7OI;lFwZ23Id(sP97@py%^&09?XvMQ zqf>>NP1W0=w!KZkdW8M{Z43|T75_Kgq52%<(&?t_1M3yXnzVN%v%)y9*$=}MTVew3@+B1s9yjA{@&ofW3Gyw zPh!h1dfstm4wPc{G-JloWT{I|;gm)toIF=HqK~R}x(Y<(WY?GZ&u>YI;VJDZ%V3*% zrY)^%*Ugyt)k4f!k}+yw>d6`Fe;ZlC8jS2!@K*xWB!(WctV7i8{*qE>s`vDm$${!v zo1t5$bw%;iPta)0Kd3Xr+Sx(W=VNuF>})Uc8Z}imk!_98GkMPF)gAJw=SDI|#!G=x z_Z_H$4F$2swA#|<@wJHQZ2&S3DzGA~oQWo479#@v<()H3vr@nBB>c6!I#qGUq)~=g zKIuxW^dx-KRCdy~f96w$EN$uFsxUEcl37<@Ted;cZeQLcw(X`kVPTBnqN;hhDE>}NrEQLwc@+~__7mB7${g9xT5;W-c1F8G7KNIF5;LpX zHpf`>FK<ys#rG;G;q;?; z$$@E2Im9rr+N5l;RWf)l^IVpv>If*~On1Llm4ClLj(gTT|9BlDr`g3=-2S0s2a9)7 zln2uGI07;!O zJCV;iIS?BGHUZLX>7=!0p-{rO_b-fj8FX>V)$9?r#4)5H#vy48_CBWka6HnqDxGeG zLT{j@k4VL`GAXe5YIDa*Tye*G{x7N>Oe8}n_ZWs_+VAGL*}V&ZHy>jqLhtno65n?j zZI}AmAmJoa!_-m#e#i#<9YXn2pq=if)peM6cnGh~5aSZKM}7N&tU^1jRx_XBj61Pz zfM$NhqQ7#aVN$QdH8aEe9M_0-+vI?zb9fkYH@7KKme27Y6g?7ld{_xg4KavQb-V|H zlCTmWJLJO^H1#K7t5^vOb>cb@xZT-F4D=P#SJ>g|d`^rsMDsaCw4o_Oj|Nk~25q!l zU`WMGB$E?8=WzYf&|*(BHF_J-G1urbH7i=;y@~GWW(z8%UJ;eTn?z#!7ZMGnUoBKX zi883N8kp4w>BwOGiHF5!m=&bAr+JBI0lSV2&$%NQ$a%QYW8J)MdO6{^CwQr=>s~p# zaEPn8=$*~k%vo=Hg$|{md0<{yX^4W9jnei&Uqj0z?iwVuZ~hnwf%gA}`M0r-R)rER z-42bd^=sHE0fNwu3OX@Es{z9>6uOg~X2SeoU>4J$Hf~-~-<`D5v^D6is;_h@ZR`Ao zrP2SyWJGvR12MPweD_hf`^=wREzJ-sVbcTxiDFce;<*z*7jdBvrE$t(NQtZ#^qoCz;1gisv4v9 zAz~A)g17MrYL%^)v6DQHEu7$)?odO}pA?`}ixYd)q1tEZj>$C@#(xTIAn`I?#{wgr z1aRTnts!!ga0mErS|ZucBoGS(B$(5?$e#fRfj9MSl)5^fMH35By3}5|+oylMoE>4N zdVSRF8hgt`VT#w^wUTERX8k!bh1M9Pk$#F^ZvPx*RU_?)Gs(hNW>AD;^KMc$Y@SDQ<1gtuXve^x}lB7IzbEGNZ zq^_{2Qw^(t1uN1C#q@7V@g%DnXO)mqfebj9i|M}hNa1tJbJ05S*SkU3q0i9ij{&3L zrnGDz(E|%$Nc0=P;A-=3@v{M3X<(GzFikKn2szI`kPTR{*-gf{)f2geMk#tQaD|p* zBdvTDuj{BBhd<`!E|bePL}Bu^fs$dOBkVopG#9}sQzhT~SSZzlGU@w+g$_5DneaKW zn2aG|oboS?AV&@8?*pBgto_t}g#JEBzAr4Gr^6ylcc-?C@4xsJkk3p%VW0&XT3OfJ zSn;H14{oRRMV~xBb_sWoJP@RfeNd>ZK;e^0p=D=*>H{XDm-Gl!j-=f2pbnvG?nPliy~1n!S2#D#$Lv|Dc3bd zycGF+gi2ngP&YZvbq2+j;*X${Osv8IfvG-Jl65A%vKw7;OQpK*Y{IJ>W z!-lAFafDC>rKz78wPCs7{V0lX9@aYel2FeW+Ta@>Xgg=C!=Ej=lWD=QiFB4wqggYa zv-cHCAr*fcT}-_U;ih^dZ=^cG_b!w2+oX`+6mBqFtSl?PsQsIQ%t&PzbV!Td+o;9$ z@p|uZ#KRs9n@c}u)9eMY>MByXmBpbedi|26!osluXWEL-cX=a4SLS7z3A0ym$T}Lc zPbfjjs1d*%tuOTojk%|Q#-uKD(L_H0jJkpGEMF^FtZ{I3cZD5?pxtx?EF+S@hU zvPzO~wpexY-{<8S{cEPK87bC%DmCI2${HC@pcs;~iDePD_ z^>RvF7m~)W_Ie0cMtAP`&_|sDj!w{F4fe?*aUM0vv_CRbhg%GQfv-)SmVxOH}uw!ydU@juWl-) z;8_~d{e^KTfKD1!VN(A@QGFv#fj8?MjQY2Ww2_oN#T4|X`RwYsKrSB-CC?>*4x3OR zH%k(npzA}d2W(>fQve^alx!{o)n1mY{U+Ab-n4Ke5STBO^XyYZqMnEjGH|N9RMp*dg#WlUStX2*Pj`21W&VHcry(A$mFSQ)3X#BHC5 z16KCQGgbl?bL=#IY|8@on&)@zsx?jCS5;Q!1@>;P*r_y21t=TiHNLH5oB}Cx+&HjN z4_neU|4DX>G1n}^vRM;)e0hpyCsqVB>dRW8fhoEof{6UOqEwz7TN@EV%KtD`uVm09 zgAxvV!)q=G&>N)RpJQ)vhMAVhR1fNx08MKX0_dBz%t4#Atc`^2Y-+z9&<6I&`Qd4r zkBlWtYz0Smzu_yhSroT{PXDk=mZN4ej%gg3j=g*{6sd5^V`-i+PPivxs|QB zGT^kn{V%QkWlj{(EYB}6?_mCxXF!pt+P9tgfQ6zR-X#ps#^;7v3!nEERlHQJ{{S%o z%cnBWz{ZSf;&cUl-xm|58&l%ZQ{@d!1{er(DY#nzAOum$ID;dIaR(Cd4)8d5 zE(#f-#LUp`Ega^(A%Lq34zt+QUQs|7GPMoDfN`_D%nRZugkM1xy%g3Z=ved5a!eK_T zjTjhN+|`1^u_-1g=U;B|f(~mhI42N;O!xB_)hw3d#LPky8SP)Ru?}Z~_m_3Vy%c5p z#Yz`z%;k_M%Ha@RZ&;=iNYoTU!kT-;pTr=p^Sc2qi_YMd?v(*L8toe2VFgf6Yl}DL zVo{c=I;7U?hz-rgD;Q_DnZO3iWBo?4+M(H*<809jy3y}15bk~hnRZ9yz)m-WbucU! zDDEy>u81vHUVA{IJN)!0@qEHSrf=;tM9{&CDEFD888-@3l&=Il#$6XXVj>iIzGAmw zi+f)ZUik<$J%pnpssVOl(KDd zj$(c;S6;7quC~@K%@sTxCoiEYj@aJ(AImo(R>9G>R!}zKFuk!b0#!2q030!KK+ib% zCA}S-J|jpNUfEJ1oB{pJtT)`1_l^n&ll>(R$|L;C14lpKGVp^t0?RPQLGw>>4bb5i(!771W9WEJj1jrgO{Y_MSoc zgwHO|mKbu1sfuW2yfVvFDAU_BXa4{K_>~iJ-t3eMq!5pALc6VdK)8l+y?;>U2b)|= zAbc44LEnH6_FV^?iE0my2mr2AT(>nW9us;c8FU7-(w*3gvu^NE3f7|CNNCu+(=B?; zQzWcq^5-xV#!R;2$%?9|yKOseHc-ClZkOLU%jmzTE|c`_9#U5J!He;5q6+m)&`^_> z-)bX92IgtMh=RaFj9y{}tRB-VV_x!*rl$1`G6gaX=27Imv@!NYcfkJuF>G4cE;@jG ze}wy`!2-ib4=h&=QuDGc8*jt~G8cPh5usUb2o;q#2-WbJTvTWd*?1#ZlX`Ry#4=D8&bZ<) zR*(uGHT+B6ZCm%Vw5y9CG;vYDUbD(oC{^TDKn*30#4O`D+_3@g0Vgb(uUKJSFSd^p zB?r;DR>hfXk4U21T=qRBgcTUK7uz!y&~DEMhztt5^7xFY;l#;ynFrN4#e3Y#y10H} zsdkE|(mvp0LSa-lYF;rl+F1d68jUYYGfMej+uoVqaw1eiIZCmXvlTP2m?t(>;~)Gp zmn5_jvD$b$OA8L|#PnOsmK(d(wJlD51f(21gfju&-~|o2h=Xy8iGhSM?@QKt5YygT zE3p7&M~)@N^$hftZ%bR|DdUq20!vqROrk8Nd5938joefZH8~@;7pMv~gW_bu*(a6& zbU|@%lT1g41D{DyHoGlKU}t3c)JFiul!DAhPHNfR>NhVya$|7T3N4yU=w-aBB$QiO zS@@WwV?$6JG;EWkNrdqhOLdY71n8{5x_HIUZsymb^l{s|8_!+Fn~8l?-UTuk9A%hs!wwDQ)OI(wj!z1>WYR OfrrLi-TwgSKmXYr&6COi diff --git a/samples/sed.jpg b/samples/sed.jpg deleted file mode 100644 index 56f594bf4a896ae8e793ab1d46349987ae32bf10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35972 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 H=s*A2$xNgt diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml new file mode 100644 index 0000000..889bae3 --- /dev/null +++ b/shrinkwrap.yaml @@ -0,0 +1,1758 @@ +dependencies: + chalk: 4.1.0 + common-tags: 1.8.0 + cpu-stat: 2.0.1 + crypto: 1.0.1 + dblapi.js: 2.4.1 + discord.js: 12.5.1 + express: 4.17.1 + fs: 0.0.2 + jimp: 0.16.1 + moment: 2.29.1 + moment-duration-format: 2.3.2 + ms: 2.1.3 + node-superfetch: 0.1.11 + nrc.db: 4.0.11 + os: 0.1.1 + parse-ms: 2.1.0 + quick.db: 7.1.3 + wio.db: 4.0.15 +packages: + /@babel/runtime/7.12.5: + dependencies: + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + /@discordjs/collection/0.1.6: + dev: false + resolution: + integrity: sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== + /@discordjs/form-data/3.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.28 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg== + /@jimp/bmp/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + bmp-js: 0.1.0 + dev: false + id: registry.npmjs.org/@jimp/bmp/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg== + /@jimp/core/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/utils': 0.16.1 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.1 + mkdirp: 0.5.5 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.4.2 + dev: false + resolution: + integrity: sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g== + /@jimp/custom/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/core': 0.16.1 + dev: false + resolution: + integrity: sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A== + /@jimp/gif/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + gifwrap: 0.9.2 + omggif: 1.0.10 + dev: false + id: registry.npmjs.org/@jimp/gif/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw== + /@jimp/jpeg/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + jpeg-js: 0.4.2 + dev: false + id: registry.npmjs.org/@jimp/jpeg/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w== + /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-blit/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg== + /@jimp/plugin-blur/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-blur/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw== + /@jimp/plugin-circle/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-circle/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg== + /@jimp/plugin-color/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + tinycolor2: 1.4.2 + dev: false + id: registry.npmjs.org/@jimp/plugin-color/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A== + /@jimp/plugin-contain/0.16.1/a624f9824ecab8b56adfbd241c0d2360: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-scale': /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-contain/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + resolution: + integrity: sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg== + /@jimp/plugin-cover/0.16.1/8315d8cb5521c7b6ab3d188653109939: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-crop': /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-scale': /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-cover/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + resolution: + integrity: sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q== + /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-crop/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew== + /@jimp/plugin-displace/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-displace/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw== + /@jimp/plugin-dither/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-dither/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q== + /@jimp/plugin-fisheye/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-fisheye/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A== + /@jimp/plugin-flip/0.16.1/cf48794c8db40b1485af02ddf78de22a: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-rotate': /@jimp/plugin-rotate/0.16.1/f86d75f0a9ddbaff0ef0351d9a96196f + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-flip/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + resolution: + integrity: sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w== + /@jimp/plugin-gaussian/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-gaussian/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg== + /@jimp/plugin-invert/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-invert/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w== + /@jimp/plugin-mask/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-mask/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q== + /@jimp/plugin-normalize/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-normalize/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw== + /@jimp/plugin-print/0.16.1/9a4be742356cc6e7388e1b53d69cb950: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + load-bmfont: 1.4.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-print/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + resolution: + integrity: sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q== + /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-resize/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ== + /@jimp/plugin-rotate/0.16.1/f86d75f0a9ddbaff0ef0351d9a96196f: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-crop': /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-rotate/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + resolution: + integrity: sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg== + /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-scale/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + resolution: + integrity: sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw== + /@jimp/plugin-shadow/0.16.1/da85c9753a610da846f94c44f998d58d: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blur': /@jimp/plugin-blur/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-shadow/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + resolution: + integrity: sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA== + /@jimp/plugin-threshold/0.16.1/0f50da9bd30083daaf7a1a01e894a296: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-color': /@jimp/plugin-color/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-threshold/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + resolution: + integrity: sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA== + /@jimp/plugins/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-blur': /@jimp/plugin-blur/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-circle': /@jimp/plugin-circle/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-color': /@jimp/plugin-color/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-contain': /@jimp/plugin-contain/0.16.1/a624f9824ecab8b56adfbd241c0d2360 + '@jimp/plugin-cover': /@jimp/plugin-cover/0.16.1/8315d8cb5521c7b6ab3d188653109939 + '@jimp/plugin-crop': /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-displace': /@jimp/plugin-displace/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-dither': /@jimp/plugin-dither/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-fisheye': /@jimp/plugin-fisheye/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-flip': /@jimp/plugin-flip/0.16.1/cf48794c8db40b1485af02ddf78de22a + '@jimp/plugin-gaussian': /@jimp/plugin-gaussian/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-invert': /@jimp/plugin-invert/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-mask': /@jimp/plugin-mask/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-normalize': /@jimp/plugin-normalize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-print': /@jimp/plugin-print/0.16.1/9a4be742356cc6e7388e1b53d69cb950 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-rotate': /@jimp/plugin-rotate/0.16.1/f86d75f0a9ddbaff0ef0351d9a96196f + '@jimp/plugin-scale': /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae + '@jimp/plugin-shadow': /@jimp/plugin-shadow/0.16.1/da85c9753a610da846f94c44f998d58d + '@jimp/plugin-threshold': /@jimp/plugin-threshold/0.16.1/0f50da9bd30083daaf7a1a01e894a296 + timm: 1.7.1 + dev: false + id: registry.npmjs.org/@jimp/plugins/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA== + /@jimp/png/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + pngjs: 3.4.0 + dev: false + id: registry.npmjs.org/@jimp/png/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw== + /@jimp/tiff/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + utif: 2.0.1 + dev: false + id: registry.npmjs.org/@jimp/tiff/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ== + /@jimp/types/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/bmp': /@jimp/bmp/0.16.1/@jimp!custom@0.16.1 + '@jimp/custom': 0.16.1 + '@jimp/gif': /@jimp/gif/0.16.1/@jimp!custom@0.16.1 + '@jimp/jpeg': /@jimp/jpeg/0.16.1/@jimp!custom@0.16.1 + '@jimp/png': /@jimp/png/0.16.1/@jimp!custom@0.16.1 + '@jimp/tiff': /@jimp/tiff/0.16.1/@jimp!custom@0.16.1 + timm: 1.7.1 + dev: false + id: registry.npmjs.org/@jimp/types/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ== + /@jimp/utils/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw== + /@types/lodash/4.14.168: + dev: false + resolution: + integrity: sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q== + /@types/node/14.14.25: + dev: false + resolution: + integrity: sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ== + /abort-controller/3.0.0: + dependencies: + event-target-shim: 5.0.1 + dev: false + engines: + node: '>=6.5' + resolution: + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + /accepts/1.3.7: + dependencies: + mime-types: 2.1.25 + negotiator: 0.6.2 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + /ansi-regex/2.1.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + /ansi-regex/3.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + /ansi-styles/4.3.0: + dependencies: + color-convert: 2.0.1 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + /any-base/1.1.0: + dev: false + resolution: + integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + /aproba/1.2.0: + dev: false + resolution: + integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + /are-we-there-yet/1.1.5: + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.7 + dev: false + resolution: + integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + /array-flatten/1.1.1: + dev: false + resolution: + integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + /asynckit/0.4.0: + dev: false + resolution: + integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /base64-js/1.5.1: + dev: false + resolution: + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + /better-sqlite3/7.1.2: + dependencies: + bindings: 1.5.0 + prebuild-install: 5.3.6 + tar: 6.1.0 + dev: false + requiresBuild: true + resolution: + integrity: sha512-8FWYnJ6Bx94MBX03J5Ka7sTRlvXXMEm4FW2Op7nM8ErQZeyALYLmSlbMBnfr4cMpS0tj0aYZv0a+26G2YJuIjg== + /bindings/1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + dev: false + resolution: + integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + /bl/4.0.3: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + resolution: + integrity: sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + /bmp-js/0.1.0: + dev: false + resolution: + integrity: sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + /body-parser/1.19.0: + dependencies: + bytes: 3.1.0 + content-type: 1.0.4 + debug: 2.6.9 + depd: 1.1.2 + http-errors: 1.7.2 + iconv-lite: 0.4.24 + on-finished: 2.3.0 + qs: 6.7.0 + raw-body: 2.4.0 + type-is: 1.6.18 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + /buffer-equal/0.0.1: + dev: false + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + /buffer/5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + resolution: + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + /bytes/3.1.0: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + /chalk/4.1.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + engines: + node: '>=10' + resolution: + integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + /chownr/1.1.4: + dev: false + resolution: + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + /chownr/2.0.0: + dev: false + engines: + node: '>=10' + resolution: + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + /code-point-at/1.1.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + /color-convert/2.0.1: + dependencies: + color-name: 1.1.4 + dev: false + engines: + node: '>=7.0.0' + resolution: + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + /color-name/1.1.4: + dev: false + resolution: + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + /combined-stream/1.0.8: + dependencies: + delayed-stream: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + /common-tags/1.8.0: + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + /console-control-strings/1.1.0: + dev: false + resolution: + integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + /content-disposition/0.5.3: + dependencies: + safe-buffer: 5.1.2 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + /content-type/1.0.4: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + /cookie-signature/1.0.6: + dev: false + resolution: + integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + /cookie/0.4.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + /core-util-is/1.0.2: + dev: false + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /cpu-stat/2.0.1: + dev: false + resolution: + integrity: sha1-UB6NbdLUTO9dhCk5w40YIsB4/Kw= + /crypto/1.0.1: + deprecated: 'This package is no longer supported. It''s now a built-in Node module. If you''ve depended on crypto, you should switch to the one that''s built-in.' + dev: false + resolution: + integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== + /dblapi.js/2.4.1: + deprecated: Module is no longer maintained + dev: false + resolution: + integrity: sha512-g+u1inF/qOLit5qPK4hBGk5pKL1vy09uBLV+nukkRMvw2S9D1PyiyO70n4fboUXOgbExPp6Sho/Y782OqQOUiQ== + /debug/2.6.9: + dependencies: + ms: 2.0.0 + dev: false + resolution: + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /decompress-response/4.2.1: + dependencies: + mimic-response: 2.1.0 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + /deep-extend/0.6.0: + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + /delayed-stream/1.0.0: + dev: false + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /delegates/1.0.0: + dev: false + resolution: + integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + /depd/1.1.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + /destroy/1.0.4: + dev: false + resolution: + integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + /detect-libc/1.0.3: + dev: false + engines: + node: '>=0.10' + hasBin: true + resolution: + integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + /discord.js/12.5.1: + dependencies: + '@discordjs/collection': 0.1.6 + '@discordjs/form-data': 3.0.1 + abort-controller: 3.0.0 + node-fetch: 2.6.1 + prism-media: 1.2.3 + setimmediate: 1.0.5 + tweetnacl: 1.0.3 + ws: 7.4.2 + dev: false + engines: + node: '>=12.0.0' + resolution: + integrity: sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w== + /dom-walk/0.1.2: + dev: false + resolution: + integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + /ee-first/1.1.1: + dev: false + resolution: + integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + /encodeurl/1.0.2: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + /end-of-stream/1.4.4: + dependencies: + once: 1.4.0 + dev: false + resolution: + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + /escape-html/1.0.3: + dev: false + resolution: + integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + /etag/1.8.1: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + /event-target-shim/5.0.1: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + /exif-parser/0.1.12: + dev: false + resolution: + integrity: sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + /expand-template/2.0.3: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + /express/4.17.1: + dependencies: + accepts: 1.3.7 + array-flatten: 1.1.1 + body-parser: 1.19.0 + content-disposition: 0.5.3 + content-type: 1.0.4 + cookie: 0.4.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 1.1.2 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.1.2 + fresh: 0.5.2 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.3.0 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.5 + qs: 6.7.0 + range-parser: 1.2.1 + safe-buffer: 5.1.2 + send: 0.17.1 + serve-static: 1.14.1 + setprototypeof: 1.1.1 + statuses: 1.5.0 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + dev: false + engines: + node: '>= 0.10.0' + resolution: + integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + /file-type/9.0.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + /file-uri-to-path/1.0.0: + dev: false + resolution: + integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + /finalhandler/1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + /form-data/3.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.28 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + /forwarded/0.1.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + /fresh/0.5.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + /fs-constants/1.0.0: + dev: false + resolution: + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + /fs-minipass/2.1.0: + dependencies: + minipass: 3.1.3 + dev: false + engines: + node: '>= 8' + resolution: + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + /fs/0.0.2: + dev: false + resolution: + integrity: sha1-4fJE7zkzwbKmS9R5kTYGDQ9ZFPg= + /gauge/2.7.4: + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.3 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.3 + dev: false + resolution: + integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + /gifwrap/0.9.2: + dependencies: + image-q: 1.1.1 + omggif: 1.0.10 + dev: false + resolution: + integrity: sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA== + /github-from-package/0.0.0: + dev: false + resolution: + integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + /global/4.4.0: + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: false + resolution: + integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + /has-flag/4.0.0: + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + /has-unicode/2.0.1: + dev: false + resolution: + integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + /http-errors/1.7.2: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + /http-errors/1.7.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + /iconv-lite/0.4.24: + dependencies: + safer-buffer: 2.1.2 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + /ieee754/1.2.1: + dev: false + resolution: + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + /image-q/1.1.1: + dev: false + engines: + node: '>=0.9.0' + resolution: + integrity: sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY= + /inherits/2.0.3: + dev: false + resolution: + integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + /inherits/2.0.4: + dev: false + resolution: + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /ini/1.3.8: + dev: false + resolution: + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + /ipaddr.js/1.9.0: + dev: false + engines: + node: '>= 0.10' + resolution: + integrity: sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + /is-fullwidth-code-point/1.0.0: + dependencies: + number-is-nan: 1.0.1 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + /is-fullwidth-code-point/2.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + /is-function/1.0.2: + dev: false + resolution: + integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + /isarray/1.0.0: + dev: false + resolution: + integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /jimp/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugins': /@jimp/plugins/0.16.1/@jimp!custom@0.16.1 + '@jimp/types': /@jimp/types/0.16.1/@jimp!custom@0.16.1 + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw== + /jpeg-js/0.4.2: + dev: false + resolution: + integrity: sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + /load-bmfont/1.4.1: + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.4 + phin: 2.9.3 + xhr: 2.6.0 + xtend: 4.0.2 + dev: false + resolution: + integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + /lodash/4.17.20: + dev: false + resolution: + integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + /media-typer/0.3.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + /merge-descriptors/1.0.1: + dev: false + resolution: + integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + /methods/1.1.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + /mime-db/1.42.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + /mime-db/1.45.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + /mime-types/2.1.25: + dependencies: + mime-db: 1.42.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== + /mime-types/2.1.28: + dependencies: + mime-db: 1.45.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + /mime/1.6.0: + dev: false + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + /mimic-response/2.1.0: + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + /min-document/2.19.0: + dependencies: + dom-walk: 0.1.2 + dev: false + resolution: + integrity: sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + /minimist/1.2.5: + dev: false + resolution: + integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + /minipass/3.1.3: + dependencies: + yallist: 4.0.0 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + /minizlib/2.1.2: + dependencies: + minipass: 3.1.3 + yallist: 4.0.0 + dev: false + engines: + node: '>= 8' + resolution: + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + /mkdirp-classic/0.5.3: + dev: false + resolution: + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + /mkdirp/0.5.5: + dependencies: + minimist: 1.2.5 + dev: false + hasBin: true + resolution: + integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + /mkdirp/1.0.4: + dev: false + engines: + node: '>=10' + hasBin: true + resolution: + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + /moment-duration-format/2.3.2: + dev: false + resolution: + integrity: sha512-cBMXjSW+fjOb4tyaVHuaVE/A5TqkukDWiOfxxAjY+PEqmmBQlLwn+8OzwPiG3brouXKY5Un4pBjAeB6UToXHaQ== + /moment/2.29.1: + dev: false + resolution: + integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + /ms/2.0.0: + dev: false + resolution: + integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /ms/2.1.1: + dev: false + resolution: + integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + /ms/2.1.3: + dev: false + resolution: + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + /napi-build-utils/1.0.2: + dev: false + resolution: + integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + /negotiator/0.6.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + /node-abi/2.19.3: + dependencies: + semver: 5.7.1 + dev: false + resolution: + integrity: sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== + /node-fetch/2.6.1: + dev: false + engines: + node: 4.x || >=6.0.0 + resolution: + integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + /node-superfetch/0.1.11: + dependencies: + form-data: 3.0.0 + node-fetch: 2.6.1 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-984lO43EvDtjBOpVXDqnR2L5+pVt+qWfqIE6H7Sl21BoIz26OwSKxBnO9ZmJkYXAimR64MUPiz6tn5hySy1d0Q== + /noop-logger/0.1.1: + dev: false + resolution: + integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + /npmlog/4.1.2: + dependencies: + are-we-there-yet: 1.1.5 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: false + resolution: + integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + /nrc.db/4.0.11: + dev: false + resolution: + integrity: sha512-sxQyinlFstTdi+ljSW8YEIaK0Q8+ctmZ6n64XmquPF1m08oJZ7t1WueCSEcMfT3VbxtED5OHVb0yWrHCfFGxng== + /number-is-nan/1.0.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + /object-assign/4.1.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /omggif/1.0.10: + dev: false + resolution: + integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + /on-finished/2.3.0: + dependencies: + ee-first: 1.1.1 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + /once/1.4.0: + dependencies: + wrappy: 1.0.2 + dev: false + resolution: + integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /os/0.1.1: + dev: false + resolution: + integrity: sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M= + /pako/1.0.11: + dev: false + resolution: + integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + /parse-bmfont-ascii/1.0.6: + dev: false + resolution: + integrity: sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + /parse-bmfont-binary/1.0.6: + dev: false + resolution: + integrity: sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + /parse-bmfont-xml/1.1.4: + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.4.23 + dev: false + resolution: + integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + /parse-headers/2.0.3: + dev: false + resolution: + integrity: sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== + /parse-ms/2.1.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + /parseurl/1.3.3: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + /path-to-regexp/0.1.7: + dev: false + resolution: + integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + /phin/2.9.3: + dev: false + resolution: + integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + /pixelmatch/4.0.2: + dependencies: + pngjs: 3.4.0 + dev: false + hasBin: true + resolution: + integrity: sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + /pngjs/3.4.0: + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + /prebuild-install/5.3.6: + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.5 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.19.3 + noop-logger: 0.1.1 + npmlog: 4.1.2 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 3.1.0 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + which-pm-runs: 1.0.0 + dev: false + engines: + node: '>=6' + hasBin: true + resolution: + integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== + /prism-media/1.2.3: + dev: false + peerDependencies: + '@discordjs/opus': ^0.3.3 + ffmpeg-static: ^4.2.7 || ^3.0.0 || ^2.4.0 + node-opus: ^0.3.3 + opusscript: ^0.0.7 + resolution: + integrity: sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A== + /process-nextick-args/2.0.1: + dev: false + resolution: + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + /process/0.11.10: + dev: false + engines: + node: '>= 0.6.0' + resolution: + integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + /proxy-addr/2.0.5: + dependencies: + forwarded: 0.1.2 + ipaddr.js: 1.9.0 + dev: false + engines: + node: '>= 0.10' + resolution: + integrity: sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + /pump/3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + resolution: + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + /qs/6.7.0: + dev: false + engines: + node: '>=0.6' + resolution: + integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + /quick.db/7.1.3: + dependencies: + better-sqlite3: 7.1.2 + lodash: 4.17.20 + dev: false + resolution: + integrity: sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA== + /range-parser/1.2.1: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + /raw-body/2.4.0: + dependencies: + bytes: 3.1.0 + http-errors: 1.7.2 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + /rc/1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.5 + strip-json-comments: 2.0.1 + dev: false + hasBin: true + resolution: + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + /readable-stream/2.3.7: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + resolution: + integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + /readable-stream/3.6.0: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + /regenerator-runtime/0.13.7: + dev: false + resolution: + integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + /safe-buffer/5.1.2: + dev: false + resolution: + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + /safe-buffer/5.2.1: + dev: false + resolution: + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + /safer-buffer/2.1.2: + dev: false + resolution: + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + /sax/1.2.4: + dev: false + resolution: + integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + /semver/5.7.1: + dev: false + hasBin: true + resolution: + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + /send/0.17.1: + dependencies: + debug: 2.6.9 + depd: 1.1.2 + destroy: 1.0.4 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 1.7.3 + mime: 1.6.0 + ms: 2.1.1 + on-finished: 2.3.0 + range-parser: 1.2.1 + statuses: 1.5.0 + dev: false + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + /serve-static/1.14.1: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.17.1 + dev: false + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + /set-blocking/2.0.0: + dev: false + resolution: + integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + /setimmediate/1.0.5: + dev: false + resolution: + integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + /setprototypeof/1.1.1: + dev: false + resolution: + integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + /signal-exit/3.0.3: + dev: false + resolution: + integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + /simple-concat/1.0.1: + dev: false + resolution: + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + /simple-get/3.1.0: + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + resolution: + integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + /statuses/1.5.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + /string-width/1.0.2: + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + /string-width/2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + /string_decoder/1.1.1: + dependencies: + safe-buffer: 5.1.2 + dev: false + resolution: + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /string_decoder/1.3.0: + dependencies: + safe-buffer: 5.2.1 + dev: false + resolution: + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + /strip-ansi/3.0.1: + dependencies: + ansi-regex: 2.1.1 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + /strip-ansi/4.0.0: + dependencies: + ansi-regex: 3.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= + /strip-json-comments/2.0.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= + /supports-color/7.2.0: + dependencies: + has-flag: 4.0.0 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + /tar-fs/2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + resolution: + integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + /tar-stream/2.2.0: + dependencies: + bl: 4.0.3 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + /tar/6.1.0: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.1.3 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: false + engines: + node: '>= 10' + resolution: + integrity: sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + /timm/1.7.1: + dev: false + resolution: + integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== + /tinycolor2/1.4.2: + dev: false + resolution: + integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + /toidentifier/1.0.0: + dev: false + engines: + node: '>=0.6' + resolution: + integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + /tunnel-agent/0.6.0: + dependencies: + safe-buffer: 5.2.1 + dev: false + resolution: + integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + /tweetnacl/1.0.3: + dev: false + resolution: + integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + /type-is/1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.25 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + /unpipe/1.0.0: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + /user/0.0.0: + dev: false + resolution: + integrity: sha1-8n8bI/xRHyqO+kDbVc+6Ejgk4Co= + /utif/2.0.1: + dependencies: + pako: 1.0.11 + dev: false + resolution: + integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + /util-deprecate/1.0.2: + dev: false + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /utils-merge/1.0.1: + dev: false + engines: + node: '>= 0.4.0' + resolution: + integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + /vary/1.1.2: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + /which-pm-runs/1.0.0: + dev: false + resolution: + integrity: sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + /wide-align/1.1.3: + dependencies: + string-width: 2.1.1 + dev: false + resolution: + integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + /wio.db/4.0.15: + dependencies: + '@types/lodash': 4.14.168 + '@types/node': 14.14.25 + lodash: 4.17.20 + user: 0.0.0 + dev: false + resolution: + integrity: sha512-Z1HrVWS+ICpIlmV2ASlTeL8SGdMj3+G1R7/hRGHAfrwMuWZkv+YWZEqyw1lUbLl3hMOT7w6qArC+SN0u57GhUw== + /wrappy/1.0.2: + dev: false + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /ws/7.4.2: + dev: false + engines: + node: '>=8.3.0' + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + resolution: + integrity: sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + /xhr/2.6.0: + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.3 + xtend: 4.0.2 + dev: false + resolution: + integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + /xml-parse-from-string/1.0.1: + dev: false + resolution: + integrity: sha1-qQKekp09vN7RafPG4oI42VpdWig= + /xml2js/0.4.23: + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + /xmlbuilder/11.0.1: + dev: false + engines: + node: '>=4.0' + resolution: + integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + /xtend/4.0.2: + dev: false + engines: + node: '>=0.4' + resolution: + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + /yallist/4.0.0: + dev: false + resolution: + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +registry: 'https://registry.npmjs.org/' +shrinkwrapMinorVersion: 9 +shrinkwrapVersion: 3 +specifiers: + chalk: ^4.1.0 + common-tags: ^1.8.0 + cpu-stat: ^2.0.1 + crypto: ^1.0.1 + dblapi.js: ^2.4.1 + discord.js: ^12.5.1 + express: ^4.17.1 + fs: ^0.0.2 + jimp: ^0.16.1 + moment: ^2.29.1 + moment-duration-format: ^2.3.2 + ms: ^2.1.3 + node-superfetch: ^0.1.11 + nrc.db: ^4.0.11 + os: ^0.1.1 + parse-ms: ^2.1.0 + quick.db: ^7.1.2 + wio.db: ^4.0.15 diff --git a/util/Util.js b/util/Util.js new file mode 100644 index 0000000..ee4c0b8 --- /dev/null +++ b/util/Util.js @@ -0,0 +1,125 @@ +const request = require('node-superfetch'); +const crypto = require('crypto'); +const { IMGUR_KEY } = process.env; +const yes = ['evet']; +const no = ['hayır'] + +const deleteCommandMessages = function (msg, client) { // eslint-disable-line consistent-return + if (msg.deletable && client.provider.get('global', 'deletecommandmessages', false)) { + return msg.delete(); + } + }; + +class Util { + static wait(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + static shuffle(array) { + const arr = array.slice(0); + for (let i = arr.length - 1; i >= 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + return arr; + } + + static list(arr, conj = 'and') { + const len = arr.length; + return `${arr.slice(0, -1).join(', ')}${len > 1 ? `${len > 2 ? ',' : ''} ${conj} ` : ''}${arr.slice(-1)}`; + } + + static shorten(text, maxLen = 2000) { + return text.length > maxLen ? `${text.substr(0, maxLen - 3)}...` : text; + } + + static duration(ms) { + const sec = Math.floor((ms / 1000) % 60).toString(); + const min = Math.floor((ms / (1000 * 60)) % 60).toString(); + const hrs = Math.floor(ms / (1000 * 60 * 60)).toString(); + return `${hrs.padStart(2, '0')}:${min.padStart(2, '0')}:${sec.padStart(2, '0')}`; + } + + static randomRange(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; + } + + static trimArray(arr, maxLen = 10) { + if (arr.length > maxLen) { + const len = arr.length - maxLen; + arr = arr.slice(0, maxLen); + arr.push(`${len} more...`); + } + return arr; + } + + static base64(text, mode = 'encode') { + if (mode === 'encode') return Buffer.from(text).toString('base64'); + if (mode === 'decode') return Buffer.from(text, 'base64').toString('utf8') || null; + throw new TypeError(`${mode} is not a supported base64 mode.`); + } + + static hash(text, algorithm) { + return crypto.createHash(algorithm).update(text).digest('hex'); + } + + static async randomFromImgurAlbum(album) { + const { body } = await request + .get(`https://api.imgur.com/3/album/${album}`) + .set({ Authorization: `Client-ID ${IMGUR_KEY}` }); + if (!body.data.images.length) return null; + return body.data.images[Math.floor(Math.random() * body.data.images.length)].link; + } + + static today(timeZone) { + const now = new Date(); + if (timeZone) now.setUTCHours(now.getUTCHours() + timeZone); + now.setHours(0); + now.setMinutes(0); + now.setSeconds(0); + now.setMilliseconds(0); + return now; + } + + static tomorrow(timeZone) { + const today = Util.today(timeZone); + today.setDate(today.getDate() + 1); + return today; + } + + static async awaitPlayers(msg, max, min, { text = 'join game', time = 30000 } = {}) { + const joined = []; + joined.push(msg.author.id); + const filter = res => { + if (msg.author.bot) return false; + if (joined.includes(res.author.id)) return false; + if (res.content.toLowerCase() !== text.toLowerCase()) return false; + joined.push(res.author.id); + return true; + }; + const verify = await msg.channel.awaitMessages(filter, { max, time }); + verify.set(msg.id, msg); + if (verify.size < min) return false; + return verify.map(message => message.author); + } + + static async verify(channel, user, time = 30000) { + const filter = res => { + const value = res.content.toLowerCase(); + return res.author.id === user.id && (yes.includes(value) || no.includes(value)); + }; + const verify = await channel.awaitMessages(filter, { + max: 1, + time + }); + if (!verify.size) return 0; + const choice = verify.first().content.toLowerCase(); + if (yes.includes(choice)) return true; + if (no.includes(choice)) return false; + return false; + } +} + +module.exports = Util; diff --git a/util/eventLoader.js b/util/eventLoader.js new file mode 100644 index 0000000..8d5083e --- /dev/null +++ b/util/eventLoader.js @@ -0,0 +1,5 @@ +const reqEvent = (event) => require(`../events/${event}`); +module.exports = client => { + client.on('ready', () => reqEvent('ready')(client)); + client.on('message', reqEvent('message')); +}; \ No newline at end of file diff --git a/version.go b/version.go deleted file mode 100644 index fd4c0ef..0000000 --- a/version.go +++ /dev/null @@ -1,3 +0,0 @@ -package main - -const Version string = "0.1.0" From aa9727fb5259d33c30f300b19775cd79adfdcd39 Mon Sep 17 00:00:00 2001 From: "Glitch (pie-tested-cormorant)" Date: Thu, 23 Sep 2021 17:59:24 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8F=93=F0=9F=8D=82=20Updated=20with?= =?UTF-8?q?=20Glitch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit