text: /**
     * Create By Dika Ardnt.
     * Contact Me on wa.me/6288292024190
     * Follow https://github.com/DikaArdnt
  */
  
  require('./config')
  const { default: makeWASocket, BufferJSON, WA_DEFAULT_EPHEMERAL, generateWAMessageFromContent, downloadContentFromMessage, downloadHistory, proto, getMessage, generateWAMessageContent, prepareWAMessageMedia } = require('@adiwajshing/baileys-md')
  const fs = require('fs')
  const util = require('util')
  const chalk = require('chalk')
  const { exec, spawn, execSync } = require("child_process")
  const axios = require('axios')
  const { fromBuffer } = require('file-type')
  const path = require('path')
  const os = require('os')
  const speed = require('performance-now')
  const { performance } = require('perf_hooks')
  const { Primbon } = require('scrape-primbon')
  const primbon = new Primbon()
  const { pinterest, wallpaper, wikimedia, porno, hentai, quotesAnime } = require('./lib/scraper')
  const { UploadFileUgu, webp2mp4File, TelegraPh } = require('./lib/uploader')
  const { smsg, getGroupAdmins, formatp, tanggal, formatDate, getTime, isUrl, sleep, clockString, runtime, fetchJson, getBuffer, jsonformat, delay, format, logic, generateProfilePicture, parseMention, getRandom } = require('./lib/myfunc')
  
  
  module.exports = hisoka = async (hisoka, m, chatUpdate) => {
      try {
          var body = (m.mtype === 'conversation') ? m.message.conversation : (m.mtype == 'imageMessage') ? m.message.imageMessage.caption : (m.mtype == 'videoMessage') ? m.message.videoMessage.caption : (m.mtype == 'extendedTextMessage') ? m.message.extendedTextMessage.text : (m.mtype == 'buttonsResponseMessage') ? m.message.buttonsResponseMessage.selectedButtonId : (m.mtype == 'listResponseMessage') ? m.message.listResponseMessage.singleSelectReply.selectedRowId : (m.mtype == 'templateButtonReplyMessage') ? m.message.templateButtonReplyMessage.selectedId : (m.mtype === 'messageContextInfo') ? (m.message.buttonsResponseMessage?.selectedButtonId || m.message.listResponseMessage?.singleSelectReply.selectedRowId || m.text) : ''
          var budy = (typeof m.text == 'string' ? m.text : '')
          var prefix = prefa ? /^[°•π÷×¶∆£¢€¥®™+✓_=|~!?@#$%^&.©^]/gi.test(body) ? body.match(/^[°•π÷×¶∆£¢€¥®™+✓_=|~!?@#$%^&.©^]/gi)[0] : "" : prefa ?? global.prefix
          const isCmd = body.startsWith(prefix)
          const command = body.replace(prefix, '').trim().split(/ +/).shift().toLowerCase()
          const args = body.trim().split(/ +/).slice(1)
          const pushname = m.pushName || "No Name"
          const isCreator = [hisoka.user.id, ...global.owner].map(v => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').includes(m.sender)
          const itsMe = m.sender == hisoka.user.id ? true : false
          const text = q = args.join(" ")
          const quoted = m.quoted ? m.quoted : m
          const mime = (quoted.msg || quoted).mimetype || ''
  	const isMedia = /image|video|sticker|audio/.test(mime)
  	
          // Group
          const groupMetadata = m.isGroup ? await hisoka.groupMetadata(m.chat).catch(e => {}) : ''
          const groupName = m.isGroup ? groupMetadata.subject : ''
          const participants = m.isGroup ? await groupMetadata.participants : ''
          const groupAdmins = m.isGroup ? await getGroupAdmins(participants) : ''
  	const isBotAdmins = m.isGroup ? groupAdmins.includes(m.sender) : false
          const isGroupAdmins = m.isGroup ? groupAdmins.includes(m.sender) : false
  
          // Bot Status
          const used = process.memoryUsage()
          const cpus = os.cpus().map(cpu => {
              cpu.total = Object.keys(cpu.times).reduce((last, type) => last + cpu.times[type], 0)
  			return cpu
          })
          const cpu = cpus.reduce((last, cpu, _, { length }) => {
              last.total += cpu.total
  			last.speed += cpu.speed / length
  			last.times.user += cpu.times.user
  			last.times.nice += cpu.times.nice
  			last.times.sys += cpu.times.sys
  			last.times.idle += cpu.times.idle
  			last.times.irq += cpu.times.irq
  			return last
          }, {
              speed: 0,
  			total: 0,
  			times: {
  			    user: 0,
  			    nice: 0,
  			    sys: 0,
  			    idle: 0,
  			    irq: 0
              }
          })
  
          // Public & Self
          if (!hisoka.public) {
              if (!m.key.fromMe) return
          }
  
          // Push Message To Console
          if (m.message) {
              console.log(chalk.black(chalk.bgWhite('[ PESAN ]')), chalk.black(chalk.bgGreen(new Date)), chalk.black(chalk.bgBlue(budy || m.mtype)) + '\n' + chalk.magenta('=> Dari'), chalk.green(pushname), chalk.yellow(m.sender) + '\n' + chalk.blueBright('=> Di'), chalk.green(m.isGroup ? pushname : 'Private Chat', m.chat))
          }
  
          switch(command) {
  	    case 'sc': {
                  m.reply('Script : https://github.com/DikaArdnt/Hisoka-Morou\n\n Dont Forget Give Star\n\nDonate : https://ko-fi.com/cak_haho\n\n Dont Forget Donate')
              }
              break
              case 'chat': {
                  if (!isCreator) throw mess.owner
                  if (!q) throw 'Option : 1. mute\n2. unmute\n3. archive\n4. unarchive\n5. read\n6. unread\n7. delete'
                  if (args[0] === 'mute') {
                      hisoka.chatModify({ mute: 'Infinity' }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'unmute') {
                      hisoka.chatModify({ mute: null }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'archive') {
                      hisoka.chatModify({  archive: true }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'unarchive') {
                      hisoka.chatModify({ archive: false }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'read') {
                      hisoka.chatModify({ markRead: true }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'unread') {
                      hisoka.chatModify({ markRead: false }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'delete') {
                      hisoka.chatModify({ clear: { message: { id: m.quoted.id, fromMe: true }} }, m.chat, []).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  }
              }
              break
              case 'join': {
                  if (!isCreator) throw mess.owner
                  if (!text) throw 'Masukkan Link Group!'
                  if (!isUrl(args[0]) && !args[0].includes('whatsapp.com')) throw 'Link Invalid!'
                  m.reply(mess.wait)
                  let result = args[0].split('https://chat.whatsapp.com/')[1]
                  await hisoka.groupAcceptInvite(result).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
              }
              break
              case 'leave': {
                  if (!isCreator) throw mess.owner
                  await hisoka.groupLeave(m.chat).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
              }
              break
  	case 'kick': {
  		if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
  		let users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'
  		await hisoka.groupParticipantsUpdate(m.chat, [users], 'remove').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
  	}
  	break
  	case 'add': {
  		if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
  		let users = m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'
  		await hisoka.groupParticipantsUpdate(m.chat, [users], 'add').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
  	}
  	break
  	case 'promote': {
  		if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
  		let users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'
  		await hisoka.groupParticipantsUpdate(m.chat, [users], 'promote').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
  	}
  	break
  	case 'demote': {
  		if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
  		let users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'
  		await hisoka.groupParticipantsUpdate(m.chat, [users], 'demote').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
  	}
  	break
          case 'block': {
  		if (!isCreator) throw mess.owner
  		let users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'
  		await hisoka.updateBlockStatus(users, 'block').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
  	}
  	break
          case 'unblock': {
  		if (!isCreator) throw mess.owner
  		let users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'
  		await hisoka.updateBlockStatus(users, 'unblock').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
  	}
  	break
  	    case 'setname': case 'setsubject': {
                  if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
                  if (!text) throw 'Text ?'
                  await hisoka.groupUpdateSubject(m.chat, text).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
              }
              break
              case 'setprofile': case 'setpp': {
                  if (!isCreator) throw mess.owner
                  if (!quoted) throw 'Reply Image'
                  if (/image/.test(mime)) throw `balas image dengan caption *${prefix + command}*`
                  let media = await hisoka.downloadAndSaveMediaMessage(quoted)
                  if (!m.isGroup && !isBotAdmins && !isGroupAdmins) {
                      await hisoka.updateProfilePicture(m.chat, { url: media }).catch((err) => fs.unlinkSync(media))
  		    await fs.unlinkSync(media)
                  } else if (!isCreator) {
                      await hisoka.updateProfilePicture(hisoka.user.id, { url: media }).catch((err) => fs.unlinkSync(media))
  		    await fs.unlinkSync(media)
                  }
              }
              break
              case 'group': case 'grup': {
                  if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
                  if (!text) throw 'Masukkan value open/close'
                  if (args[0].toLowerCase() === 'close') {
                      await hisoka.groupSettingUpdate(m.chat, 'announcement').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0].toLowerCase() === 'open') {
                      await hisoka.groupSettingUpdate(m.chat, 'not_announcement').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  }
              }
              break
              case 'linkgroup': case 'linkgc': {
                  if (!m.isGroup) throw mess.group
                  let response = await hisoka.groupInviteCode(m.chat)
                  hisoka.sendText(m.chat, `https://chat.whatsapp.com/${response}\n\nLink Group : ${groupMetadata.subject}`, m, { detectLink: true })
              }
              break
              case 'ephemeral': {
                  if (!m.isGroup) throw mess.group
                  if (!isBotAdmins) throw mess.botAdmin
                  if (!isGroupAdmins) throw mess.admin
                  if (!text) throw 'Masukkan value enable/disable'
                  if (args[0] === 'enable') {
                      await hisoka.sendMessage(m.chat, { disappearingMessagesInChat: WA_DEFAULT_EPHEMERAL }).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  } else if (args[0] === 'disable') {
                      await hisoka.sendMessage(m.chat, { disappearingMessagesInChat: false }).then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))
                  }
              }
              break
              case 'delete': case 'del': {
                  if (!m.quoted) throw false
                  let { chat, fromMe, id, isBaileys } = m.quoted
                  if (!isBaileys) throw 'Pesan tersebut bukan dikirim oleh bot!'
                  hisoka.sendMessage(m.chat, { delete: { remoteJid: m.chat, fromMe: true, id: m.quoted.id, participant: m.quoted.sender } })
              }
              break
              case 'sticker': case 's': case 'stickergif': case 'sgif': {
              if (!quoted) throw `Balas Video/Image Dengan Caption ${prefix + command}`
              m.reply(mess.wait)
                      if (/image/.test(mime)) {
                  let media = await quoted.download()
                  let encmedia = await hisoka.sendImageAsSticker(m.chat, media, m, { packname: global.packname, author: global.author })
                  await fs.unlinkSync(encmedia)
              } else if (/video/.test(mime)) {
                  if ((quoted.msg || quoted).seconds > 11) return m.reply('Maksimal 10 detik!')
                  let media = await quoted.download()
                  let encmedia = await hisoka.sendVideoAsSticker(m.chat, media, m, { packname: global.packname, author: global.author })
                  await fs.unlinkSync(encmedia)
              } else {
                          throw `Kirim Gambar/Video Dengan Caption ${prefix + command}\nDurasi Video 1-9 Detik`
                  }
              }
              break
              case 'toimage': case 'toimg': {
                  if (!quoted) throw 'Reply Image'
                  if (!/webp/.test(mime)) throw `balas stiker dengan caption *${prefix + command}*`
                  m.reply(mess.wait)
                  let media = await hisoka.downloadAndSaveMediaMessage(quoted)
                  let ran = await getRandom('.png')
                  exec(`ffmpeg -i ${media} ${ran}`, (err) => {
                      fs.unlinkSync(media)
                      if (err) throw err
                      let buffer = fs.readFileSync(ran)
                      hisoka.sendMessage(m.chat, { image: buffer }, { quoted: m })
                      fs.unlinkSync(ran)
                  })
              }
              break
  	        case 'tomp4': case 'tovideo': {
                  if (!quoted) throw 'Reply Image'
                  if (!/webp/.test(mime)) throw `balas stiker dengan caption *${prefix + command}*`
                  m.reply(mess.wait)
                  let media = await hisoka.downloadAndSaveMediaMessage(quoted)
                  let webpToMp4 = await webp2mp4File(media)
                  await hisoka.sendMessage(m.chat, { video: { url: webpToMp4.result, caption: 'Convert Webp To Video' } }, { quoted: m })
                  await fs.unlinkSync(media)
              }
              break
              case 'togif': {
                  if (!quoted) throw 'Reply Image'
                  if (!/webp/.test(mime)) throw `balas stiker dengan caption *${prefix + command}*`
                  m.reply(mess.wait)
                  let media = await hisoka.downloadAndSaveMediaMessage(quoted)
                  let webpToMp4 = await webp2mp4File(media)
                  await hisoka.sendMessage(m.chat, { video: { url: webpToMp4.result, caption: 'Convert Webp To Video' }, gifPlayback: true }, { quoted: m })
                  await fs.unlinkSync(media)
              }
              break
  	        case 'tourl': {
                  m.reply(mess.wait)
                  let media = await hisoka.downloadAndSaveMediaMessage(quoted)
                  if (/image/.test(mime)) {
                      let anu = await TelegraPh(media)
                      m.reply(util.format(anu))
                  } else if (!/image/.test(mime)) {
                      let anu = await UploadFileUgu(media)
                      m.reply(util.format(anu))
                  }
                  await fs.unlinkSync(media)
              }
              break
              case 'pinterest': {
                  m.reply(mess.wait)
                  anu = await pinterest(text)
                  result = anu[Math.floor(Math.random() * anu.length)]
                  hisoka.sendMessage(m.chat, { image: { url: result }, caption: '⭔ Media Url : '+result }, { quoted: m })
              }
              break
              case 'wallpaper': {
                  m.reply(mess.wait)
                  anu = await wallpaper(text)
                  result = anu[Math.floor(Math.random() * anu.length)]
                  hisoka.sendMessage(m.chat, { image: { url: result.image }, caption: `⭔ Title : ${result.title}\n⭔ Category : ${result.type}\n⭔ Media Url : ${result.image}` }, { quoted: m })
              }
              break
              case 'wallpaper': {
                  m.reply(mess.wait)
                  anu = await wallpaper(text)
                  result = anu[Math.floor(Math.random() * anu.length)]
                  hisoka.sendMessage(m.chat, { image: { url: result.image }, caption: `⭔ Title : ${result.title}\n⭔ Category : ${result.type}\n⭔ Media Url : ${result.image}` }, { quoted: m })
              }
              break
              case 'anime': case 'waifu': case 'husbu': case 'neko': case 'shinobu': case 'megumin': {
                  m.reply(mess.wait)
                  let anu = await getBuffer(api('zenz', '/api/random/anime/'+command, 'apikey'))
                  hisoka.sendMessage(m.chat, { image: { url: anu }, caption: `Download From ${text}` }, { quoted: m})
              }
              break
              case 'wikimedia': {
                  m.reply(mess.wait)
                  anu = wikimedia(text)
                  result = anu[Math.floor(Math.random() * anu.length)]
                  hisoka.sendMessage(m.chat, { image: { url: result.image }, caption: `⭔ Title : ${result.title}\n⭔ Source : ${result.source}\n⭔ Media Url : ${result.image}` }, { quoted: m })
              }
              break
              case 'porno': case 'porn': case 'bokep': {
                  m.reply(mess.wait)
                  anu = await porno()
                  hisoka.sendMessage(m.chat, { video: { url: 'https://tikporntok.com/'+anu.video }, caption: `⭔ Title : ${anu.title}\n⭔ Viewers : ${anu.views}\n⭔ Tags : ${anu.tags}\n⭔ Likes : ${anu.like}\n⭔ Dislikes : ${anu.dislike}\n⭔ Favourite : ${anu.favorite}\n⭔ Time Upload : ${anu.upload}\n⭔ Description : ${anu.desc}\n⭔ Source : https://tikporntok.com/${anu.source}` }, { quoted: m })
              }
              break
              case 'hentai': {
                  m.reply(mess.wait)
                  anu = await hentai()
                  result = anu[Math.floor(Math.random() * anu.length)]
                  hisoka.sendMessage(m.chat, { video: { url: result.video_1 }, caption: `⭔ Title : ${result.title}\n⭔ Category : ${result.category}\n⭔ Mimetype : ${result.type}\n⭔ Views : ${result.views_count}\n⭔ Shares : ${result.share_count}\n⭔ Source : ${result.link}\n⭔ Media Url : ${result.video_1}` }, { quoted: m })
              }
              break
              case 'quotesanime': case 'quoteanime': {
                  anu = await quotesAnime()
                  result = anu[Math.floor(Math.random() * anu.length)]
                  let buttons = [
                      {buttonId: `quotesanime`, buttonText: {displayText: 'Next'}, type: 1}
                  ]
                  let buttonMessage = {
                      text: `~_${result.quotes}_\n\nBy '${result.karakter}', ${result.anime}\n\n- ${result.up_at}`,
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 2
                  }
                  hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
              }
              break
  	        case 'motivasi': case 'dilanquote': case 'bucinquote': case 'katasenja': case 'puisi': {
                  let anu = await fetchJson(api('zenz', '/api/'+command, {}, 'apikey'))
                  let buttons = [
                      {buttonId: `motivasi`, buttonText: {displayText: 'Next'}, type: 1}
                  ]
                  let buttonMessage = {
                      text: anu.result.message,
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 2
                  }
                  hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
              }
              break
  	    case 'nomerhoki': case 'nomorhoki': {
                  if (!Number(text)) throw `Example : ${prefix + command} 6288292024190`
                  let anu = await primbon.nomer_hoki(Number(text))
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nomor HP :* ${anu.message.nomer_hp}\n⭔ *Angka Shuzi :* ${anu.message.angka_shuzi}\n⭔ *Energi Positif :*\n- Kekayaan : ${anu.message.energi_positif.kekayaan}\n- Kesehatan : ${anu.message.energi_positif.kesehatan}\n- Cinta : ${anu.message.energi_positif.cinta}\n- Kestabilan : ${anu.message.energi_positif.kestabilan}\n- Persentase : ${anu.message.energi_positif.persentase}\n⭔ *Energi Negatif :*\n- Perselisihan : ${anu.message.energi_negatif.perselisihan}\n- Kehilangan : ${anu.message.energi_negatif.kehilangan}\n- Malapetaka : ${anu.message.energi_negatif.malapetaka}\n- Kehancuran : ${anu.message.energi_negatif.kehancuran}\n- Persentase : ${anu.message.energi_negatif.persentase}`, m)
              }
              break
              case 'artimimpi': case 'tafsirmimpi': {
                  if (!text) throw `Example : ${prefix + command} belanja`
                  let anu = await primbon.tafsir_mimpi(text)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Mimpi :* ${anu.message.mimpi}\n⭔ *Arti :* ${anu.message.arti}\n⭔ *Solusi :* ${anu.message.solusi}`, m)
              }
              break
              case 'ramalanjodoh': case 'ramaljodoh': {
                  if (!text) throw `Example : ${prefix + command} Dika, 7, 7, 2005, Novia, 16, 11, 2004`
                  let [nama1, tgl1, bln1, thn1, nama2, tgl2, bln2, thn2] = text.split`,`
                  let anu = await primbon.ramalan_jodoh(nama1, tgl1, bln1, thn1, nama2, tgl2, thn2)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama Anda :* ${anu.message.nama_anda.nama}\n⭔ *Lahir Anda :* ${anu.message.nama_anda.tgl_lahir}\n⭔ *Nama Pasangan :* ${anu.message.nama_pasangan.nama}\n⭔ *Lahir Pasangan :* ${anu.message.nama_pasangan.tgl_lahir}\n⭔ *Hasil :* ${anu.message.result}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'ramalanjodohbali': case 'ramaljodohbali': {
                  if (!text) throw `Example : ${prefix + command} Dika, 7, 7, 2005, Novia, 16, 11, 2004`
                  let [nama1, tgl1, bln1, thn1, nama2, tgl2, bln2, thn2] = text.split`,`
                  let anu = await primbon.ramalan_jodoh_bali(nama1, tgl1, bln1, thn1, nama2, tgl2, thn2)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama Anda :* ${anu.message.nama_anda.nama}\n⭔ *Lahir Anda :* ${anu.message.nama_anda.tgl_lahir}\n⭔ *Nama Pasangan :* ${anu.message.nama_pasangan.nama}\n⭔ *Lahir Pasangan :* ${anu.message.nama_pasangan.tgl_lahir}\n⭔ *Hasil :* ${anu.message.result}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'suamiistri': {
                  if (!text) throw `Example : ${prefix + command} Dika, 7, 7, 2005, Novia, 16, 11, 2004`
                  let [nama1, tgl1, bln1, thn1, nama2, tgl2, bln2, thn2] = text.split`,`
                  let anu = await primbon.suami_istri(nama1, tgl1, bln1, thn1, nama2, tgl2, thn2)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama Suami :* ${anu.message.suami.nama}\n⭔ *Lahir Suami :* ${anu.message.suami.tgl_lahir}\n⭔ *Nama Istri :* ${anu.message.istri.nama}\n⭔ *Lahir Istri :* ${anu.message.istri.tgl_lahir}\n⭔ *Hasil :* ${anu.message.result}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'ramalancinta': case 'ramalcinta': {
                  if (!text) throw `Example : ${prefix + command} Dika, 7, 7, 2005, Novia, 16, 11, 2004`
                  let [nama1, tgl1, bln1, thn1, nama2, tgl2, bln2, thn2] = text.split`,`
                  let anu = await primbon.ramalan_cinta(nama1, tgl1, bln1, thn1, nama2, tgl2, thn2)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama Anda :* ${anu.message.nama_anda.nama}\n⭔ *Lahir Anda :* ${anu.message.nama_anda.tgl_lahir}\n⭔ *Nama Pasangan :* ${anu.message.nama_pasangan.nama}\n⭔ *Lahir Pasangan :* ${anu.message.nama_pasangan.tgl_lahir}\n⭔ *Sisi Positif :* ${anu.message.sisi_positif}\n⭔ *Sisi Negatif :* ${anu.message.sisi_negatif}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'artinama': {
                  if (!text) throw `Example : ${prefix + comman} Dika Ardianta`
                  let anu = await primbon.arti_nama(text)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama :* ${anu.message.nama}\n⭔ *Arti :* ${anu.message.arti}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'kecocokannama': case 'cocoknama': {
                  if (!text) throw `Example : ${prefix + comman} Dika, 7, 7, 2005`
                  let [nama, tgl, bln, thn] = text.split`,`
                  let anu = await primbon.kecocokan_nama(nama, tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama :* ${anu.message.nama}\n⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Life Path :* ${anu.message.life_path}\n⭔ *Destiny :* ${anu.message.destiny}\n⭔ *Destiny Desire :* ${anu.message.destiny_desire}\n⭔ *Personality :* ${anu.message.personality}\n⭔ *Persentase :* ${anu.message.persentase_kecocokan}`, m)
              }
              break
              case 'kecocokanpasangan': case 'cocokpasangan': case 'pasangan': {
                  if (!text) throw `Example : ${prefix + command} Dika|Novia`
                  let [nama1, nama2] = text.split`|`
                  let anu = await primbon.kecocokan_nama_pasangan(nama1, nama2)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendImage(m.chat,  anu.message.gambar, `⭔ *Nama Anda :* ${anu.message.nama_anda}\n⭔ *Nama Pasangan :* ${anu.message.nama_pasangan}\n⭔ *Sisi Positif :* ${anu.message.sisi_positif}\n⭔ *Sisi Negatif :* ${anu.message.sisi_negatif}`, m)
              }
              break
              case 'jadianpernikahan': case 'jadiannikah': {
                  if (!text) throw `Example : ${prefix + command} 6, 12, 2020`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.tanggal_jadian_pernikahan(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Tanggal Pernikahan :* ${anu.message.tanggal}\n⭔ *karakteristik :* ${anu.message.karakteristik}`, m)
              }
              break
              case 'sifatusaha': {
                  if (!ext)throw `Example : ${prefix+ command} 28, 12, 2021`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.sifat_usaha_bisnis(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Lahir :* ${anu.message.hari_lahir}\n⭔ *Usaha :* ${anu.message.usaha}`, m)
              }
              break
              case 'rejeki': case 'rezeki': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.rejeki_hoki_weton(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Lahir :* ${anu.message.hari_lahir}\n⭔ *Rezeki :* ${anu.message.rejeki}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'pekerjaan': case 'kerja': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.pekerjaan_weton_lahir(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Lahir :* ${anu.message.hari_lahir}\n⭔ *Pekerjaan :* ${anu.message.pekerjaan}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'ramalannasib': case 'ramalnasib': case 'nasib': {
                  if (!text) throw `Example : 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.ramalan_nasib(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Analisa :* ${anu.message.analisa}\n⭔ *Angka Akar :* ${anu.message.angka_akar}\n⭔ *Sifat :* ${anu.message.sifat}\n⭔ *Elemen :* ${anu.message.elemen}\n⭔ *Angka Keberuntungan :* ${anu.message.angka_keberuntungan}`, m)
              }
              break
              case 'potensipenyakit': case 'penyakit': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.cek_potensi_penyakit(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Analisa :* ${anu.message.analisa}\n⭔ *Sektor :* ${anu.message.sektor}\n⭔ *Elemen :* ${anu.message.elemen}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'artitarot': case 'tarot': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.arti_kartu_tarot(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendImage(m.chat, anu.message.image, `⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Simbol Tarot :* ${anu.message.simbol_tarot}\n⭔ *Arti :* ${anu.message.arti}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'fengshui': {
                  if (!text) throw `Example : ${prefix + command} Dika, 1, 2005\n\nNote : ${prefix + command} Nama, gender, tahun lahir\nGender : 1 untuk laki-laki & 2 untuk perempuan`
                  let [nama, gender, tahun] = text.split`,`
                  let anu = await primbon.perhitungan_feng_shui(nama, gender, tahun)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama :* ${anu.message.nama}\n⭔ *Lahir :* ${anu.message.tahun_lahir}\n⭔ *Gender :* ${anu.message.jenis_kelamin}\n⭔ *Angka Kua :* ${anu.message.angka_kua}\n⭔ *Kelompok :* ${anu.message.kelompok}\n⭔ *Karakter :* ${anu.message.karakter}\n⭔ *Sektor Baik :* ${anu.message.sektor_baik}\n⭔ *Sektor Buruk :* ${anu.message.sektor_buruk}`, m)
              }
              break
              case 'haribaik': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.petung_hari_baik(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Kala Tinantang :* ${anu.message.kala_tinantang}\n⭔ *Info :* ${anu.message.info}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'harisangar': case 'taliwangke': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.hari_sangar_taliwangke(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Hasil :* ${anu.message.result}\n⭔ *Info :* ${anu.message.info}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'harinaas': case 'harisial': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.primbon_hari_naas(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Hari Lahir :* ${anu.message.hari_lahir}\n⭔ *Tanggal Lahir :* ${anu.message.tgl_lahir}\n⭔ *Hari Naas :* ${anu.message.hari_naas}\n⭔ *Info :* ${anu.message.catatan}\n⭔ *Catatan :* ${anu.message.info}`, m)
              }
              break
              case 'nagahari': case 'harinaga': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.rahasia_naga_hari(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Hari Lahir :* ${anu.message.hari_lahir}\n⭔ *Tanggal Lahir :* ${anu.message.tgl_lahir}\n⭔ *Arah Naga Hari :* ${anu.message.arah_naga_hari}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'arahrejeki': case 'arahrezeki': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.primbon_arah_rejeki(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Hari Lahir :* ${anu.message.hari_lahir}\n⭔ *tanggal Lahir :* ${anu.message.tgl_lahir}\n⭔ *Arah Rezeki :* ${anu.message.arah_rejeki}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'peruntungan': {
                  if (!text) throw `Example : ${prefix + command} DIka, 7, 7, 2005, 2022\n\nNote : ${prefix + command} Nama, tanggal lahir, bulan lahir, tahun lahir, untuk tahun`
                  let [nama, tgl, bln, thn, untuk] = text.split`,`
                  let anu = await primbon.ramalan_peruntungan(nama, tgl, bln, thn, untuk)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama :* ${anu.message.nama}\n⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Peruntungan Tahun :* ${anu.message.peruntungan_tahun}\n⭔ *Hasil :* ${anu.message.result}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'weton': case 'wetonjawa': {
                  if (!text) throw `Example : ${prefix + command} 7, 7, 2005`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.weton_jawa(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Tanggal :* ${anu.message.tanggal}\n⭔ *Jumlah Neptu :* ${anu.message.jumlah_neptu}\n⭔ *Watak Hari :* ${anu.message.watak_hari}\n⭔ *Naga Hari :* ${anu.message.naga_hari}\n⭔ *Jam Baik :* ${anu.message.jam_baik}\n⭔ *Watak Kelahiran :* ${anu.message.watak_kelahiran}`, m)
              }
              break
              case 'sifat': case 'karakter': {
                  if (!text) throw `Example : ${prefix + command} Dika, 7, 7, 2005`
                  let [nama, tgl, bln, thn] = text.split`,`
                  let anu = await primbon.sifat_karakter_tanggal_lahir(nama, tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama :* ${anu.message.nama}\n⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Garis Hidup :* ${anu.message.garis_hidup}`, m)
              }
              break
              case 'keberuntungan': {
                  if (!text) throw `Example : ${prefix + command} Dika, 7, 7, 2005`
                  let [nama, tgl, bln, thn] = text.split`,`
                  let anu = await primbon.potensi_keberuntungan(nama, tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Nama :* ${anu.message.nama}\n⭔ *Lahir :* ${anu.message.tgl_lahir}\n⭔ *Hasil :* ${anu.message.result}`, m)
              }
              break
              case 'memancing': {
                  if (!text) throw `Example : ${prefix + command} 12, 1, 2022`
                  let [tgl, bln, thn] = text.split`,`
                  let anu = await primbon.primbon_memancing_ikan(tgl, bln, thn)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Tanggal :* ${anu.message.tgl_memancing}\n⭔ *Hasil :* ${anu.message.result}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'masasubur': {
                  if (!text) throw `Example : ${prefix + command} 12, 1, 2022, 28\n\nNote : ${prefix + command} hari pertama menstruasi, siklus`
                  let [tgl, bln, thn, siklus] = text.split`,`
                  let anu = await primbon.masa_subur(tgl, bln, thn, siklus)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Hasil :* ${anu.message.result}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'zodiak': case 'zodiac': {
                  if (!text) throw `Example : ${prefix+ command} 7 7 2005`
                  let zodiak = [
                      ["capricorn", new Date(1970, 0, 1)],
                      ["aquarius", new Date(1970, 0, 20)],
                      ["pisces", new Date(1970, 1, 19)],
                      ["aries", new Date(1970, 2, 21)],
                      ["taurus", new Date(1970, 3, 21)],
                      ["gemini", new Date(1970, 4, 21)],
                      ["cancer", new Date(1970, 5, 22)],
                      ["leo", new Date(1970, 6, 23)],
                      ["virgo", new Date(1970, 7, 23)],
                      ["libra", new Date(1970, 8, 23)],
                      ["scorpio", new Date(1970, 9, 23)],
                      ["sagittarius", new Date(1970, 10, 22)],
                      ["capricorn", new Date(1970, 11, 22)]
                  ].reverse()
  
                  function getZodiac(month, day) {
                      let d = new Date(1970, month - 1, day)
                      return zodiak.find(([_,_d]) => d >= _d)[0]
                  }
                  let date = new Date(text)
                  if (date == 'Invalid Date') throw date
                  let d = new Date()
                  let [tahun, bulan, tanggal] = [d.getFullYear(), d.getMonth() + 1, d.getDate()]
                  let birth = [date.getFullYear(), date.getMonth() + 1, date.getDate()]
  
                  let zodiac = await getZodiac(birth[1], birth[2])
                  
                  let anu = await primbon.zodiak(zodiac)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Zodiak :* ${anu.message.zodiak}\n⭔ *Nomor :* ${anu.message.nomor_keberuntungan}\n⭔ *Aroma :* ${anu.message.aroma_keberuntungan}\n⭔ *Planet :* ${anu.message.planet_yang_mengitari}\n⭔ *Bunga :* ${anu.message.bunga_keberuntungan}\n⭔ *Warna :* ${anu.message.warna_keberuntungan}\n⭔ *Batu :* ${anu.message.batu_keberuntungan}\n⭔ *Elemen :* ${anu.message.elemen_keberuntungan}\n⭔ *Pasangan Zodiak :* ${anu.message.pasangan_zodiak}\n⭔ *Catatan :* ${anu.message.catatan}`, m)
              }
              break
              case 'shio': {
                  if (!text) throw `Example : ${prefix + command} tikus\n\nNote : For Detail https://primbon.com/shio.htm`
                  let anu = await primbon.shio(text)
                  if (anu.status == false) return m.reply(anu.message)
                  hisoka.sendText(m.chat, `⭔ *Hasil :* ${anu.message}`, m)
              }
              break
  	        case 'tiktok': case 'tiktoknowm': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/tiktok', { url: text }, 'apikey'))
                  let buttons = [
                      {buttonId: `tiktokwm ${text}`, buttonText: {displayText: '► With Watermark'}, type: 1},
                      {buttonId: `tiktokmp3 ${text}`, buttonText: {displayText: '♫ Audio'}, type: 1}
                  ]
                  let buttonMessage = {
                      video: { url: anu.result.nowatermark },
                      caption: `Download From ${text}`,
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 5
                  }
                  hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
              }
              break
              case 'tiktokwm': case 'tiktokwatermark': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/tiktok', { url: text }, 'apikey'))
                  let buttons = [
                      {buttonId: `tiktoknowm ${text}`, buttonText: {displayText: '► No Watermark'}, type: 1},
                      {buttonId: `tiktokmp3 ${text}`, buttonText: {displayText: '♫ Audio'}, type: 1}
                  ]
                  let buttonMessage = {
                      video: { url: anu.result.watermark },
                      caption: `Download From ${text}`,
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 5
                  }
                  hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
              }
              break
              case 'tiktokmp3': case 'tiktokaudio': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/tiktok', { url: text }, 'apikey'))
                  let buttons = [
                      {buttonId: `tiktoknowm ${text}`, buttonText: {displayText: '► No Watermark'}, type: 1},
                      {buttonId: `tiktokwm ${text}`, buttonText: {displayText: '► With Watermark'}, type: 1}
                  ]
                  let buttonMessage = {
                      text: `Download From ${text}`,
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 2
                  }
                  let msg = await hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
                  hisoka.sendMessage(m.chat, { audio: { url: anu.result.audio } }, { quoted: msg })
              }
              break
  	        case 'igdl': case 'ig': case 'instagram': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/instagram2', { url: text }, 'apikey'))
                  hisoka.sendMessage(m.chat, { video: { url: anu.data[0] }, caption: `Download From ${text}` }, { quoted: m})
              } 
              break
              case 'igdltv': case 'igreels': case 'igdl2': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/instagram', { url: text }, 'apikey'))
                  hisoka.sendMessage(m.chat, { video: { url: anu.result.link }, caption: `⭔ Desc : ${anu.result.caption.desc}`}, { quoted: m })
              }
              break
  	        case 'twitdl': case 'twitter': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/twitter', { url: text }, 'apikey'))
                  let buttons = [
                      {buttonId: `twittermp3 ${text}`, buttonText: {displayText: '► Audio'}, type: 1}
                  ]
                  let buttonMessage = {
                      video: { url: anu.result.HD || anu.result.SD },
                      caption: util.format(anu.result),
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 5
                  }
                  hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
              }
              break
              case 'twittermp3': case 'twitteraudio': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/twitter', { url: text }, 'apikey'))
                  let buttons = [
                      {buttonId: `twitter ${text}`, buttonText: {displayText: '► Video'}, type: 1}
                  ]
                  let buttonMessage = {
  		    image: { url: anu.result.thumb },
                      caption: util.format(anu.result),
                      footer: 'Press The Button Below',
                      buttons: buttons,
                      headerType: 4
                  }
                  let msg = await hisoka.sendMessage(m.chat, buttonMessage, { quoted: m })
                  hisoka.sendMessage(m.chat, { audio: { url: anu.result.audio } }, { quoted: msg })
              }
              break
  	        case 'fbdl': case 'fb': case 'facebook': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/facebook', { url: text }, 'apikey'))
                  hisoka.sendMessage(m.chat, { video: { url: anu.result.url }, caption: `⭔ Title : ${anu.result.title}`}, { quoted: m })
              }
              break
  	        case 'pindl': case 'pinterestdl': {
                  if (!text) throw 'Masukkan Query Link!'
                  m.reply(mess.wait)
                  let anu = await fetchJson(api('zenz', '/api/downloader/pinterestdl', { url: text }, 'apikey'))
                  hisoka.sendMessage(m.chat, { video: { url: anu.result }, caption: `Download From ${text}` }, { quoted: m })
              }
              break
              case 'public': {
                  if (!isCreator) throw mess.owner
                  hisoka.public = true
                  m.reply('Sukse Change To Public Usage')
              }
              break
              case 'self': {
                  if (!isCreator) throw mess.owner
                  hisoka.public = false
                  m.reply('Sukses Change To Self Usage')
              }
              break
              case 'ping': case 'botstatus': case 'statusbot': {
                  let timestamp = speed()
                  let latensi = speed() - timestamp
                  neww = performance.now()
                  oldd = performance.now()
                  respon = `
  Kecepatan Respon ${latensi.toFixed(4)} _Second_ \n ${oldd - neww} _miliseconds_\n\nRuntime : ${runtime(process.uptime())}
  
  💻 Info Server
  RAM: ${formatp(os.totalmem() - os.freemem())} / ${formatp(os.totalmem())}
  
  _NodeJS Memory Usaage_
  ${Object.keys(used).map((key, _, arr) => `${key.padEnd(Math.max(...arr.map(v=>v.length)),' ')}: ${formatp(used[key])}`).join('\n')}
  
  ${cpus[0] ? `_Total CPU Usage_
  ${cpus[0].model.trim()} (${cpu.speed} MHZ)\n${Object.keys(cpu.times).map(type => `- *${(type + '*').padEnd(6)}: ${(100 * cpu.times[type] / cpu.total).toFixed(2)}%`).join('\n')}
  _CPU Core(s) Usage (${cpus.length} Core CPU)_
  ${cpus.map((cpu, i) => `${i + 1}. ${cpu.model.trim()} (${cpu.speed} MHZ)\n${Object.keys(cpu.times).map(type => `- *${(type + '*').padEnd(6)}: ${(100 * cpu.times[type] / cpu.total).toFixed(2)}%`).join('\n')}`).join('\n\n')}` : ''}
                  `.trim()
                  m.reply(respon)
              }
              break
              case 'owner': case 'creator': {
                  let vcard = 'BEGIN:VCARD\n' // metadata of the contact card
                      + 'VERSION:3.0\n' 
                      + 'N:;Dika Ardnt.;;;'
                      + 'FN:Dika Ardnt.\n' // full name
                      + 'ORG:Owner Bot;\n' // the organization of the contact
                      + 'TEL;type=CELL;type=VOICE;waid=6288292024190:+62 882-9202-4190\n' // WhatsApp ID + phone number
                      + 'END:VCARD'
                  hisoka.sendMessage(m.chat, { contacts: { displayName: 'Dika Ardnt.', contacts: [{ vcard }] } }, { quoted: m })
              }
              break
              case 'eval': {
                  if (!isCreator) return m.reply(mess.owner)
                  function Return(sul) {
                      sat = JSON.stringify(sul, null, 2)
                      bang = util.format(sat)
                          if (sat == undefined) {
                              bang = util.format(sul)
                          }
                          return m.reply(bang)
                  }
                  try {
                      m.reply(util.format(eval(`(async () => { return ${budy.slice(3)} })()`)))
                  } catch (e) {
                      m.reply(String(e))
                  }
              }
              break
              case 'tes': case 'menu': case 'help': case '?': {
                  anu = `
  ┌──⭓ *Group Menu*
  │
  │⭔ ${prefix}linkgroup
  │⭔ ${prefix}ephemeral [option]
  │⭔ ${prefix}setpp
  │⭔ ${prefix}setname [text]
  │⭔ ${prefix}group [option]
  │⭔ ${prefix}add @user
  │⭔ ${prefix}kick @user
  │⭔ ${prefix}promote @user
  │⭔ ${prefix}demote @user
  │
  └───────⭓
  
  ┌──⭓ *Downloader Menu*
  │
  │⭔ ${prefix}tiktoknowm [url]
  │⭔ ${prefix}tiktokwm [url]
  │⭔ ${prefix}tiktokmp3 [url]
  │⭔ ${prefix}instagram [url]
  │⭔ ${prefix}ig2 [url]
  │⭔ ${prefix}igreels [url]
  │⭔ ${prefix}igtv [url]
  │⭔ ${prefix}twitter [url]
  │⭔ ${prefix}twittermp3 [url]
  │⭔ ${prefix}facebook [url]
  │⭔ ${prefix}pinterestdl [url]
  │
  └───────⭓
  
  ┌──⭓ *Search Menu*
  │
  │⭔ ${prefix}pinterest [query]
  │⭔ ${prefix}wallpaper [query]
  │⭔ ${prefix}wikimedia [query]
  │⭔ ${prefix}ytsearch [query]
  │
  └───────⭓
  
  ┌──⭓ *Random Menu*
  │
  │⭔ ${prefix}porno
  │⭔ ${prefix}hentai
  │⭔ ${prefix}quotesanime
  │⭔ ${prefix}motivasi
  │⭔ ${prefix}dilanquote
  │⭔ ${prefix}bucinquote
  │⭔ ${prefix}katasenja
  │⭔ ${prefix}puisi
  │
  └───────⭓
  
  ┌──⭓ *Image Menu*
  │
  │⭔ ${prefix}anime
  │⭔ ${prefix}waifu
  │⭔ ${prefix}husbu
  │⭔ ${prefix}neko
  │⭔ ${prefix}shinobu
  │⭔ ${prefix}megumin
  │
  └───────⭓
  
  ┌──⭓ *Primbon Menu*
  │
  │⭔ ${prefix}nomorhoki
  │⭔ ${prefix}artimimpi
  │⭔ ${prefix}artinama
  │⭔ ${prefix}ramaljodoh
  │⭔ ${prefix}ramaljodohbali
  │⭔ ${prefix}suamiistri
  │⭔ ${prefix}ramalcinta
  │⭔ ${prefix}cocoknama
  │⭔ ${prefix}pasangan
  │⭔ ${prefix}jadiannikah
  │⭔ ${prefix}sifatusaha
  │⭔ ${prefix}rezeki
  │⭔ ${prefix}pekerjaan
  │⭔ ${prefix}nasib
  │⭔ ${prefix}penyakit
  │⭔ ${prefix}tarot
  │⭔ ${prefix}fengshui
  │⭔ ${prefix}haribaik
  │⭔ ${prefix}harisangar
  │⭔ ${prefix}harisial
  │⭔ ${prefix}nagahari
  │⭔ ${prefix}arahrezeki
  │⭔ ${prefix}peruntungan
  │⭔ ${prefix}weton
  │⭔ ${prefix}karakter
  │⭔ ${prefix}keberuntungan
  │⭔ ${prefix}memancing
  │⭔ ${prefix}masasubur
  │⭔ ${prefix}zodiak
  │⭔ ${prefix}shio
  │
  └───────⭓
  
  ┌──⭓ *Convert Menu*
  │
  │⭔ ${prefix}toimage
  │⭔ ${prefix}sticker
  │⭔ ${prefix}tovideo
  │⭔ ${prefix}togif
  │⭔ ${prefix}tourl
  │
  └───────⭓
  
  ┌──⭓ *Main Menu*
  │
  │⭔ ${prefix}ping
  │⭔ ${prefix}owner
  │⭔ ${prefix}menu / ${prefix}help / ${prefix}?
  │⭔ ${prefix}delete
  │
  └───────⭓
  
  ┌──⭓ *Owner Menu*
  │
  │⭔ ${prefix}chat [option]
  │⭔ ${prefix}join [link]
  │⭔ ${prefix}leave
  │⭔ ${prefix}block @user
  │⭔ ${prefix}unblock @user
  │
  └───────⭓
  `
                  let message = await prepareWAMessageMedia({ image: fs.readFileSync('./lib/hisoka.jpg') }, { upload: hisoka.waUploadToServer })
                  const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({
                      templateMessage: {
                          hydratedTemplate: {
                              imageMessage: message.imageMessage,
                              hydratedContentText: anu,
                              hydratedButtons: [{
                                  urlButton: {
                                      displayText: 'Source Code',
                                      url: 'https://github.com/DikaArdnt/Hisoka-Morou'
                                  }
                              }, {
                                  callButton: {
                                      displayText: 'Number Phone Owner',
                                      phoneNumber: '+62 882-9202-4190'
                                  }
                              }, {
                                  quickReplyButton: {
                                      displayText: 'Status Bot',
                                      id: 'ping'
                                  }
                              }, {
                                  quickReplyButton: {
                                      displayText: 'Contact Owner',
                                      id: 'owner'
                                  }  
                              }, {
                                  quickReplyButton: {
                                      displayText: 'Script',
                                      id: 'sc'
                                  }
                              }]
                          }
                      }
                  }), { userJid: m.chat, quoted: m })
                  hisoka.relayMessage(m.chat, template.message, { messageId: template.key.id })
              }
              break
              default:
                  if (budy.startsWith('=>')) {
                      if (!isCreator) return m.reply(mess.owner)
                      function Return(sul) {
                          sat = JSON.stringify(sul, null, 2)
                          bang = util.format(sat)
                              if (sat == undefined) {
                                  bang = util.format(sul)
                              }
                              return m.reply(bang)
                      }
                      try {
                          m.reply(util.format(eval(`(async () => { return ${budy.slice(3)} })()`)))
                      } catch (e) {
                          m.reply(String(e))
                      }
                  }
  
                  if (budy.startsWith('>')) {
                      if (!isCreator) return m.reply(mess.owner)
                      try {
                          let evaled = await eval(budy.slice(2))
                          if (typeof evaled !== 'string') evaled = require('util').inspect(evaled)
                          await m.reply(evaled)
                      } catch (err) {
                          m = String(err)
                          await m.reply(m)
                      }
                  }
  
                  if (budy.startsWith('$')) {
                      if (!isCreator) return reply(mess.owner)
                      exec(budy.slice(2), (err, stdout) => {
                          if(err) return m.reply(err)
                          if (stdout) return m.reply(stdout)
                      })
                  }
          }
          
  
      } catch (err) {
          m.reply(util.format(err))
      }
  }
  
  
  let file = require.resolve(__filename)
  fs.watchFile(file, () => {
  	fs.unwatchFile(file)
  	console.log(chalk.redBright(`Update ${__filename}`))
  	delete require.cache[file]
  	require(file)
  })
  